Overview
When integrated with Claude Desktop, the MarkItDown MCP server enables Claude to:- Convert documents from URLs or local files to Markdown
- Analyze document content and answer questions about it
- Extract information from various file formats
- Process documents as part of natural conversations
It is recommended to use the Docker image when running the MCP server for Claude Desktop. This provides isolation and includes all necessary dependencies.
Prerequisites
- Claude Desktop installed on your system
- Docker installed (recommended) or markitdown-mcp via pip
- For Docker: Build the markitdown-mcp image (see Installation)
Configuration File Location
Claude Desktop reads MCP server configurations from a JSON file. The location varies by operating system:- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
Basic Configuration (Docker)
Editclaude_desktop_config.json and add the following configuration:
- Names the server “markitdown” (visible in Claude Desktop)
- Runs the Docker container in STDIO mode
- Uses
--rmto automatically clean up the container after use - Uses
-ifor interactive mode (required for STDIO)
Configuration with Local File Access
To allow Claude to access local files, mount a directory into the container:Replace
/home/user/Documents with the actual path to the directory you want to access. On Windows, use Windows-style paths like C:\\Users\\YourName\\Documents.How It Works
- Files in
/home/user/Documentsare mounted to/workdirin the container - To reference a file, use the path inside the container:
file:///workdir/filename.pdf - You can mount multiple directories by adding more
-varguments
Example: Multiple Mounts
Configuration with pip Installation
If you installed markitdown-mcp via pip instead of Docker:With Plugins Enabled
Enabling Plugins
To enable optional MarkItDown plugins, set theMARKITDOWN_ENABLE_PLUGINS environment variable:
The Docker image has plugins enabled by default. This configuration is only needed if you want to explicitly control the setting.
Applying Configuration Changes
After editingclaude_desktop_config.json:
- Save the file
- Completely quit Claude Desktop (not just close the window)
- Restart Claude Desktop
- The MarkItDown server should now be available
Using MarkItDown in Claude
Once configured, you can ask Claude to convert documents:Example Prompts
Converting from URL:“Can you convert this PDF to markdown? https://example.com/document.pdf”Converting local file:
“Please convert /workdir/report.docx to markdown and summarize it”Analyzing content:
“Convert /workdir/sales.xlsx to markdown and tell me the total revenue”Claude will automatically:
- Detect that it needs to use the
convert_to_markdowntool - Call the MCP server with the appropriate URI
- Receive the Markdown content
- Process and respond based on your request
Verifying the Integration
To verify the MCP server is working:- Open Claude Desktop
- Look for a 🔌 (plug) icon or “Tools” indicator in the interface
- Ask Claude: “What MCP tools do you have access to?”
- Claude should mention the
convert_to_markdowntool from the markitdown server
Troubleshooting
Server Not Showing Up
- Verify the JSON syntax is correct (use a JSON validator)
- Check that Docker is running (for Docker-based configs)
- Ensure the image name matches:
markitdown-mcp:latest - Restart Claude Desktop completely
File Access Errors
- Verify the mount path exists and is readable
- Check that file paths use the container path (e.g.,
/workdir/...) - Ensure the Docker container has permission to access the mounted directory
Permission Issues
- On Linux/macOS, you may need to adjust the USERID and GROUPID in the Docker build:
Debugging
To debug issues:- Test the server independently using mcpinspector
- Check Claude Desktop logs (location varies by OS)
- Test the Docker command manually in a terminal
- Verify the configuration file has valid JSON syntax
Advanced Configuration
Custom Image Tag
If you built the image with a different tag:Multiple MCP Servers
You can configure multiple MCP servers in the same file:Security Considerations
Best Practices
- Mount only necessary directories: Don’t mount your entire home directory
- Use read-only mounts when possible:
- Avoid mounting sensitive directories: Don’t mount directories containing credentials or private keys
- Review file paths: Always verify file paths before asking Claude to process them
Next Steps
Usage Guide
Learn more about the MCP server features
Supported Formats
See all document formats supported by MarkItDown