document-conversion-api
Server Details
Converts between PDF/Office documents and structured JSON, both directions. Pure OSS libraries, x402
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- nexus-mcp-infra/document-conversion-api
- GitHub Stars
- 0
- Server Listing
- document-conversion-api
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 3.4/5 across 5 of 5 tools scored.
Each tool maps to a unique combination of format and operation: three extraction tools for docx/pdf/xlsx and two generation tools for docx/pdf. There is no overlap or ambiguity about which tool to select.
Tool names follow a strict and predictable pattern: extract_{format}_to_json and generate_{format}_from_json. This makes the API easy to scan and understand without reading descriptions.
Five tools is well-scoped for a document conversion API, covering both extraction and generation without unnecessary bloat. Each tool serves a distinct format-related need.
The extraction side covers docx, pdf, and xlsx, but generation only covers docx and pdf, leaving no JSON-to-xlsx path. This asymmetry is a notable gap for a server that appears to support conversion to and from structured JSON.
Available Tools
5 toolsextract_docx_to_jsonAInspect
Extract paragraphs (with heading levels), tables and metadata from a .docx (base64-encoded bytes).
| Name | Required | Description | Default |
|---|---|---|---|
| file_base64 | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full disclosure burden. It does usefully disclose the input encoding requirement (base64-encoded bytes) and implies a read-only extract operation with no side effects. However, it does not address return behavior, error cases, size limits, or anything beyond the single input requirement. Adequate but not rich for the annotation-free case.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single 16-word sentence that front-loads the action and objects, with the input format parenthetically appended. Every word carries meaning; there is zero fluff. Highly efficient for a one-parameter tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter extraction tool with no output schema, the description covers the essential operational facts: what will be extracted (paragraphs, tables, metadata) and the required input format. The extraction targets hint at the return structure. It omits details like output structure or edge-case behavior, but nothing critical is missing for the tool's simple, read-only nature.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% — the parameter has no description in the schema, so the tool description must compensate. The description adds that the input is a .docx file in base64-encoded byte format, which is genuinely useful. However, the parameter name 'file_base64' already conveys the encoding aspect, so the marginal value added over the name-plus-type is moderate rather than substantial.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Extract'), resource (paragraphs with heading levels, tables, metadata), and format (.docx base64-encoded bytes). It is immediately clear what this does and how it differs from the sibling extractors (extract_pdf_to_json, extract_xlsx_to_json) by extension. The extraction targets are enumerated precisely, leaving no ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended usage is implied through the .docx extension and the sibling naming convention, so an agent could reasonably infer when to select this tool. However, there is no explicit when-to-use, when-not-to-use, or alternative-routing statement. The guidance is functional but relies on inference rather than explicit direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
extract_pdf_to_jsonBInspect
Extract text, tables, page count and metadata from a PDF (base64-encoded bytes).
| Name | Required | Description | Default |
|---|---|---|---|
| max_pages | No | ||
| file_base64 | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions that input is base64-encoded bytes, which is useful, but it does not disclose that the operation is read-only, does not mention any limits (e.g., page count), error behavior, or side effects. The existence of the 'max_pages' parameter is not reflected in the description, leaving behavioral details ambiguous.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. It states the core action and outputs immediately, making it easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of an output schema and annotations, the description is incomplete. It fails to mention the 'max_pages' parameter, does not describe the JSON output structure, and does not note any constraints (e.g., file size, binary handling). An agent would not know how to control page limits or what to expect as a return value.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must explain parameters. It clarifies that 'file_base64' should be base64-encoded bytes, but it gives no explanation of 'max_pages' (purpose, default, or effect). This leaves half the parameters undocumented in both the schema and the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Extract') and names the resource ('PDF') and the outputs (text, tables, page count, metadata). It clearly distinguishes from sibling tools that target other file types (DOCX, XLSX) and generation tools, so an agent can immediately tell what this tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for PDFs (as opposed to DOCX/XLSX siblings) but does not explicitly state when to use it versus alternatives or any exclusions. It provides only the basic context that it handles PDFs, without saying 'use this for PDFs, other extract_* for other formats.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
extract_xlsx_to_jsonBInspect
Extract per-sheet cell grids from an .xlsx (base64-encoded bytes), capped rows/cols per sheet.
| Name | Required | Description | Default |
|---|---|---|---|
| file_base64 | Yes | ||
| max_cols_per_sheet | No | ||
| max_rows_per_sheet | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description carries the full disclosure burden. It adds meaningful context: input must be base64-encoded bytes, output is structured per-sheet, and rows/cols are capped. However, it doesn't disclose what happens at the cap boundary (truncation vs. error) or describe the output structure beyond 'cell grids.'
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence covers the essential details with no filler. Each element—verb, resource, input encoding, and capping behavior—earns its place. The parenthetical '(base64-encoded bytes)' is efficiently placed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter extraction tool with no annotations and no output schema, the description covers the core contract: input format, output shape, and limits. Lacking is clarity on return structure (does it return sheet names? headers?) and cap-boundary behavior, which an agent might need to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does 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 partially does: 'base64-encoded bytes' maps to file_base64, and 'capped rows/cols per sheet' maps to the max_rows/max_cols parameters. However, the parameter names are already highly self-documenting, and the description adds only marginal clarity about their semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Extract per-sheet cell grids from an .xlsx' names a specific verb, resource, and output shape. It distinguishes itself from siblings through the explicit '.xlsx' format and 'per-sheet cell grids' language, though it doesn't name a contrasting sibling the way top-tier definitions do.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage context is implied rather than stated. The input format (.xlsx) makes it self-evident when to reach for this tool versus extract_docx_to_json or extract_pdf_to_json, but there's no explicit when-to-use guidance or exclusions. The base64-encoded input hint does provide some input precondition framing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_docx_from_jsonAInspect
Generate a .docx from structured blocks (heading/paragraph/table). Returns base64-encoded docx bytes.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| blocks | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral disclosure burden. It does disclose a key behavioral trait: the output is returned as base64-encoded bytes rather than as a file path or saved file. It stops short of describing error handling or side effects, but for a generation tool this is a meaningful level of transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no filler. The core behavior is front-loaded, and the return format is stated immediately. Every word contributes useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no annotations, no output schema, and zero parameter descriptions, so the description alone must make the tool safely invocable. It leaves the title parameter and the exact block object format undocumented, which are essential for constructing a valid request.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does 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 partially explains the blocks parameter by listing supported block types, but it does not describe the shape of each block object or explain the required title parameter at all. An agent would still need to guess the expected internal structure.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource ('Generate a .docx') and clarifies the input as structured blocks (heading/paragraph/table). This clearly distinguishes it from the extract siblings and from generate_pdf_from_json.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool should be used when a .docx needs to be produced from structured blocks, but it does not explicitly state when to prefer this over generate_pdf_from_json or when not to use it. No alternatives are named, leaving routing mostly to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_pdf_from_jsonCInspect
Generate a PDF from structured blocks (heading/paragraph/table). Returns base64-encoded PDF bytes.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| blocks | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the output format (base64-encoded PDF bytes) but does not mention any side effects, error conditions, size limits, or whether the operation is read-only or mutating. For a generation tool, this is a notable gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, front-loaded with the core purpose and output format. It is concise and to the point, though it could add a bit more detail without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (structured blocks with multiple types), the lack of output schema, and zero annotation coverage, the description is incomplete. It does not specify the exact JSON structure for blocks, how to represent each block type, or any constraints on the title. An agent would likely need to guess or fail on first attempt.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does 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 that 'blocks' are structured blocks with types (heading/paragraph/table), which adds some meaning, but it does not explain the structure of each block type, the 'title' parameter's role, or any constraints. The schema itself is minimal (blocks is just an array of objects with additionalProperties), so the description leaves significant ambiguity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Generate') and resource ('PDF from structured blocks'), and lists the block types (heading/paragraph/table). It distinguishes itself from sibling extraction tools, though it doesn't explicitly name the sibling generation tool (generate_docx_from_json) for contrast.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use it (when you need a PDF from structured blocks) but does not explicitly state when not to use it or mention alternatives like generate_docx_from_json. The context is clear enough for an agent to infer usage, but explicit routing guidance is missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Servers
- FlicenseAqualityBmaintenanceDocument-engineering MCP tool server providing tools for PDF, Office, Images, and Archives extraction and conversion. It never mutates source files and requires local tesseract for OCR.12
- AlicenseAqualityBmaintenanceConvert PDFs to structured JSON. Extract invoices, bank statements, contracts, and more. Pay per call via x402 USDC.58MIT
- AlicenseAqualityCmaintenanceConverts PDF, Word, Excel, and PowerPoint documents to Markdown using a pay-per-conversion model with USDC on Base via the x402 protocol.2MIT
- AlicenseNot gradedqualityCmaintenanceFile conversion built for AI agents. CLI, REST API, and MCP server — all sharing one engine.10MIT
Your Connectors
Sign in to create a connector for this server.