MCP Directory

Markdownify MCP

Convert PDFs, Office docs, images, audio, and web pages into Markdown for LLM consumption.

Verified
stdio (local)
No auth
Stale
TypeScript

Add to your client

Copy the config for your MCP client and paste it into its config file.

Install / run
git clone https://github.com/zcaceres/markdownify-mcp && cd markdownify-mcp && pnpm install && pnpm run build

Paste into ~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "markdownify-mcp": {
      "command": "node",
      "args": [
        "/absolute/path/to/markdownify-mcp/dist/index.js"
      ]
    }
  }
}

Before you start

  • Node.js with a JavaScript runtime/package manager — the repo uses Bun (bun install / bun run build / bun start)
  • Python 3 available on the system — the install step creates a .venv and installs markitdown[all] (audio/image conversion may need additional system tools like ffmpeg/exiftool depending on input)
  • No API keys or credentials required for local file conversion; web/search tools fetch public URLs

About Markdownify MCP

Markdownify MCP is a local (stdio) MCP server that converts a wide range of file types and web content into clean Markdown that LLMs can read. It wraps Microsoft's markitdown conversion engine and exposes it as MCP tools, so an agent can turn a PDF, Office document, image, audio file, YouTube link, or web page into Markdown on demand.

It covers documents (PDF, DOCX, XLSX, PPTX), media (images via OCR, audio via transcription), and web sources (general web pages, YouTube transcripts, Bing search results). There is also a get-markdown-file tool to retrieve a previously produced Markdown file. The server runs entirely on your machine, so files never leave your environment.

It is a community project by Zach Caceres (not an official Microsoft/markitdown product). Setup builds a small Node/TypeScript server and, during install, provisions a Python virtual environment with markitdown[all]; you can also point it at existing markitdown/repomix binaries via environment variables, and restrict file access with MD_ALLOWED_PATHS.

Tools & capabilities (10)

pdf-to-markdown

Convert a PDF file to Markdown.

docx-to-markdown

Convert a Word .docx file to Markdown.

xlsx-to-markdown

Convert an Excel .xlsx file to Markdown.

pptx-to-markdown

Convert a PowerPoint .pptx file to Markdown.

image-to-markdown

Extract text from an image (OCR) and return Markdown.

audio-to-markdown

Transcribe an audio file and return Markdown.

webpage-to-markdown

Fetch a web page and convert it to Markdown.

youtube-to-markdown

Fetch a YouTube video's transcript as Markdown.

bing-search-to-markdown

Convert Bing search results for a query into Markdown.

get-markdown-file

Retrieve the contents of a previously generated Markdown file.

When to use it

  • Use it when you need to feed a PDF, Word, Excel, or PowerPoint file into an LLM as clean Markdown context
  • Use it when extracting text from images via OCR or transcribing audio into readable Markdown
  • Use it when scraping a web page or YouTube transcript into Markdown for summarization or RAG
  • Use it when you want conversions to happen locally so sensitive documents never leave your machine
  • Use it when building a document-ingestion pipeline and want a single MCP for many input formats
  • Use it when you need to lock down which directories the agent can read by setting MD_ALLOWED_PATHS

Quick setup

  1. 1Clone the repo: git clone https://github.com/zcaceres/markdownify-mcp
  2. 2Install dependencies: bun install (this creates a .venv and installs markitdown[all])
  3. 3Build the server: bun run build
  4. 4Add it to your MCP client config as a command server: node /absolute/path/to/dist/index.js
  5. 5Optionally set MARKITDOWN_PATH, REPOMIX_PATH, and MD_ALLOWED_PATHS environment variables
  6. 6Restart the client and test pdf-to-markdown on a sample file to verify

Security notes

It reads local files and fetches remote URLs you point it at, and transcription/conversion may invoke bundled Python tooling; run it only on documents you trust. Build-from-source means you should review the repo before running.

Markdownify MCP FAQ

Is this an official Microsoft/markitdown server?

No. It's a community project by Zach Caceres that wraps Microsoft's markitdown engine; it is MIT-licensed but not vendored by Microsoft.

Do I need Python even though it's a Node server?

Yes. The TypeScript server shells out to markitdown, which is Python; the install step provisions a .venv with markitdown[all]. You can override the binary path with MARKITDOWN_PATH.

Does it require any API keys?

No. Local file conversions and the web/YouTube/Bing tools work without credentials; the web tools simply fetch public URLs.

Can I restrict which files the server can read?

Yes. Set MD_ALLOWED_PATHS to a comma-separated list of allowed directories so the file-input tools can only read from those locations.

Is it remote or local?

Local. It runs as a stdio MCP server on your own machine, so documents are converted locally and never uploaded to a third-party service.

Alternatives to Markdownify MCP

Official MCP reference server for secure local filesystem read/write within allowed directories.

Verified
stdio (local)
No auth
TypeScript
13 tools
Updated 5 months agoRepo

Official MCP server for reading, searching, and manipulating a local Git repository's files and history.

Verified
stdio (local)
No auth
Python
12 tools
Updated 5 months agoRepo

Official AWS Labs MCP server to manage and query S3 Tables (table buckets, namespaces, tables).

Verified
stdio (local)
API key
Python
12 tools
Updated 1 month agoRepo