MarkItDown-MCP-NPX
@xkiranj
NPX wrapper for Microsoft's MarkItDown MCP server - run without Docker
Overview
What is MarkItDown-MCP-NPX?
An NPX wrapper for Microsoft's MarkItDown MCP server that converts files (PDF, Word, Excel, images, audio, URLs, archives, CSV, JSON, XML) to Markdown format without requiring Docker.
How to use MarkItDown-MCP-NPX?
Run directly with npx -y markitdown-mcp-npx (recommended) or install globally with npm install -g markitdown-mcp-npx then run markitdown-mcp-npx. Configure for Claude Desktop by adding the command to the mcpServers JSON. Use --http, --host, --port flags for HTTP/SSE mode.
Key features of MarkItDown-MCP-NPX
- No Docker required; runs directly via NPX
- Zero configuration – just run
npx -y markitdown-mcp-npx - Cross-platform: Windows, macOS, Linux
- Automatically manages Python virtual environment and dependencies
- Single
convert_to_markdowntool handles all supported file types - Reuses virtual environment for faster subsequent runs
Use cases of MarkItDown-MCP-NPX
- Convert documents (PDF, DOCX, PPTX, XLSX) to Markdown for LLM ingestion
- Extract text from images using OCR
- Transcribe audio files (MP3, WAV) when FFmpeg is installed
- Process web URLs and archives (ZIP) into Markdown
- Integrate with Claude Desktop as an MCP server for file conversion
FAQ from MarkItDown-MCP-NPX
Does this require Docker?
No. MarkItDown-MCP-NPX is designed to run without Docker; it only needs Node.js 16+ and Python 3.10+.
What are the prerequisites?
Node.js 16+, Python 3.10+, and an internet connection for initial package download. FFmpeg and ExifTool are optional for audio and advanced image metadata.
How do I fix a hanging server on startup?
Use the -y flag with NPX (npx -y markitdown-mcp-npx) to skip installation prompts that can hang in non-interactive environments like Claude Desktop.
What transport modes are supported?
STDIO (default) and HTTP/SSE. Use --http --host <host> --port <port> for HTTP mode.
Is there authentication for HTTP mode?
No authentication is provided; the README recommends binding to localhost unless otherwise needed.