docling-mcp
Server Quality Checklist
Latest release: v0.1.0
- Disambiguation5/5
Each tool has a clearly distinct purpose: plain text conversion, markdown conversion, table extraction, and RAG chunking. No two tools overlap in function, and the descriptions clarify the differences even between the two conversion tools.
Naming Consistency5/5All tool names follow a consistent verb_noun pattern in snake_case (convert_to_text, convert_to_markdown, extract_tables, chunk_for_rag). The naming is uniform and predictable.
Tool Count5/5With 4 tools, the server is well-scoped for document processing. Each tool covers a distinct need without redundancy, and the number is within the ideal range.
Completeness4/5The server covers the primary conversion and extraction needs (text, markdown, tables) plus chunking for RAG. Minor gaps exist, such as direct document structure extraction or image extraction, but agents can work around these using the provided tools.
Average 4.2/5 across 4 of 4 tools scored. Lowest: 3.6/5.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 3 commits in the last 12 weeks
- No stable releases found
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI status not available
This repository is licensed under MIT License.
This repository includes a README.md file.
No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.
Tip: use the "Try in Browser" feature on the server page to seed initial usage.
Add a glama.json file to provide metadata about your server.
If you are the author, simply .
If the server belongs to an organization, first add
glama.jsonto the root of your repository:{ "$schema": "https://glama.ai/mcp/schemas/server.json", "maintainers": [ "your-github-username" ] }Then . Browse examples.
Add related servers to improve discoverability.
How to sync the server with GitHub?
Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.
To manually sync the server, click the "Sync Server" button in the MCP server admin interface.
How is the quality score calculated?
The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).
Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.
Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).
Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.
Tool Scores
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full behavioral burden. It discloses the exact return contract (list of page, index, num_rows, num_cols, markdown, rows) and clarifies row structure. It does not address potential side effects or performance, but as a read-only extraction tool the output contract is the most relevant behavioral trait.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, front-loaded with the action, and uses a compact structured list for the return shape. Every sentence adds useful information with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 2 parameters and no annotations, and the description covers the core extraction behavior and output shape. However, it omits semantics for source and ocr_languages, and does not explain when to prefer this over convert_to_markdown or convert_to_text, leaving integration gaps for the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It implies 'source' refers to a document but does not explain accepted formats (path, ID, content). The ocr_languages parameter is completely unexplained, leaving a required part of the invocation ambiguous.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Extract all tables from a document', a specific verb+resource that clearly distinguishes from sibling tools like convert_to_text or convert_to_markdown. It also specifies the produced data structure, reinforcing the tool's table-focused purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this tool vs alternatives. The phrase 'Extract all tables' implies a use case (need structured table data), but it does not mention sibling conversion tools, exclusions, or preconditions such as OCR requirements.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It clearly states output is just a text string without markdown, and that tables are linearized. This adds useful behavioral context beyond the schema. However, it does not mention how page_range or ocr_languages affect behavior, which is a gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Three short, front-loaded sentences with zero waste. The purpose is stated first, followed by use case and key behavioral notes. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists, return values need not be explained, and the description does mention the return type. It covers purpose, use case, and a transformation detail. However, it does not describe how the optional parameters work or what happens when an image vs document is provided, making it slightly incomplete for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It fails to explain page_range or ocr_languages. The only hint is 'document or image' which loosely maps to the 'source' parameter, but provides no detail on format, defaults, or constraints. This is a significant gap for a three-parameter tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Convert') with a clear resource ('document or image') and output type ('plain text'). It explicitly distinguishes itself from sibling tools by noting 'no markdown formatting' and 'tables are linearized', differentiating it from convert_to_markdown and extract_tables.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit usage context: 'Best for feeding token-limited text-only LLMs.' This implies when to use this tool, though it does not explicitly mention alternatives or when not to use it. The sibling tool list helps, but the description could be more direct about when markdown or chunking would be preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the return format (list of dicts with fields), the default tokenizer, and provides guidance for multilingual documents. It does not explicitly state whether the operation is read-only or requires network access for tokenizer downloads, but it covers the most important behavioral aspects for a chunking tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and concise: a clear first line, a return format line, and a clean Args block. Every sentence adds value; there is no redundancy or fluff. It is appropriately sized for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is complete enough for an agent to invoke the tool correctly: it covers the tool's purpose, return values, and all parameters with defaults and usage notes. It lacks error-handling or edge-case details, but these are not critical for a chunking tool. The output schema is not shown, but the return format is explicitly described.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains all five parameters: source (path/URL/data URI), chunk_size, overlap, tokenizer (with default and multilingual hint), and ocr_languages (as override). The only gap is that ocr_languages is underspecified (no details on format or acceptable values), but overall it adds substantial meaning beyond the schema titles.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Chunk') and resource ('a document for RAG'), and explicitly mentions using docling's HybridChunker. It distinguishes itself from sibling tools like convert_to_text and extract_tables by focusing on chunking rather than conversion or extraction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear context: chunking for RAG. It implicitly signals when to use this tool (when chunks are needed for retrieval), but it does not explicitly mention alternatives or exclusion criteria. However, the purpose is specific enough that an agent would know to use it for chunking rather than the conversion siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and does excellently: it discloses VLM fallback behavior, OCR language override default, page_range inclusivity, and the return result structure. This goes beyond basic facts.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured: a clear one-sentence purpose, supported formats, then a detailed Args section and Returns section. Every sentence adds value, with no fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (5 params, 1 required, output schema), the description covers all inputs, explains behavioral nuances, and even describes the return result fields. It is complete and self-sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but the description thoroughly explains each of the 5 parameters, including default values, formats, and meaning (e.g., enable_vlm, page_range, image_caption_mode with its enumerated options). This fully compensates for the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool converts a document or image to Markdown, listing specific supported formats (PDF, DOCX, PPTX, HTML, images). This distinguishes it from siblings like convert_to_text and extract_tables.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context about what formats and options are supported, and how opts like page_range and image_caption_mode work. However, it does not explicitly compare with siblings (e.g., when to use convert_to_text instead), so it lacks direct exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GitHub Badge
Glama performs regular codebase and documentation scans to:
- Confirm that the MCP server is working as expected.
- Confirm that there are no obvious security issues.
- Evaluate tool definition quality.
Our badge communicates server capabilities, safety, and installation instructions.
Card Badge
Copy to your README.md:
Score Badge
Copy to your README.md:
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/mk20mm/docling-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server