Markdownify MCP Server is a Model Context Protocol (MCP) server used to convert various file types and web content into Markdown format. It provides a set of tools that can convert PDFs, images, audio files, web pages, and more into Markdown text that is easy to read and share.
Purpose
This project aims to solve the need to uniformly convert content from different sources into Markdown, making it easier to read, organize, or share later. It is suitable for scenarios that require quickly converting documents, web pages, and multimedia content into Markdown, such as note organization, content archiving, and material collection.
Main Capabilities
- Convert multiple file types to Markdown: PDF, images, audio (with transcription), DOCX, XLSX, PPTX.
- Convert web content to Markdown: YouTube video subtitles, Bing search results, ordinary web pages.
- Retrieve existing Markdown files.
Provided Tools
youtube-to-markdown: Convert YouTube videos to Markdown.pdf-to-markdown: Convert PDF files to Markdown.bing-search-to-markdown: Convert Bing search results to Markdown.webpage-to-markdown: Convert web pages to Markdown.image-to-markdown: Convert images to Markdown with metadata.audio-to-markdown: Convert audio files to Markdown with transcription.docx-to-markdown: Convert DOCX files to Markdown.xlsx-to-markdown: Convert XLSX files to Markdown.pptx-to-markdown: Convert PPTX files to Markdown.get-markdown-file: Retrieve existing Markdown files. The file extension must end with*.mdor*.markdown.
Usage
The project homepage provides the basic usage steps:
- Clone the repository.
- Install dependencies:
bun install. The pre-installation step will create a Python virtual environment in.venvand installmarkitdown[all]. - Build the project:
bun run build. - Start the server:
bun start.
You can use bun run dev to start the TypeScript compiler in watch mode. Modify src/server.ts to customize server behavior, and add or modify tools in src/tools.ts .
Integration with Desktop Applications
To integrate this server with a desktop application, add the following content to the application's server configuration (the specific configuration content is not provided in the official text).
Environment Variables
All paths have reasonable defaults; override them only when the defaults do not apply to your installation layout. You can set MD_ALLOWED_PATHS to restrict all file input tools to access only a specific list of directories, for example MD_ALLOWED_PATHS=/data/in:/data/out bun start.
Docker Usage Instructions
Instructions for the Docker MCP catalog (mcp/markdownify):
- Mount the host directory that you want the server to read into the container, then pass the container path to the tools (for example
/data/foo.pdf, not/Users/you/Documents/foo.pdf). - Set
MD_ALLOWED_PATHSto a colon-separated list of mounted directories so that the server enforces read boundaries matching the bind mounts. - The published Docker image only installs
markitdown[pdf]— audio transcription and image OCR (audio-to-markdown、image-to-markdown) require[all]additional components and will fail in the slim image. For full functionality, use a local installation (bun install).
Applicable Scenarios and Limitations
The Markdownify MCP Server is suitable for users who need to uniformly convert various files or web content into Markdown, especially in scenarios using desktop applications or development environments that support MCP. Its limitations include: the Docker slim image does not support audio transcription and image OCR; the file tool can, through MD_ALLOWED_PATHS restrict access to directories;get-markdown-file only supports specific extensions. The project uses the MIT license.