微软开源了一个文档转换神器,名叫 MarkItDown。目前它在 GitHub 上已经斩获了 58K+ 的 Star,热度相当高。微软出品的转换工具,天然就有底子——毕竟 Office 格式就是他们家定义的标准。比起其他大厂,微软对 Office 的理解显然更深一层。那这个开源的格式转换工具到底强不强?从项目名字就能猜个大概:它可以把绝大多数常见文档格式,一键转成清爽可编辑的 Markdown 文件。
具体支持哪些格式呢?看下面这张清单:
- Word
- Excel
- PPT
- 图片
- 语音
- HTML
- EPUB
- JSON/XML 等
上述格式都能一键转换成 Markdown。如果输入是图片,还会自动调用 OCR 识别图中的文字,并生成一个清晰易读的 Markdown 文档。转换成 Markdown 之后,最大的好处就是方便 AI 大模型解析。像豆包、Kimi 这些大模型,在解读 PDF 时,背后通常也是先转成 Markdown,再喂给模型做分析总结。
和微信的“提取文字”不太一样,MarkItDown 的项目介绍里强调:它会保留文档的重要结构和内容,比如标题、列表、表格、链接等,并以 Markdown 格式呈现。当然,理想和现实之间总有些差距——实测效果怎么样,咱们往下看。
看看实际效果
实测下来,输出结果通常清晰易读,适合人工查看,但它的主要定位还是作为中间介质,供 AI 大模型或文本分析工具使用。如果对阅读体验要求极高,格式还原效果要严苛到像素级,那 MarkItDown 可能未必适合你。
① 运行下面命令安装:
pip install 'markitdown[all]'
之后可以在命令行中直接调用,或者用 Python API 来转换。比如转换一个 PDF 文件,左边是源文件,右边是转换后的 Markdown。发现一个问题:标题并没有被保留下来?
再看一个表格类型的 PDF。如果上传的 PDF 是下面这种带大量合并单元格的表格样式,转换出来的 Markdown 效果就比较差了:
如果是标准的 Excel 表格,效果倒还不错。左边是源文件:
再来看看 PPT 文件的转换效果:
最后测试一个标准的 PDF 文档。不知道是不是操作的问题,说好的保留标题、表格样式呢……
支持 MCP
前不久发了一个国产 OCR 开源神器的帖子,有读者问那个项目是否支持 MCP。微软开源的 MarkItDown 倒是原生支持 MCP 协议,它提供了一个轻量级的 STDIO、Streamable HTTP 和 SSE MCP 服务器,用来调用 MarkItDown。
公开了一个工具:convert_to_markdown(uri),其中的 uri 可以是任何 http:、https:、file: 或 data: URI。
安装 MCP 服务:
pip install markitdown-mcp
运行 MCP 服务时,可以使用下面两个命令之一。第一个是 STDIO,第二个是 Streamable HTTP 和 SSE MCP:
markitdown-mcp --http --host 127.0.0.1 --port 3001
如果想在 Docker 中运行,可以参考下面的步骤。配置好之后,就能在 Cursor 等 MCP 客户端里使用这个服务了,流程很简单。
拿 Cursor 客户端举例:打开设置 → MCP → 添加一个 MCP 服务器。把下面这段 JSON 复制进去,后面就能直接调用了。
{
"mcpServers": {
"markitdown": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-v",
"/home/user/data:/workdir",
"markitdown-mcp:latest"
]
}
}
}
