Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
Convert PDFs and other documents to structured formats via Docling, for AI applications.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
DOCLING_MCP_CONVERSION_MODE, DOCLING_MCP_SERVICE_URL, DOCLING_MCP_SERVICE_API_KEY, DOCLING_MCP_SERVICE_TIMEOUT, DOCLING_MCP_SERVICE_MAX_RETRIES, DOCLING_MCP_FALLBACK_TO_LOCAL, DOCLING_MCP_KEEP_IMAGES, DOCLING_MCP_IMAGES_SCALE, DOCLING_MCP_DO_OCR, DOCLING_MCP_OCR_ENGINE, DOCLING_MCP_OCR_LANG, DOCLING_MCP_DO_TABLE_STRUCTURE, DOCLING_MCP_DO_PICTURE_DESCRIPTION, DOCLING_MCP_PICTURE_DESCRIPTION_PRESET, DOCLING_MCP_IMAGE_EXPORT_MODE, DOCLING_MCP_CACHE_MAX_DOCUMENTSValues marked secret are keys to your account. Never share them or paste them into a chat.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"docling": {
"command": "uvx",
"args": [
"docling-mcp"
],
"env": {
"DOCLING_MCP_CONVERSION_MODE": "your-value",
"DOCLING_MCP_SERVICE_URL": "your-value",
"DOCLING_MCP_SERVICE_API_KEY": "your-value",
"DOCLING_MCP_SERVICE_TIMEOUT": "your-value",
"DOCLING_MCP_SERVICE_MAX_RETRIES": "your-value",
"DOCLING_MCP_FALLBACK_TO_LOCAL": "your-value",
"DOCLING_MCP_KEEP_IMAGES": "your-value",
"DOCLING_MCP_IMAGES_SCALE": "your-value",
"DOCLING_MCP_DO_OCR": "your-value",
"DOCLING_MCP_OCR_ENGINE": "your-value",
"DOCLING_MCP_OCR_LANG": "your-value",
"DOCLING_MCP_DO_TABLE_STRUCTURE": "your-value",
"DOCLING_MCP_DO_PICTURE_DESCRIPTION": "your-value",
"DOCLING_MCP_PICTURE_DESCRIPTION_PRESET": "your-value",
"DOCLING_MCP_IMAGE_EXPORT_MODE": "your-value",
"DOCLING_MCP_CACHE_MAX_DOCUMENTS": "your-value"
}
}
}
}Run this in your terminal
claude mcp add docling --env DOCLING_MCP_CONVERSION_MODE=your-value --env DOCLING_MCP_SERVICE_URL=your-value --env DOCLING_MCP_SERVICE_API_KEY=your-value --env DOCLING_MCP_SERVICE_TIMEOUT=your-value --env DOCLING_MCP_SERVICE_MAX_RETRIES=your-value --env DOCLING_MCP_FALLBACK_TO_LOCAL=your-value --env DOCLING_MCP_KEEP_IMAGES=your-value --env DOCLING_MCP_IMAGES_SCALE=your-value --env DOCLING_MCP_DO_OCR=your-value --env DOCLING_MCP_OCR_ENGINE=your-value --env DOCLING_MCP_OCR_LANG=your-value --env DOCLING_MCP_DO_TABLE_STRUCTURE=your-value --env DOCLING_MCP_DO_PICTURE_DESCRIPTION=your-value --env DOCLING_MCP_PICTURE_DESCRIPTION_PRESET=your-value --env DOCLING_MCP_IMAGE_EXPORT_MODE=your-value --env DOCLING_MCP_CACHE_MAX_DOCUMENTS=your-value -- uvx docling-mcpFill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"docling": {
"command": "uvx",
"args": [
"docling-mcp"
],
"env": {
"DOCLING_MCP_CONVERSION_MODE": "your-value",
"DOCLING_MCP_SERVICE_URL": "your-value",
"DOCLING_MCP_SERVICE_API_KEY": "your-value",
"DOCLING_MCP_SERVICE_TIMEOUT": "your-value",
"DOCLING_MCP_SERVICE_MAX_RETRIES": "your-value",
"DOCLING_MCP_FALLBACK_TO_LOCAL": "your-value",
"DOCLING_MCP_KEEP_IMAGES": "your-value",
"DOCLING_MCP_IMAGES_SCALE": "your-value",
"DOCLING_MCP_DO_OCR": "your-value",
"DOCLING_MCP_OCR_ENGINE": "your-value",
"DOCLING_MCP_OCR_LANG": "your-value",
"DOCLING_MCP_DO_TABLE_STRUCTURE": "your-value",
"DOCLING_MCP_DO_PICTURE_DESCRIPTION": "your-value",
"DOCLING_MCP_PICTURE_DESCRIPTION_PRESET": "your-value",
"DOCLING_MCP_IMAGE_EXPORT_MODE": "your-value",
"DOCLING_MCP_CACHE_MAX_DOCUMENTS": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"docling": {
"type": "stdio",
"command": "uvx",
"args": [
"docling-mcp"
],
"env": {
"DOCLING_MCP_CONVERSION_MODE": "your-value",
"DOCLING_MCP_SERVICE_URL": "your-value",
"DOCLING_MCP_SERVICE_API_KEY": "your-value",
"DOCLING_MCP_SERVICE_TIMEOUT": "your-value",
"DOCLING_MCP_SERVICE_MAX_RETRIES": "your-value",
"DOCLING_MCP_FALLBACK_TO_LOCAL": "your-value",
"DOCLING_MCP_KEEP_IMAGES": "your-value",
"DOCLING_MCP_IMAGES_SCALE": "your-value",
"DOCLING_MCP_DO_OCR": "your-value",
"DOCLING_MCP_OCR_ENGINE": "your-value",
"DOCLING_MCP_OCR_LANG": "your-value",
"DOCLING_MCP_DO_TABLE_STRUCTURE": "your-value",
"DOCLING_MCP_DO_PICTURE_DESCRIPTION": "your-value",
"DOCLING_MCP_PICTURE_DESCRIPTION_PRESET": "your-value",
"DOCLING_MCP_IMAGE_EXPORT_MODE": "your-value",
"DOCLING_MCP_CACHE_MAX_DOCUMENTS": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
DOCLING_MCP_CONVERSION_MODE envDOCLING_MCP_SERVICE_URL envDOCLING_MCP_SERVICE_TIMEOUT envDOCLING_MCP_SERVICE_MAX_RETRIES envDOCLING_MCP_FALLBACK_TO_LOCAL envDOCLING_MCP_KEEP_IMAGES envDOCLING_MCP_IMAGES_SCALE envDOCLING_MCP_DO_OCR envDOCLING_MCP_OCR_ENGINE envDOCLING_MCP_OCR_LANG envDOCLING_MCP_DO_TABLE_STRUCTURE envDOCLING_MCP_DO_PICTURE_DESCRIPTION envDOCLING_MCP_PICTURE_DESCRIPTION_PRESET envDOCLING_MCP_IMAGE_EXPORT_MODE envDOCLING_MCP_CACHE_MAX_DOCUMENTS envThese settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 7, 2026
The registry name was verified with the GitHub account docling-project, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
You need to fill in: DOCLING_MCP_SERVICE_API_KEY
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (3.5.0) reached the registry 2 days ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Python (uv) on your computer.
In the same category: Spec Driven Development, Remote Desktop Commander, Detailing Manager
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Connect your auto detailing studio's tasks, cars, clients and revenue to Claude or ChatGPT.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
A document processing service using the Docling-MCP library and MCP (Model Context Protocol) for tool integration.
Docling MCP is a service that provides tools for document conversion, processing and generation. It uses the Docling library to convert PDF documents into structured formats and provides a caching mechanism to improve performance. The service exposes functionality through a set of tools that can be called by client applications.
| docling-mcp | MCP Python SDK |
|---|---|
>=3.0.0 | mcp>=2.0.0 |
>=2.0.0,<3.0.0 | mcp>=1.9.4,<2.0.0 |
If your MCP client application has not yet migrated to MCP SDK v2, pin:
pip install "docling-mcp<3.0.0"
See MIGRATION.md for the full migration guide.
For users with access to Docling Serve API:
Getting Docling Serve: Visit docling-serve for installation guides. You can deploy it from published container images or look for managed Docling SaaS offerings.
pip install docling-mcp
Then configure your environment:
export DOCLING_MCP_SERVICE_URL=https://your-docling-service.example.com
export DOCLING_MCP_SERVICE_API_KEY=your-api-key-here export DOCLING_MCP_CONVERSION_MODE=remote
For users who need local conversion or don't have Docling Serve access:
pip install docling-mcp[local]
Then configure your environment:
export DOCLING_MCP_CONVERSION_MODE=local
Install with local support and enable automatic fallback:
pip install docling-mcp[local]
Configure for remote with fallback:
export DOCLING_MCP_SERVICE_URL=https://your-docling-service.example.com
export DOCLING_MCP_CONVERSION_MODE=remote export DOCLING_MCP_FALLBACK_TO_LOCAL=true
All settings use the DOCLING_MCP_ prefix and can be supplied as environment variables, in a .env file in the working directory, or via the env block of your MCP client config. Copy .env.example as a starting point.
| Variable | Default | Description |
|---|---|---|
DOCLING_MCP_CONVERSION_MODE | remote | remote or local |
DOCLING_MCP_CONVERSION_MODE=remote)| Variable | Default | Description |
|---|---|---|
DOCLING_MCP_SERVICE_URL | — | URL of the Docling Serve instance |
DOCLING_MCP_SERVICE_API_KEY | — | API key for the service |
DOCLING_MCP_SERVICE_TIMEOUT | 300.0 | Timeout in seconds for a whole conversion job |
DOCLING_MCP_SERVICE_MAX_RETRIES | 3 | Max retry attempts |
DOCLING_MCP_FALLBACK_TO_LOCAL | false | Fall back to local if service is unreachable (requires docling-mcp[local]) |
| Variable | Default | Description |
|---|---|---|
DOCLING_MCP_KEEP_IMAGES | false | Retain page images in output |
DOCLING_MCP_IMAGES_SCALE | 1.0 | Image scale factor (increase to avoid tensor padding errors) |
DOCLING_MCP_DO_OCR | true | Run OCR pipeline |
DOCLING_MCP_OCR_ENGINE | auto | OCR engine by its docling engine kind: auto, easyocr, tesseract (system binary), tesserocr (Python bindings), ocrmac, rapidocr. The engine must be installed on the conversion backend. In remote mode it is sent as the Docling Serve ocr_preset, so server-defined preset names also work there |
DOCLING_MCP_OCR_LANG | — | Comma-separated OCR languages, passed to the engine unchanged. iso:en,iso:de works with any engine (docling ≥ 2.127, recommended with auto); bare codes are engine-specific (eng for Tesseract, en for EasyOCR or Docling Serve). Unset means the engine's defaults |
DOCLING_MCP_DO_TABLE_STRUCTURE | true | Detect table structure |
DOCLING_MCP_DO_PICTURE_DESCRIPTION | false | Run a vision-language model to generate textual descriptions for figures and pictures |
DOCLING_MCP_PICTURE_DESCRIPTION_PRESET | — | Preset ID for the picture-description VLM (e.g. smolvlm, granite_vision). When unset the backend default is used. Only applies when DOCLING_MCP_DO_PICTURE_DESCRIPTION=true |
[!TIP]
Enabling
DOCLING_MCP_DO_PICTURE_DESCRIPTION=trueadds a VLM inference step for every figure in the document. On resource-constrained hardware (e.g. a laptop running the model on CPU) this can significantly increase conversion time.
- Remote mode — increase
DOCLING_MCP_SERVICE_TIMEOUT(in seconds) to give the remote service enough time to complete. The default is300.0(5 minutes).
- Local mode / MCP client timeout — the MCP client itself may also enforce a request timeout. For example, in LM Studio set the
timeoutfield (in milliseconds) in yourmcp.json:
`json
{
"mcpServers": {
"docling": {
"url": "http://localhost:8000/mcp",
"timeout": 300000
}
}
}
`
| Variable | Default | Description |
|---|---|---|
DOCLING_MCP_IMAGE_EXPORT_MODE | placeholder | How images are rendered in Markdown output: placeholder (emits ), embedded (base64 data-URI), referenced (file path / URL) |
| Variable | Default | Description |
|---|---|---|
DOCLING_MCP_CACHE_MAX_DOCUMENTS | 10 | Maximum number of documents to keep in the in-memory cache. When the limit is reached the least-recently-used document is evicted. |
--tools llama-index-rag)| Variable | Default | Description |
|---|---|---|
DOCLING_MCP_LI_API_BASE | http://127.0.0.1:1234/v1 | OpenAI-compatible LLM endpoint |
DOCLING_MCP_LI_API_KEY | none | API key for the LLM endpoint |
DOCLING_MCP_LI_MODEL_ID | ibm/granite-3.2-8b | LLM model identifier |
DOCLING_MCP_LI_EMBEDDING_MODEL | BAAI/bge-base-en-v1.5 | HuggingFace embedding model |
--tools llama-stack-rag / --tools llama-stack-ie)| Variable | Default | Description |
|---|---|---|
DOCLING_MCP_LLS_URL | http://localhost:8321 | LlamaStack server URL |
DOCLING_MCP_LLS_VDB_EMBEDDING | all-MiniLM-L6-v2 | Embedding model for vector DB |
DOCLING_MCP_LLS_EXTRACTION_MODEL | openai/gpt-oss-20b | Model used for structured extraction |
{
"mcpServers": { "docling": { "command": "uvx", "args": [ "--from=docling-mcp", "docling-mcp-server" ], "env": { "DOCLING_MCP_CONVERSION_MODE": "remote", "DOCLING_MCP_SERVICE_URL": "https://your-docling-service.example.com", "DOCLING_MCP_SERVICE_API_KEY": "your-api-key-here" } } } }
The easiest way to install Docling MCP and connect it to your client is by launching it via uvx.
Depending on the transfer protocol required, specify the argument --transport, for example
sh uvx --from docling-mcp docling-mcp-server --transport stdio
sh uvx --from docling-mcp docling-mcp-server --transport sse
sh uvx --from docling-mcp docling-mcp-server --transport streamable-http
More options are available, e.g. the selection of which toolgroup to launch. Use the --help argument to inspect all the CLI options.
For developing the MCP tools further, please refer to the Developing section of CONTRIBUTING.md for instructions.
One of the easiest ways to experiment with the tools provided by Docling MCP is to leverage an AI desktop client with MCP support. Most of these clients use a common config interface. Adding Docling MCP in your favorite client is usually as simple as adding the following entry in the configuration file.
{
"mcpServers": { "docling": { "command": "uvx", "args": [ "--from=docling-mcp", "docling-mcp-server" ] } } }
When using [Claude for Desktop](https://claude.ai/download), simply edit the config file claude_desktop_config.json with the snippet above or the example provided here.
In [LM Studio](https://lmstudio.ai/), edit the mcp.json file with the appropriate section or simply click on the button below for a direct install.
Other integrations are described in the [integrations] page.
Example of prompt for converting PDF documents:
Convert the PDF document at <provide file-path> into DoclingDocument and return its document-key.
Example of prompt for generating new documents:
I want you to write a Docling document. To do this, you will create a document first by invoking `create_new_docling_document`. Next you can add a title (by iOnly the beginning is shown; read the rest in the repo