zcaceres/markdownify-mcp
A Model Context Protocol server for converting almost anything to Markdown
2,907 ★243 forksTypeScriptUpdated 8d ago
What you need to know
MCP server that converts various file types (PDF, images, audio, DOCX, XLSX, PPTX) and web content (YouTube transcripts, Bing search results, web pages) into Markdown, using Python's markitdown under the hood.
Install
git clone; bun install (preinstall creates a .venv and installs markitdown[all]); bun run build; bun start Docker: docker build -t markify-mcp . ; docker run --rm -i -v "$HOME/Documents:/data:ro" -e MD_ALLOWED_PATHS=/data markdownify-mcp
Usage
- •Add to MCP client config: {"mcpServers": {"markdownify": {"command": "node", "args": ["{ABSOLUTE PATH}/dist/index.js"]}}}
- •Available tools: youtube-to-markdown, pdf-to-markdown, bing-search-to-markdown, webpage-to-markdown, image-to-markdown, audio-to-markdown, docx-to-markdown, xlsx-to-markdown, pptx-to-markdown, get-markdown-file (.md/.markdown only)
- •Set MD_ALLOWED_PATHS to a colon (POSIX) / semicolon (Windows) separated list of directories the server is allowed to read; all file-input tools reject paths outside it
- •Override MARKITDOWN_PATH / REPOMIX_PATH if markitdown/repomix are installed system-wide instead of in the bundled venv
Key features
- ✓Converts PDF, images, audio (with transcription), DOCX, XLSX, PPTX to Markdown
- ✓Converts YouTube video transcripts, Bing search results, and general web pages to Markdown
- ✓get-markdown-file tool retrieves existing .md/.markdown files
- ✓Path-restriction security via MD_ALLOWED_PATHS (with deprecated MD_SHARE_DIR alias kept for backward compatibility)
Best for
Giving an LLM client the ability to turn documents, images, audio, and web content into readable Markdown for analysis and summarization.
Caveats
- ⚠The published Docker image installs markitdown[pdf] only — audio transcription and image OCR require the [all] extras and will fail in the slim image (use local bun install for the full feature set)
- ⚠Requires bun plus a Python venv with markitdown; the MCP client config needs the absolute path to dist/index.js
- ⚠In Docker, pass container paths (e.g. /data/foo.pdf) to the tools, not host paths
Platforms: Linux · macOS · Windows
Reviewed 2026-08-07
Topics
aianthropicanthropic-aianthropic-claudemarkdownmcpmodel-context-protocolocrtools
- Stars
- 2,907★
- Forks
- 243
- Language
- TypeScript
- License
- MIT
- Created
- 2024-12-18
- Last push
- 2026-07-30