Back to Browse

Markitai MCP Server

Developer ToolsLow Risk9.7MCP RegistryLocal
Free

Server data from the Official MCP Registry

Convert documents, images and web pages to clean Markdown, for agents: single, URL and batch tools.

About

Convert documents, images and web pages to clean Markdown, for agents: single, URL and batch tools.

Security Report

9.7
Low Risk9.7Low Risk

Valid MCP server (2 strong, 2 medium validity signals). No known CVEs in dependencies. ⚠️ Package registry links to a different repository than scanned source. Imported from the Official MCP Registry. 1 finding(s) downgraded by scanner intelligence.

8 files analyzed · 1 issue found

Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.

Permissions Required

This plugin requests these system permissions. Most are normal for its category.

file_system

Check that this permission is expected for this type of plugin.

HTTP Network Access

Connects to external APIs or services over the internet.

What You'll Need

Set these up before or after installing:

provider/model for --llm enhancement, e.g. gemini/gemini-flash-lite-latest; with the matching API key env var setOptional

Environment variable: MODEL

How to Install

Add this to your MCP configuration file:

{
  "mcpServers": {
    "io-github-ynewtime-markitai": {
      "env": {
        "MODEL": "your-model-here"
      },
      "args": [
        "markitai"
      ],
      "command": "uvx"
    }
  }
}

Documentation

View on GitHub

From the project's GitHub README.

Markitai

PyPI Python CI License: MIT

Opinionated Markdown converter with native LLM enhancement support.

  • Multi-format: DOCX, PPTX, XLSX, PDF, EPUB, EML, TXT, MD, images (JPG/PNG/WebP), and URLs → clean Markdown; legacy .doc/.ppt via the legacy extra
  • LLM enhancement: AI-powered format cleaning, frontmatter metadata, and vision analysis of embedded images via litellm, so any provider works (OpenAI, Anthropic, Gemini, local CLIs, and more)
  • Batch processing: concurrent conversion with progress display and --resume for interrupted jobs
  • OCR: scanned PDFs and images via local RapidOCR (optional extra, see below), or --ocr --llm to have the vision model read the page images directly (VLM-OCR)
  • Web fetching: static HTTP with cache revalidation, or Playwright rendering for JS-heavy pages
  • Local web workspace: upload files or folders, submit URLs, configure LLM providers, compare results, retry failures, and revisit conversion history — CLI runs can opt in too, via --record-history

Docs: https://markitai.dev

Install

Guided installer (recommended). Installs Python and uv if needed, lets you pick extras and the Playwright browser, and offers a mirror when the default index is unreachable. Bilingual (EN/中文).

# Linux/macOS
curl -fsSL https://markitai.dev/setup.sh | sh
# Windows (PowerShell)
powershell -ExecutionPolicy ByPass -c "irm https://markitai.dev/setup.ps1 | iex"

Already have Python 3.11–3.13? Install the package alone, then run the two setup steps yourself:

uv tool install markitai     # or: pipx install markitai
markitai doctor              # check core and optional capabilities
markitai init                # config and LLM provider

Browser rendering needs the browser extra, then Chromium:

uv tool install "markitai[browser]" --force
markitai doctor --fix

Both routes install markitai and the shorter mkai alias.

Extras

ExtraEnables
browserPlaywright rendering for JS-heavy pages
claude-agentClaude Agent SDK as an LLM provider
copilotGitHub Copilot SDK as an LLM provider
extra-fetchcurl-cffi HTTP client (better anti-bot compatibility)
heifHEIC/HEIF/AVIF image input
legacyLegacy Office conversion (.doc/.ppt) via the anydoc Rust backend
mcpBundled markitai-mcp server for AI agents (Model Context Protocol)
ocrLocal OCR for scanned PDFs and images (--ocr)
serveLocal web workspace and REST API
svgSVG rasterization via cairosvg
allEverything above

ocr is opt-in because it adds ~160MB of models. The guided installer asks about it, and markitai doctor prints the command when it is missing:

uv tool install "markitai[ocr]" --force

Launch the local web workspace with:

uv tool install "markitai[serve]" --force
markitai serve

Quick start

