# docling.rs

docling.rs MCP server converts PDF, Office, HTML and scans to Markdown with structure intact — headings, tables and OCR for agents.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed · ★ 111
- Author: docling-project
- License: MIT · policy=link-only · description only; the file stays with the author
- Source: https://github.com/docling-project/docling.rs
- Updated: 2026-10-24
- HTML: https://affpapa.org/en/nevibecode/mcp/doclingrs

## What it does

docling.rs parses documents and returns content agents can read: Markdown with headings in order, tables cell by cell, scanned pages through OCR. It runs layout analysis models, TableFormer for table recognition and Whisper for audio, all from a single Rust binary without Python or PyTorch.

Handles PDF, Office (Word, Excel, PowerPoint), HTML, email, images and audio. PDF converts 4.3× faster than Python docling, Office and HTML 20–60× faster. Table cell recall 0.94, MarkItDown gets 0.31. Office, HTML and Markdown need no models; for PDF and images the server downloads ONNX models on first run (under 1 GB).

Outputs Markdown, JSON, HTML, LaTeX. Reads URLs, `data:` URIs and YouTube (captions). Works over stdio, connects to any MCP-capable platform.

## Requirements
- Needs: Python and uv (commands run via uvx)
- Environment variables: `DOCLING_RS_CACHE_DIR`, `DOCLING_RS_OCR_LANG` — keys and tokens: ask the human for the values, never commit them or put them in shared files.

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add --env DOCLING_RS_CACHE_DIR=<DOCLING_RS_CACHE_DIR> --env DOCLING_RS_OCR_LANG=<DOCLING_RS_OCR_LANG> --transport stdio doclingrs -- uvx docling-rs-mcp
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from docling-rs-mcp <command>

### Codex

**Platform CLI**
```bash
codex mcp add doclingrs --env DOCLING_RS_CACHE_DIR=<DOCLING_RS_CACHE_DIR> --env DOCLING_RS_OCR_LANG=<DOCLING_RS_OCR_LANG> -- uvx docling-rs-mcp
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from docling-rs-mcp <command>

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "doclingrs": {
            "command": "uvx",
            "args": [
                "docling-rs-mcp"
            ],
            "env": {
                "DOCLING_RS_CACHE_DIR": "<DOCLING_RS_CACHE_DIR>",
                "DOCLING_RS_OCR_LANG": "<DOCLING_RS_OCR_LANG>"
            }
        }
    }
}
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from docling-rs-mcp <command>

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "doclingrs": {
            "type": "stdio",
            "command": "uvx",
            "args": [
                "docling-rs-mcp"
            ],
            "env": {
                "DOCLING_RS_CACHE_DIR": "<DOCLING_RS_CACHE_DIR>",
                "DOCLING_RS_OCR_LANG": "<DOCLING_RS_OCR_LANG>"
            }
        }
    }
}
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from docling-rs-mcp <command>

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add -e DOCLING_RS_CACHE_DIR=<DOCLING_RS_CACHE_DIR> -e DOCLING_RS_OCR_LANG=<DOCLING_RS_OCR_LANG> doclingrs uvx docling-rs-mcp
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from docling-rs-mcp <command>

## When to use it
- Extract text from PDF preserving heading structure and tables
- Run OCR on scans and images to pull out text
- Convert Office documents to Markdown for agent processing
- Transcribe audio and video to text with Whisper
- Parse HTML and email into structured format

## Example prompts
- Convert `report.pdf` to Markdown and show tables
- Extract text from scan `scan.png` and save to `output.md`
- Parse all PDFs in `./docs` folder and output heading structure

## Similar
- [Reactive Resume](https://affpapa.org/en/nevibecode/mcp/reactive-resume.md) — MCP server · ★ 44874
- [Sui Knowledge Base (kapa.ai)](https://affpapa.org/en/nevibecode/mcp/sui-knowledge-base-kapaai.md) — MCP server · ★ 7784
- [Claude Code Ultimate Guide](https://affpapa.org/en/nevibecode/mcp/claude-code-ultimate-guide.md) — MCP server · ★ 6237
- [Zotero MCP](https://affpapa.org/en/nevibecode/mcp/zotero-mcp.md) — MCP server · ★ 5548
- [RevoGrid DataGrid MCP Pro](https://affpapa.org/en/nevibecode/mcp/revogrid-datagrid-mcp-pro.md) — MCP server · ★ 3450
- [Claude Code Explorer MCP](https://affpapa.org/en/nevibecode/mcp/codeaashu-claude-code-explorer-mcp.md) — MCP server · ★ 3409

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
