MarkItDown MCP Server – Document Markdown Conversion
MarkItDown MCP is Microsoft's local Model Context Protocol server for calling MarkItDown from AI agents. It exposes document-to-Markdown conversion through a single tool and is intended for trusted local agents that need structured text from files or supported URIs.
Overview
MarkItDown MCP is the MCP server packaged with Microsoft's MarkItDown project. MarkItDown is a Python utility that converts files and office documents into Markdown for LLM and text-analysis workflows. The MCP package lets a compatible AI agent call MarkItDown through the Model Context Protocol instead of invoking the converter directly.
The server is designed for local use with trusted agents. It is useful when an assistant needs to inspect document content, turn heterogeneous files into Markdown, or normalize source material before summarization, indexing, extraction, or code/documentation work.
What the MCP server enables
The server exposes one documented tool, convert_to_markdown(uri). The uri argument can point to http:, https:, file:, or data: inputs. MarkItDown itself supports conversion from formats such as PDF, PowerPoint, Word, Excel, images with EXIF metadata and OCR, audio with metadata and speech transcription, HTML, CSV, JSON, XML, ZIP files, YouTube URLs, EPubs, and more, depending on installed optional dependencies.
Agents can use the server to convert supported content into Markdown while preserving important document structure such as headings, lists, tables, and links. It is not intended to provide high-fidelity publishing conversions; its output is optimized for downstream text analysis and LLM consumption.
When to use it
Use MarkItDown MCP when an agent needs local document conversion in a workflow such as preparing files for retrieval-augmented generation, summarizing PDFs or office documents, extracting table-like content, converting HTML or text-based data into Markdown, or processing local files mounted into a container.
It is especially helpful for development, research, documentation, and internal knowledge workflows where Markdown is the preferred intermediate representation.
Connection and authentication
The markitdown-mcp package is installed with pip install markitdown-mcp. By default, markitdown-mcp starts the server over STDIO. The same executable can run Streamable HTTP and SSE locally with --http --host 127.0.0.1 --port 3001, exposing http://127.0.0.1:3001/mcp for Streamable HTTP and http://127.0.0.1:3001/sse for SSE.
The server does not support authentication. The official documentation recommends local trusted use and warns not to bind HTTP/SSE modes to non-localhost interfaces unless the operator understands the security implications.
Key considerations
MarkItDown performs I/O with the privileges of the process that runs it. Inputs must be sanitized in untrusted environments, especially when the server can read file: URIs or fetch network resources. For stronger isolation, run it in a sandboxed environment such as a container or virtual machine, mount only the directories that should be available, and restrict user permissions and network access.
Supported Transports
stdio
Command: markitdown-mcp
streamable_http
URL: http://127.0.0.1:3001/mcp
sse
URL: http://127.0.0.1:3001/sse
Frequently Asked Questions
- When should an AI agent use MarkItDown MCP?
- Use it when an agent needs to convert supported files or URIs into Markdown for summarization, extraction, indexing, documentation, or other LLM-oriented text analysis workflows.
- What does MarkItDown MCP add to an AI agent's capabilities?
- It gives the agent a documented `convert_to_markdown(uri)` tool that can call Microsoft's MarkItDown converter and return Markdown from supported `http:`, `https:`, `file:`, or `data:` inputs.
- What formats can the server help convert?
- MarkItDown supports formats including PDF, PowerPoint, Word, Excel, images, audio, HTML, CSV, JSON, XML, ZIP files, YouTube URLs, EPubs, and more, with some capabilities depending on optional dependencies.
- How is authentication configured for MarkItDown MCP?
- The server does not support authentication. It is documented for local trusted use, and HTTP or SSE modes bind to localhost by default to avoid exposing the unauthenticated server to the network.
- Which transport should be used for MarkItDown MCP?
- STDIO is the default local transport and is recommended for most desktop-agent use. Streamable HTTP and SSE are available by starting `markitdown-mcp --http --host 127.0.0.1 --port 3001`, but they should remain local unless the operator has implemented appropriate isolation and access controls.