markitdown_mcp_server
A Model Context Protocol (MCP) server that converts various file formats to Markdown using the MarkItDown utility.
claude mcp add --transport stdio korigamik-markitdown_mcp_server uvx markitdown-mcp
How to use
MarkItDown MCP Server exposes a conversion service that turns a variety of file formats into Markdown using the MarkItDown utility. Once the server is running, MCP clients can issue the /md command (or equivalent MCP actions) to request a transformation of an input file into Markdown. The server is designed to handle formats such as PDF, PowerPoint, Word, Excel, images (with EXIF metadata and OCR), audio (EXIF metadata and speech transcription), HTML, text-based formats (CSV, JSON, XML), and ZIP files (which are iterated over to extract content). To use it, connect via MCP to the server name defined in your MCP settings (here markitdown_mcp) and invoke the /md command with the path to the input file. The server will process the input and return a Markdown representation suitable for downstream editing or rendering in your MCP client. The README examples show how to configure a client (e.g., Zed Editor) to invoke the server and how to issue the /md command directly for quick conversions.
How to install
Prerequisites:
- Python 3.x and a working Python environment
- MCP runtime (uv) installed on your system
- Optional: Smithery CLI if you plan to install via Smithery
Install via Smithery (recommended if you want to install automatically):
- Ensure you have Node.js and npm installed.
- Install the Smithery CLI and install the MarkItDown MCP Server:
npx -y @smithery/cli install @KorigamiK/markitdown_mcp_server --client claude
Manual installation (from source):
- Clone this repository
- Install dependencies (Python environment required):
uv install
- Run the MCP server using the MCP runtime (example shown in usage):
uv run markitdown-mcp
- Connect a client to the server using the MCP protocol and issue the /md command with your input file.
Notes:
- The exact runtime command may differ if you customize paths or deployment targets. Adjust the command and arguments accordingly.
- If you deploy in a container or cloud environment, ensure the input/output paths and any required environment variables are appropriately mapped.
Additional notes
Tips and common issues:
- Ensure the input file size does not exceed any configured limits of your MCP runtime or container, as large documents may take longer to process.
- When processing image or audio files, verify that EXIF data or transcriptions are enabled in the MarkItDown configuration if you need metadata-rich Markdown.
- If you see connection errors, confirm the MCP client is configured to target the exact server name (markitdown_mcp) and that the runtime is listening on the expected host/port.
- Environment variables: you may need to set PATH enhancements so that the uv runtime and MarkItDown dependencies are discoverable. Common vars include PATH and any MO/DL paths needed by MarkItDown.
- If integrating with CMS or editors, you can customize the MCP command mapping (for example, changing /md to a different trigger) in your client settings or MCP gateway.
Related MCP Servers
web-eval-agent
An MCP server that autonomously evaluates web applications.
mcp-neo4j
Neo4j Labs Model Context Protocol servers
Gitingest
mcp server for gitingest
zotero
Model Context Protocol (MCP) server for the Zotero API, in Python
fhir
FHIR MCP Server – helping you expose any FHIR Server or API as a MCP Server.
unitree-go2
The Unitree Go2 MCP Server is a server built on the MCP that enables users to control the Unitree Go2 robot using natural language commands interpreted by a LLM.