Markdownify MCP Server
Markdownify MCP Server

Markdownify is a Model Context Protocol (MCP) server that converts various file types and web content to Markdown format. It provides a set of tools to transform PDFs, images, audio files, web pages, and more into easily readable and shareable Markdown text.
Features
Convert multiple file types to Markdown:
PDF
Images
Audio (with transcription)
DOCX
XLSX
PPTX
Convert web content to Markdown:
YouTube video transcripts
Bing search results
General web pages
Retrieve existing Markdown files
Getting Started
Clone this repository
Install dependencies:
bun installThe
preinstallstep creates a Python virtual environment at.venvand installsmarkitdown[all].Build the project:
bun run buildStart the server:
bun start
Development
Use
bun run devto start the TypeScript compiler in watch modeModify
src/server.tsto customize server behaviorAdd or modify tools in
src/tools.ts
Usage with Desktop App
To integrate this server with a desktop app, add the following to your app's server configuration:
{
"mcpServers": {
"markdownify": {
"command": "node",
"args": [
"{ABSOLUTE PATH TO FILE HERE}/dist/index.js"
]
}
}
}Environment variables
All paths default to sensible values; override only when the defaults don't fit your install layout.
Variable | Default | Purpose |
|
| Absolute path to the |
|
| Absolute path to the |
| unset (unrestricted) | Path-delimiter-separated list ( |
| unset | Deprecated alias for |
Usage with Docker
Build and run:
docker build -t markdownify-mcp .
docker run --rm -i \
-v "$HOME/Documents:/data:ro" \
-e MD_ALLOWED_PATHS=/data \
markdownify-mcpNotes for the Docker MCP catalog (mcp/markdownify):
Mount any host directories you want the server to read into the container, then pass the container paths to the tools (e.g.
/data/foo.pdf, not/Users/you/Documents/foo.pdf).Set
MD_ALLOWED_PATHSto the colon-separated list of mounted directories so the server enforces a read boundary that matches the bind mount.The published Docker image installs
markitdown[pdf]only — audio transcription and image OCR (audio-to-markdown,image-to-markdown) require the[all]extras and will fail in the slim image. Use the local install (bun install) for the full feature set.
Available Tools
youtube-to-markdown: Convert YouTube videos to Markdownpdf-to-markdown: Convert PDF files to Markdownbing-search-to-markdown: Convert Bing search results to Markdownwebpage-to-markdown: Convert web pages to Markdownimage-to-markdown: Convert images to Markdown with metadataaudio-to-markdown: Convert audio files to Markdown with transcriptiondocx-to-markdown: Convert DOCX files to Markdownxlsx-to-markdown: Convert XLSX files to Markdownpptx-to-markdown: Convert PPTX files to Markdownget-markdown-file: Retrieve an existing Markdown file. File extension must end with: *.md, *.markdown.OPTIONAL: set
MD_ALLOWED_PATHSto restrict every file-input tool to a list of directories, e.g.MD_ALLOWED_PATHS=/data/in:/data/out bun start.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
This project is licensed under the MIT License - see the LICENSE file for details.