{
  "markdown": "# distill-mcp\n\n[![npm version](https://img.shields.io/npm/v/distill-mcp-server)](https://www.npmjs.com/package/distill-mcp-server)\n[![license](https://img.shields.io/npm/l/distill-mcp-server)](LICENSE)\n[![MCP Registry](https://img.shields.io/badge/MCP_Registry-listed-blue)](https://registry.modelcontextprotocol.io/)\n\nAn MCP server that connects any MCP-compatible client to Distill, converting\nlocal documents to clean, token-efficient Markdown before the LLM reads them.\nTypical token reduction is 40–80% compared to raw document text, letting the\nmodel fit more content into its context window and reason over it faster.\n\nWorks with Claude Desktop, Claude Code, Cursor, Windsurf, and any other\nMCP client that supports tool calling.\n\n## Two Modes\n\n| | Lightweight | Full (Docker) |\n|---|---|---|\n| Requires Docker | No | Yes |\n| DOCX, XLSX, PPTX, native PDF, HTML | Yes | Yes |\n| Scanned PDF (OCR) | No | Yes |\n| Audio (MP3, WAV, etc.) | No | Yes |\n| Quality score | No | Yes |\n| Install time | ~2 min | ~10 min |\n\n**Lightweight** needs only Python and pip. **Full** needs Docker with\nthe Distill service running. See the setup guides for details.\n\n## Quick install\n\nNo global install required:\n\n```bash\nnpx -y distill-mcp-server\n```\n\nThen configure Claude Desktop — see\n[Lightweight setup](docs/lightweight-setup.md) or\n[Full setup](docs/full-setup.md) for step-by-step instructions.\n\n## Configuration\n\nAdd the server to your `claude_desktop_config.json`.\n\n**Lightweight mode — macOS / Linux:**\n\n```json\n{\n  \"mcpServers\": {\n    \"distill-mcp\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"distill-mcp-server\"],\n      \"env\": {\n        \"DISTILL_MCP_CONFIG\": \"{\\\"mode\\\":\\\"lightweight\\\",\\\"python_path\\\":\\\"python3\\\"}\"\n      }\n    }\n  }\n}\n```\n\n**Lightweight mode — Windows:**\n\n```json\n{\n  \"mcpServers\": {\n    \"distill-mcp\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"distill-mcp-server\"],\n      \"env\": {\n        \"DISTILL_MCP_CONFIG\": \"{\\\"mode\\\":\\\"lightweight\\\",\\\"python_path\\\":\\\"py\\\"}\"\n      }\n    }\n  }\n}\n```\n\n**Full mode — all platforms:**\n\n```json\n{\n  \"mcpServers\": {\n    \"distill-mcp\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"distill-mcp-server\"],\n      \"env\": {\n        \"DISTILL_MCP_CONFIG\": \"{\\\"mode\\\":\\\"full\\\",\\\"distill_url\\\":\\\"http://localhost:7860\\\"}\"\n      }\n    }\n  }\n}\n```\n\nFull config key reference is in the setup guides:\n[Lightweight](docs/lightweight-setup.md#config-reference) |\n[Full](docs/full-setup.md#config-reference)\n\n## CLAUDE.md snippet\n\nPaste this into your project's `CLAUDE.md` so Claude knows how to use the\ntool automatically. Copy the block below as-is:\n\n```markdown\n## Document Conversion — distill-mcp\n\nWhen the user references a local file path (e.g. a PDF, DOCX, PPTX, XLSX,\nHTML, or audio file), ALWAYS call the `convert_and_save` tool before reading\nor reasoning about the document. Do not read the original file directly via\nfilesystem tools — use only the Markdown returned by `convert_and_save` as\nthe document content.\n\n### Rules\n\n1. Call `convert_and_save` with the absolute file path before doing anything\n   else with the document.\n2. Use ONLY the Markdown output from `convert_and_save` as the document\n   content. Never read the original file with filesystem tools.\n3. If the response includes `\"overwritten\": true`, tell the user that a\n   previous cached version was replaced before proceeding.\n4. If the response includes any `warnings`, surface them to the user before\n   proceeding with the document content.\n5. If `convert_and_save` returns an unsupported format error, tell the user\n   which formats are supported and suggest switching modes if applicable.\n\n### Supported formats\n\n| Category | Lightweight | Full (Docker) |\n|---|---|---|\n| Word | .docx, .doc, .odt | .docx, .doc, .odt |\n| Excel | .xlsx, .xlsm, .csv | .xlsx, .xlsm, .csv |\n| PowerPoint | .pptx, .ppt | .pptx, .ppt |\n| PDF | .pdf (native text) | .pdf (native + scanned OCR) |\n| HTML | .html, .htm | .html, .htm |\n| Audio | — | .mp3, .wav, .m4a, .flac, .ogg |\n| Other | — | .epub, .json, .sql, .wsdl, .wsd |\n\n### Usage\n\nSay \"convert using distill\" followed by the file path:\n> Convert using distill C:\\Users\\me\\Documents\\report.pdf to markdown\n```\n\nThe snippet is also available in\n[docs/CLAUDE.md-snippet.md](docs/CLAUDE.md-snippet.md).\n\n## Supported formats\n\n| Category | Extensions | Lightweight | Full |\n|---|---|---|---|\n| Microsoft Word | `.docx`, `.doc`, `.odt` | Yes | Yes |\n| Microsoft Excel | `.xlsx`, `.xlsm`, `.csv` | Yes | Yes |\n| Microsoft PowerPoint | `.pptx`, `.ppt` | Yes | Yes |\n| PDF (native text) | `.pdf` | Yes | Yes |\n| PDF (scanned/OCR) | `.pdf` | No | Yes |\n| HTML | `.html`, `.htm` | Yes | Yes |\n| Audio | `.mp3`, `.wav`, `.m4a`, `.flac`, `.ogg` | No | Yes |\n| EPUB | `.epub` | No | Yes |\n| JSON | `.json` | No | Yes |\n| SQL | `.sql` | No | Yes |\n| WSDL | `.wsdl`, `.wsd` | No | Yes |\n\n## Privacy\n\nAll processing happens locally. In lightweight mode, documents are converted\nby the distill-core Python library on your machine — no data leaves your\ncomputer. In full mode, documents are sent to the Distill Docker service\nrunning locally on your machine — no data is sent to external services.\n\n## Built on\n\n[Distill](https://github.com/nicholasgasior/distill) — document-to-Markdown\nconversion engine.\n\n## License\n\nMIT\n",
  "bytes": 5275,
  "sha": "6c8ce948c56194a867b0273cadd3892dee283e5c50bb6ecbe4a45012173bc1b2",
  "repo_slug": "lakshgk/distill-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_lakshgk_distill_mcp_f81e0f02/readme"
}