DOCUMENT CONVERSION / Microsoft
MarkItDown MCP
Converts supported documents and web resources into Markdown through a local MCP tool.
“An MCP server for the "markitdown" library.”
01 / THE REASONING
Why this made the selection.
- Provides document ingestion across office files, PDFs and web resources without requiring a separate MCP server for each format.
- Its small tool surface is inspectable: conversion returns Markdown rather than offering a general file-editing API.
02 / THE REVIEW RECORD
What we actually inspected.
Source review has boundaries.
A clear record is more useful than a “safe” badge.
Material inspected
- packages/markitdown-mcp/README.md: installation, local transports and access warnings.
- packages/markitdown-mcp/pyproject.toml: Python requirement, dependency bundle and console script.
- packages/markitdown-mcp/src/markitdown_mcp/__main__.py: conversion tool, transport selection and plugin setting.
- README.md and packages/markitdown/src/markitdown/_markitdown.py: conversion scope and resource-access boundary.
- LICENSE: MIT terms.
Our findings
- convert_to_markdown passes the supplied URI to MarkItDown.convert_uri and returns the Markdown result; file and network permissions remain those of the server process.
- Plugins are disabled unless MARKITDOWN_ENABLE_PLUGINS is explicitly enabled.
- The HTTP entrypoint defaults to loopback and warns that exposing it gives reachable clients the server user’s file and network access.
Not established by this review
- No server was started and no documents, URLs, plugins or conversion accuracy were tested.
The review applies to the material and revision named here. A newer upstream release can change its behavior.
03 / PUT IT TO WORK
Connect a server deliberately.
DOCUMENTED COMMAND
pip install markitdown-mcp Copying does not execute this command. It may retrieve a newer version than the reviewed source.
- Install in an appropriate Python environment, then configure your MCP client to start markitdown-mcp for stdio.
- For the documented local HTTP alternative, run markitdown-mcp --http --host 127.0.0.1 --port 3001 and use a supported local transport.
- Restrict the process permissions, mounted files and allowed inputs to the documents you intend to convert.
Before you start
- Python satisfying the package requirement and pip; the package installs its declared conversion dependencies.
- Read access to selected local documents or network access to the intended URLs.
04 / FOLLOW THE EVIDENCE
The source trail.
Our notes are separate from the original resource.
Check upstream before adopting a new version.
https://github.com/microsoft/markitdown/blob/d51937de3aca315febea3fa8b2eea50ef088e74a/packages/markitdown-mcp/README.md
Supports: summary, whySelected, bestFor, install, compatibility, transports, limitations, access
- Python package manifest ↗Checked
https://github.com/microsoft/markitdown/blob/d51937de3aca315febea3fa8b2eea50ef088e74a/packages/markitdown-mcp/pyproject.toml
Supports: upstreamDescription, descriptionSourceUrl, language, install.prerequisites, review
https://github.com/microsoft/markitdown/blob/d51937de3aca315febea3fa8b2eea50ef088e74a/packages/markitdown-mcp/src/markitdown_mcp/__main__.py
Supports: review, transports, access, limitations
https://github.com/microsoft/markitdown/blob/d51937de3aca315febea3fa8b2eea50ef088e74a/README.md
Supports: summary, bestFor, whySelected, limitations, access
https://github.com/microsoft/markitdown/blob/d51937de3aca315febea3fa8b2eea50ef088e74a/packages/markitdown/src/markitdown/_markitdown.py
Supports: review, access
- Repository licence ↗Checked
https://github.com/microsoft/markitdown/blob/d51937de3aca315febea3fa8b2eea50ef088e74a/LICENSE
Supports: license, access.cost