anymd
PDF, Word, PowerPoint, Excel, EPUB, HTML and web pages, images (OCR), audio and video (metadata, subtitles, transcripts). A fast Rust MCP server and CLI that runs on your machine. No API key.
anymd is the free, local mode of the same crates that run [Sylphx AI parse](https://sylphx.com/ai), the hosted document-parse service: the same crates, hosted and metered per page for callers that want no local runtime.
[](https://www.npmjs.com/package/@sylphx/anymd)
[](https://www.npmjs.com/package/@sylphx/anymd)
[](https://github.com/SylphxAI/anymd/stargazers)
[](https://registry.modelcontextprotocol.io/v0/servers?search=anymd)
[](https://github.com/SylphxAI/anymd/blob/main/LICENSE)
[](https://scorecard.dev/viewer/?uri=github.com/SylphxAI/anymd) [](https://github.com/SylphxAI/repomap#agent-readiness-score)
[Install](#install) · [Benchmarks](#benchmarks) · [Tools](#mcp-tools) · [CLI](#cli) · [Formats](#formats) · [Docs](https://sylphxai.github.io/anymd/) · [Pro](https://sylphxai.github.io/anymd/pro)
Formerly **pdf-reader-mcp**. [Migrating from pdf-reader-mcp](https://sylphxai.github.io/anymd/guide/migration)
A real, unedited terminal recording (asciinema + agg, script). The last command is Claude Code answering from the PDF through the anymd MCP server.
```bash
npx -y @sylphx/anymd setup # add anymd to every MCP client on this machine
npx -y @sylphx/anymd report.pdf > report.md # or convert from the shell
```
## Why anymd
- **Fast.** Native Rust converts in parallel, page by page. On the 38 benchmark documents, anymd takes **11.5 s** in total; docling 2,432.4 s (212×), markitdown 75.6 s (7×); marker converted 30 of them in 7,104.5 s, against anymd's 4.64 s on the same 30 (1,532×).
- **Accurate.** A layout engine rebuilds words from glyph gaps, puts two-column papers in reading order, and recovers tables, including borderless ones. The text stays exactly as printed, with no glued words and no scrambled columns.
- **Lean on tokens.** Pages come back as Markdown with `` citation anchors, a small front-matter header, and compact tables. A token budget and a cursor keep large documents within your agent's context.
- **Every format, one call.** One tool reads every format listed below. It also accepts web URLs and whole directories, and `search` looks across all of them.
- **Local and private.** Nothing is uploaded. OCR uses installed local doc-VLM models or tesseract; transcripts use ffmpeg and bundled Qwen3-ASR. OCR setup and ASR model downloads require explicit opt-in.
## Install
Add anymd to every MCP client on your machine (Claude Code, Codex, Cursor, VS Code, Claude Desktop, Windsurf, Gemini CLI) with one command:
```bash
npx -y @sylphx/anymd setup # --dry-run to preview, --remove to undo
```
Or add it by hand: every MCP client runs the same command, `npx -y @sylphx/anymd`. Node 18+ is the only requirement; npm installs the native binary for your platform.