Skip to content

Markdownify MCP

MCP Developer Tools

A Model Context Protocol (MCP) server that converts PDFs, images, audio, documents, spreadsheets, presentations, YouTube videos, Bing searches, and web pages into Markdown.

TypeScript Latest v1.1.0 · 1mo ago Security brief →

Features

  • Convert multiple file types (PDF, images, audio, DOCX, XLSX, PPTX) to Markdown
  • Extract Markdown from YouTube video transcripts, Bing search results, and general web pages
  • Retrieve existing Markdown files

Recent releases

View all 5 releases →
v1.1.0 Breaking risk
⚠ Upgrade required
  • Set `MARKITDOWN_PATH` or `REPOMIX_PATH` to override previously used `projectRoot`. Deprecation of `projectRoot` will be enforced in future releases.
  • Update Docker builds: `.dockerignore` now excludes host `.venv` and `node_modules`.
  • Replace any usage of stale `UV_PATH` documentation; the code no longer uses `uv`.
Breaking changes
  • `projectRoot` removed from the MCP tool input schema. Use `MARKITDOWN_PATH` to override the project root.
Notable features
  • `MARKITDOWN_PATH` env var added (defaults to `/.venv/bin/markitdown`, falls back to PATH lookup).
  • `REPOMIX_PATH` env var added with same behavior for `git-repo-to-markdown`.
  • `MD_ALLOWED_PATHS` env var introduced; enforces filepath whitelist on all tools, keeping `MD_SHARE_DIR` as backward‑compat alias.
Full changelog

Path-resolution overhaul to make Docker (and any non-default install layout) frictionless. Closes #97 via #98.

What's new

  • MARKITDOWN_PATH env var. Defaults to <project>/.venv/bin/markitdown, falls back to a bare-name PATH lookup. Lets pipx install "markitdown[pdf]" or any system install work without a project venv.
  • REPOMIX_PATH env var. Same shape, for git-repo-to-markdown.
  • MD_ALLOWED_PATHS env var (path-delimiter-separated). Enforced on every filepath-accepting tool, not just get-markdown-file. MD_SHARE_DIR kept as a single-dir backward-compat alias.
  • Docker volume-mount example in the README, aligned with the markdownify.paths field on the Docker MCP catalog config page.
  • New scripts/docker-smoke-test.sh: builds the image, mounts a sample dir, calls pdf-to-markdown over the MCP stdio transport, asserts the response.

Fixes

  • Stop treating non-empty stderr from markitdown as fatal — it emits non-fatal warnings on every successful run (onnxruntime cpuid, pydub ffmpeg-missing). Exit code is the real signal.
  • Add .dockerignore so COPY . . no longer drags the host's .venv and node_modules into the build context.
  • Replace stale UV_PATH docs (the code stopped using uv several versions ago).

Breaking changes

  • projectRoot removed from the MCP tool input schema. It was client-controllable, so any MCP client could force the server to exec <arbitrary>/.venv/bin/markitdown. No legitimate client should have been using it. If you need to override the project root, set MARKITDOWN_PATH directly.
v1.0.4 Bug fix

Fixed Docker image crash on Apple Silicon by switching to `markitdown[pdf]`.

Full changelog

Bug Fix

  • Fix Docker image crash on Apple Silicon/ARM by using markitdown[pdf] instead of markitdown[all]. The [all] extra pulled in unnecessary dependencies (SpeechRecognition/pydub/ffmpeg) that caused failures on ARM containers. PDF support is retained. (Fixes #95)
v1.0.3 Bug fix

Fixed missing PDF/DOCX/PPTX/XLSX converter dependencies after upstream markitdown change.

Full changelog

Bug Fix

  • Fix missing PDF/DOCX/PPTX/XLSX converter dependencies after upstream markitdown moved them to optional extras in v0.1.0. All install paths (setup.sh, setup.bat, Dockerfile, pyproject.toml) now use markitdown[all]. (thanks @rubzo — #92)
v1.0.1 Security relevant
Security fixes
  • Bump requests from 2.32.5 to 2.33.0 — fixes insecure temp file reuse in extract_zipped_paths() (medium severity)
Full changelog

Security

  • Bump requests from 2.32.5 to 2.33.0 — fixes insecure temp file reuse in extract_zipped_paths() (medium severity)

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

About

Stars
2,712
Forks
223
Languages
TypeScript Shell Dockerfile
Downloads/week
3 ↓50%
NPM Maintainers
2
Contributors
9

Beta — feedback welcome: [email protected]