markitai document.pdf -o out/            # convert a file
markitai https://example.com -o out/     # convert a URL
markitai ./docs -o out/                  # batch convert a directory
markitai ./docs -o out/ --json           # machine-readable results for automation
markitai https://example.com --no-remote-fetch -o out/  # local URL extraction only
markitai doctor                          # check dependencies and configuration

For LLM enhancement, export any supported provider key — markitai picks the model up from the environment, no config file needed:

export GEMINI_API_KEY=...                # or OPENAI_/ANTHROPIC_/DEEPSEEK_/OPENROUTER_API_KEY
markitai document.pdf -o out/ --llm      # clean formatting + generated frontmatter
markitai document.pdf --preset rich      # LLM + alt text + descriptions + screenshots
markitai init                            # or configure it interactively, once

See the Getting Started guide for LLM configuration, presets, caching, and batch options.

MCP server

markitai-mcp exposes conversion to AI agents over the Model Context Protocol with four tools: convert_document, convert_url, batch_convert, job_status. Nothing to install, uvx runs it on demand, and large outputs land on disk instead of in the model context. For Claude Code, claude mcp add markitai -- uvx --from "markitai[mcp]" markitai-mcp; for other clients:

{
  "mcpServers": {
    "markitai": { "command": "uvx", "args": ["--from", "markitai[mcp]", "markitai-mcp"] }
  }
}

markitai mcp starts the same server through the CLI itself (uvx --from "markitai[mcp]" markitai mcp), which is how the MCP Registry lists it. See the MCP guide for LLM enhancement and batch jobs.

Comparison

How markitai compares to three tools people mention in the same breath. No star or download counts — those go stale immediately.

markitaimarkitdowndoclinganydoc
EnginePython; rule-based conversion + optional LLM pipelinePython; lightweight rule-based converters + pluginsPython; ML layout/table/VLM document-structure modelsRust; zero-ML parsers
LLM enhancementBuilt-in: format cleaning, frontmatter, vision analysis, per-run JSON cost/usage reportsOptional: image captions, transcription, an OCR pluginVLM for structure (DocTags), not prose cleanupNone
Web pages5-strategy fetch cascade, local-first; static runs a from-scratch port of defuddle's readability algorithm before falling back to a browser or 3 remote APIsWhole-DOM HTML→Markdown, no main-content passDownloads a document URL into the same file pipelineNo URL input — local files/bytes only
Scanned docsOptional local OCR (markitai[ocr], RapidOCR), or --ocr --llm to have the vision model read the pagesOptional plugin (LLM-vision or Azure OCR)Built-in OCR for scanned PDFs/imagesNone in the OSS library
PositioningIndependent project; CLI + local bilingual (EN/中文) web workspaceMicrosoft (AutoGen team); widest ecosystem/plugin adoptionIBM Research origin, now governed by the LF AI & Data Foundation; enterprise RAG building blockFirecrawl open-source; dependency-free, millisecond-scale, 14 formats, Node/Python/WASM bindings

Each optimizes for a different job: anydoc for dependency-free speed, docling for ML-driven document structure in RAG pipelines, markitdown for ecosystem reach — markitai trades those for a built-in LLM pipeline, live web fetching, and a local UI. Two of them are also dependencies rather than only alternatives: markitdown converts the Office formats, and anydoc handles legacy .doc/.ppt behind markitai[legacy].

License

markitai's own source code is MIT.

The default installation is not uniformly MIT, because the PDF engine is not. The PyMuPDF packages pymupdf, pymupdf-layout, and pymupdf4llm come from Artifex Software and are dual-licensed under AGPL-3.0 or a commercial licence from Artifex. They are core dependencies — PDF conversion does not work without them.

For local use — running the CLI on your own machine, or a markitai serve instance only you talk to — this changes nothing. AGPL obligations attach when you redistribute the combined work or offer it to other people over a network: in that case AGPL-3.0 asks you to make the corresponding source available on the same terms, or to buy a commercial licence from Artifex instead.

Everything else in the default install is MIT, Apache-2.0, BSD, or MIT-CMU. CI enforces this: scripts/check_licenses.py fails the build on any non-commercial or proprietary dependency, and on any AGPL/GPL package outside an explicit allowlist.

Full details, plus attribution for the code markitai ports from defuddle (MIT) and marker (Apache-2.0), are in NOTICE.

Reviews

No reviews yet

Be the first to review this server!