Markdownify MCP Server: A TypeScript MCP Bridge for Turning PDFs, Audio, and Web Pages into Markdown
A Model Context Protocol server for converting almost anything to Markdown.
At a glance
- What is it?
- Markdownify MCP Server exposes file and web conversions as Model Context Protocol tools. It wraps the Python markitdown CLI and adds YouTube, Bing, and git-repo tools, but the Docker image ships with a reduced feature set.
- Who is it for?
- Adopt Markdownify MCP Server if you need an MCP-native way to feed converted documents and web content into an MCP client like a desktop app, and you can run the local bun install for the full feature set. Do not use the published Docker image if you require audio transcription or image OCR, because it only installs markitdown[pdf].
- Can I use it commercially?
- Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 2 days ago.
- What is it written in?
- Mainly TypeScript, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 14, 2026, and from our analysis. They are not legal advice.
DEEP OPEN-SOURCE ANALYSIS
What Markdownify MCP Server Actually Does
The server's value is that it standardizes a mixed set of input types behind a single MCP interface. Instead of writing separate conversion scripts for each file type, an MCP client can call one server and get Markdown back. The README does not describe the output format for each tool beyond saying it produces Markdown text, so you should expect raw conversion results without post-processing. The get-markdown-file tool only accepts files ending in .md or .markdown, which is a deliberate restriction to avoid reading arbitrary text files. That tool is useful for retrieving previously converted Markdown, but it is not a general file reader.
How the Conversion Pipeline Works
The web tools are separate. youtube-to-markdown and bing-search-to-markdown likely fetch content directly from the web, but the README does not specify the mechanism. It only says they convert YouTube video transcripts and Bing search results to Markdown. webpage-to-markdown presumably fetches a URL and extracts text, but again the README gives no detail on how it handles JavaScript-heavy pages or paywalls. The lack of detail is a limitation for evaluation. You cannot tell from the material whether these tools use headless browsers, HTTP requests, or third-party APIs. If you plan to rely on them, you should test them against your target sites before adopting.
Running the Server Locally and in Docker
The environment variables control the server's behavior. MARKITDOWN_PATH and REPOMIX_PATH let you point to custom executables. MD_ALLOWED_PATHS is a path-delimiter-separated list that restricts file-input tools to specific directories. On POSIX it uses a colon, on Windows a semicolon. When set, tools like pdf-to-markdown and get-markdown-file reject paths outside those directories. MD_SHARE_DIR is a deprecated alias that still works. The README example shows setting MD_ALLOWED_PATHS=/data/in:/data/out when starting with bun start. In Docker, you must pass container paths, not host paths, because the bind mount maps host directories into the container. This is a common source of confusion, and the README addresses it directly.
A Real Limitation: The Docker Image Is Not Feature-Complete
Another limitation is the reliance on external executables. If markitdown is not installed and MARKITDOWN_PATH is not set, the server falls back to markitdown on PATH. If that is also missing, the conversion tools will fail. The README does not describe error handling or fallback behavior beyond the path resolution. You should verify that the executables are present and working before relying on the server in production. The README also does not mention any caching of conversions, so every call likely re-runs the conversion, which could be slow for large PDFs or long audio files.
How It Compares to Direct markitdown Usage
For web content, the alternative is a dedicated web scraping tool like Firecrawl or a simple HTTP fetch plus a Markdown library. The README does not mention any of these, but the youtube-to-markdown and bing-search-to-markdown tools suggest the server is trying to cover web conversion as well. Those tools may not match the quality of purpose-built scrapers, and the README gives no detail on how they handle dynamic content. If your primary need is web page conversion, you should evaluate those tools separately. For file conversion, markitdown is the core, so the comparison is really about whether you want an MCP wrapper.
Maintenance and License Considerations
The Docker image's reduced feature set is a maintenance trap. If you use the published image, you get a subset of tools, and you may not realize until a tool fails at runtime. The README warns about this, but it is easy to miss if you only read the tool list. For production use, you should either build your own Docker image with the full extras or rely on the local install. The README does not provide a custom Dockerfile example, so you would have to write one yourself, which adds maintenance overhead.
Who Should Adopt It and What to Verify First
Adopt Markdownify MCP Server if you are building an MCP-based application that needs to convert PDFs, Office documents, images, or audio into Markdown, and you can manage a Python virtual environment. The local install gives you the full feature set, and the MCP interface fits naturally into desktop apps that support MCP servers. Do not adopt it if you only need occasional file conversion and are not using MCP, because the direct markitdown CLI is simpler. Also avoid the Docker image if you need audio or image conversion, as it will fail. Before adopting, verify that markitdown is installed and reachable via MARKITDOWN_PATH or PATH. Test each conversion tool you plan to use with representative files, especially PDFs with complex layouts, because markitdown's output quality depends on the source. Confirm that MD_ALLOWED_PATHS is set correctly for your environment, particularly in Docker where container paths differ from host paths. Finally, check the repository's package.json for Node and bun version requirements, as the README does not state them.
Editorial conclusion
Adopt Markdownify MCP Server if you need an MCP-native way to feed converted documents and web content into an MCP client like a desktop app, and you can run the local bun install for the full feature set. Do not use the published Docker image if you require audio transcription or image OCR, because it only installs markitdown[pdf]. Before adopting, verify that your PDFs convert without layout loss, check that the markitdown executable path resolves in your environment, and confirm that MD_ALLOWED_PATHS matches your intended read boundary, especially in containerized deployments where host paths differ from container paths.
Community notes