anymd:本地文档转 Markdown 的 MCP 工具
把 PDF、Office、网页、图片和音视频转成干净 Markdown 的本地 MCP 服务器与 CLI。
- 浏览
- 2
- 访问
- 0
- 下载
- 0
- 版本
- v8.5.7
- 平台
- Windows、macOS、Linux
详细介绍
项目简介
anymd 是一个用 Rust 编写的本地 MCP 服务器和命令行工具,把 PDF、Word、PowerPoint、Excel、EPUB、HTML/网页、图片、音频和视频转换成适合 AI Agent 阅读的 Markdown。它无需 API key,文件不会上传;项目前身为 pdf-reader-mcp。
主要功能
- 多格式统一读取:一个
read工具即可处理上述格式,也接受网页 URL 和整个目录;search可跨文件、目录和 URL 搜索。 - 版面与表格还原:版面引擎根据字形间距重建单词,把双栏论文按阅读顺序排列,并恢复表格(包括无边框表格),尽量保持原文文字。
- 面向 Agent 的输出:返回带引用锚点、简短 front-matter 和紧凑表格的 Markdown;支持
pages、max_tokens和cursor控制大文档的上下文占用。 - 四个 MCP 工具:
outline浏览标题树;read把文件、URL 或文件夹转成 Markdown;search查找文本,精确匹配不到时回退到 BM25 排序;inspect对 PDF 做渲染页面、区域提取、OCR、结构分析、比较等深入操作。 - CLI 转换:同一个二进制可作为命令行转换器,支持文件、多个文件、网页、标准输入和 OCR。
- 本地隐私:OCR 使用本机安装的 doc-VLM 模型或 tesseract,转录使用 ffmpeg 和随附的 Qwen3-ASR;OCR 安装和 ASR 模型下载需要显式确认。
在 AgentDocBench 的 38 份文档上,README 给出的 anymd 总耗时 11.5 秒、总体得分 96.4,表格单元格 F1 为 92.2,阅读顺序为 98.8;作为对比,docling 总耗时 2,432.4 秒、markitdown 75.6 秒。具体结果和复现方式见项目基准目录与文档。
安装与使用
通过 npm 运行需要 Node.js 18+。把 anymd 添加到本机所有支持的 MCP 客户端(Claude Code、Codex、Cursor、VS Code、Claude Desktop、Windsurf、Gemini CLI):
npx -y @sylphx/anymd setup
可加 --dry-run 预览,--remove 撤销。手动配置时,所有 MCP 客户端统一使用命令 npx -y @sylphx/anymd。
安装 CLI:
npm install -g @sylphx/anymd
常用转换:
anymd report.pdf > report.md
anymd deck.pptx notes.docx budget.xlsx
anymd https://example.com/article
cat scan.png | anymd - --ocr
anymd paper.pdf --pages 1-3 --max-tokens 4000
OCR 需先一次性安装引擎与本地模型(约 2 GB):
anymd setup ocr
anymd scan.png --ocr vlm
注意事项
- macOS、Linux 也可用
brew install sylphxai/tap/anymd,或从 crates.io 执行cargo install anymd本地编译;后者需要 Rust 1.95+、CMake 和 C++ 编译器。 - Python 包目前仍在等待 PyPI 发布,当前没有可用的
pip/uvx安装方式。 - README 说明图片 OCR 的 OmniDocBench 分数是历史数据,并非当前 OCR 模型成绩;视频基准衡量内嵌字幕提取,不代表视觉理解或 ASR。
- 项目文档:https://sylphxai.github.io/anymd/
本作品整理自 GitHub 开源项目 SylphxAI/anymd,原作者 @SylphxAI,许可证 MIT。中文介绍由 AI 根据项目 README 整理,以原仓库为准。
更新记录
- v8.5.7当前版本
修复任一输入转换失败时覆盖 `--output` 文件的问题;支持用 `--` 分隔以 `-` 开头的输入路径;更新文档并标注 Python 包等待 PyPI 发布。
评论