markitdown-directory-mcp
An MCP server that converts local files to Markdown, built on the markitdown library. Designed for AI chat clients such as Cherry Studio: ask the model to convert a file by name, and the Markdown content is returned right into the conversation for the model to interpret.
Tools
- convert_file_to_markdown(file, max_chars) — convert ONE file (docx,
pptx, xlsx, pdf, html, csv, txt, ...) to Markdown, write a sibling
"<name>.md"file next to the source, and return the Markdown content directly. Prefer this when the user names a specific file. - convert_directory_to_markdown(directory, recursive, max_files) — batch
convert EVERY supported file in a directory tree, writing sibling
"<name>.md"files, and return a JSON summary (converted / skipped / failed). - read_markdown_file(path, start_char, max_chars) — read a generated .md file back, with paging for large files.
Image files (png, jpg, ...) are never converted — no image data ends up in the Markdown output — and files that are already Markdown are passed through.
Default directory
Set the environment variable MARKITDOWN_DEFAULT_DIR to a folder and the
tools resolve bare file names against it (including a recursive exact-name
fallback search), so users can just say report.docx instead of a full path.
Running
stdio (what most chat clients expect):
markitdown-directory-mcp
Over the network (SSE or streamable HTTP):
markitdown-directory-mcp --transport sse --host 0.0.0.0 --port 3001
# endpoints: http://<host>:3001/sse (SSE)
# http://<host>:3001/mcp (streamable-http transport)
For LAN access, optionally pass e.g. --allowed-host '192.168.1.26:*' to keep
DNS rebinding protection enabled for that host; without it the protection is
disabled (with a warning) so remote Host headers are accepted. The server has
no authentication — only expose it on networks you trust.
Client configuration
With uv installed, no manual installation is
needed — point the client at PyPI via uvx:
{
"mcpServers": {
"markitdown-directory": {
"command": "uvx",
"args": ["markitdown-directory-mcp"],
"env": {
"MARKITDOWN_DEFAULT_DIR": "C:\\Users\\you\\Documents"
}
}
}
}
Or install into an environment yourself and run the console script:
pip install markitdown-directory-mcp
markitdown-directory-mcp
Metadata
Release files for markitdown-directory-mcp 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| markitdown_directory_mcp-0.1.0.tar.gz | 8.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| markitdown_directory_mcp-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 17.6 kB
Release files / markitdown_directory_mcp-0.1.0.tar.gz
| Download URL | markitdown_directory_mcp-0.1.0.tar.gz |
|---|---|
| Size | 8.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
775f8b5f1a024546bba7bd8f463fdeb0f41747d08e35e3763d4189280580b6e4
|
|
BLAKE2b-256 checksum How to use checksums |
977460d770d7e1449b584d5837b9c1f6c06ceb98b200fedc9e870d48db00252e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / markitdown_directory_mcp-0.1.0-py3-none-any.whl
| Download URL | markitdown_directory_mcp-0.1.0-py3-none-any.whl |
|---|---|
| Size | 8.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
42b36207da1e07c7bbcdad0f06a5809dec64de589d75121b3e8fca53b4762871
|
|
BLAKE2b-256 checksum How to use checksums |
e2815b395672d9c8e29c20b24ecf3c7ac01b54be7145876ea527ac69ccd48d4f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|