docling-rs-mcp
A Model Context Protocol server that
converts documents to Markdown for AI agents — PDF with layout analysis,
table structure and OCR, DOCX, PPTX, XLSX, HTML, EPUB, e-mail, scans and
40-odd other formats. It is docling.rs,
a Rust port of IBM's docling,
and it serves MarkItDown's convert_to_markdown(uri) tool under the same
name and contract: a markitdown-mcp setup switches by changing the command.
uvx docling-rs-mcp --root ~/Documents
Claude Desktop (claude_desktop_config.json):
{
"mcpServers": {
"docling": { "command": "uvx", "args": ["docling-rs-mcp", "--root", "/Users/me/Documents"] }
}
}
Claude Code: claude mcp add docling -- uvx docling-rs-mcp --root ~/Documents.
Tools
| Tool | Returns |
|---|---|
convert_to_markdown(uri) |
Markdown of the document behind an http:/https:/file:/data: URI or a path |
convert(uri, to?, images?, options?) |
md, json (docling's DoclingDocument), html, text, latex, chunks, vtt or pandoc, with docling.rs's conversion options — {"pages": "1-5"}, {"ocr_lang": "ch"}, {"password": "…"}, … |
list_input_formats() |
the extensions the server converts |
PDF models
Office, HTML, Markdown and e-mail need no models. PDFs and images use ONNX models for layout, tables and OCR (~720 MB). Fetch them once:
uvx docling-rs-mcp --download-models
They land in the docling.rs cache ($DOCLING_RS_CACHE_DIR, else
~/.cache/docling.rs) and the server finds them from then on;
--download-models=all adds the code/formula enrichment models (~740 MB
more). Until then PDFs convert from their text layer, as MarkItDown's do.
macOS: PyPI has no macOS wheel of docling-rs yet, so uv builds it from
source on first use — install a Rust toolchain (rustup) and run the
--download-models line in a terminal once; the build is cached, and an MCP
client then starts the server without waiting for it.
What a call may reach
Local paths and file: URIs are confined to --root (repeatable; the
working directory by default, except in /, where it is required).
http(s) URLs are fetched only with
--allow-url-fetch, and private or loopback addresses stay blocked.
--http serves Streamable HTTP on 127.0.0.1:3001 instead of stdio.
--help lists every flag; the security model is in
docs/SECURITY.md.
The same server ships in the docling-rs binary (docling-rs mcp) and the
ghcr.io/docling-project/docling-rs image, models included; with the
docling-rs Python package installed it is also python -m docling_rs.mcp.
On NVIDIA GPUs, uv run --with docling-rs-cuda python -m docling_rs.mcp.
MIT licensed.
Metadata
Release files for docling-rs-mcp 2.24.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 | |
|---|---|---|---|
| docling_rs_mcp-2.24.0.tar.gz | 3.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| docling_rs_mcp-2.24.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 7.3 kB
Release files / docling_rs_mcp-2.24.0.tar.gz
| Download URL | docling_rs_mcp-2.24.0.tar.gz |
|---|---|
| Size | 3.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7fc2973a8c4b499a788c428be100cc19709b34fb343b26105fda66cd9ba8f734
|
|
BLAKE2b-256 checksum How to use checksums |
c623e25237a7c722c3356a6cd38a4cbec7579411afa0fedd85e34096943ba3dd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.
Transparency logRelease files / docling_rs_mcp-2.24.0-py3-none-any.whl
| Download URL | docling_rs_mcp-2.24.0-py3-none-any.whl |
|---|---|
| Size | 3.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2a6d82cbdf31137701a3c04316cf490374270dd1b98c1023d26ea62163ccef36
|
|
BLAKE2b-256 checksum How to use checksums |
a41201e92c3c4b307e5298da1d565fe81792e52aa4996398c28a6b6bfc5368e8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.
Transparency log