Skip to main content
Glama

docforge

Server Details

PDF to markdown, OCR, table extraction, invoice parsing, and PDF rendering. Pay per call via x402.

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

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.

100% free. Your data is private.
Tool DescriptionsA

Average 4.1/5 across 5 of 5 tools scored.

Server CoherenceA
Disambiguation5/5

Each tool targets a distinct document processing task: table extraction, image OCR, invoice parsing, PDF-to-markdown conversion, and markdown-to-PDF rendering. Even though parse_invoice can process images, its structured output clearly differentiates it from ocr_image.

Naming Consistency4/5

Four tools follow a clear verb_noun pattern (extract_tables, ocr_image, parse_invoice, render_pdf). However, pdf_to_markdown breaks the pattern by using a source_to_target format instead of a verb-first name, creating a minor inconsistency.

Tool Count5/5

Five tools is a well-scoped count for a document processing server. Each tool serves a distinct purpose without redundancy, covering input (PDF, image), processing (extraction, OCR, parsing), and output (markdown, PDF).

Completeness4/5

The toolkit covers a coherent document workflow: extract text/tables from PDFs, OCR images, parse invoices, convert to markdown, and generate PDFs. A minor gap is the lack of direct scanned-PDF handling (requires manual page-to-image conversion), but this is workable around.

Available Tools

5 tools
extract_tablesExtract Tables from PDFAInspect

Detect and reconstruct tables from a text-based PDF. Returns each table as structured rows plus ready-to-use markdown and CSV renderings. Works best on PDFs with clear columnar layout (invoices, reports, statements).

ParametersJSON Schema
NameRequiredDescriptionDefault
file_urlNoPublic http(s) URL of the file
file_base64NoBase64-encoded file contents (data-URI prefix allowed)
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses that the tool requires a text-based PDF, implies limitations with non-clear layouts, and explicitly states the output format (structured rows plus markdown and CSV). This is useful behavioral context, though it does not cover failure modes or exact row structure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the core action, followed by output details and best-use case. Every sentence provides value, with no redundant or vague phrasing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description lacks details on the exact structured row format (e.g., array of objects, column names) and behavior when no tables are found or when tables span multiple pages. Since there is no output schema, the description should compensate more fully, but it does cover the essential output types and limitation, making it minimally adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with both file_url and file_base64 having descriptions. The tool description itself adds no new parameter semantics, so the baseline of 3 is appropriate as the schema already documents the parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: detecting and reconstructing tables from a PDF, with a specific verb and resource. It differentiates from sibling tools like pdf_to_markdown by emphasizing structured rows and CSV output, and from ocr_image by explicitly targeting text-based PDFs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear usage context by specifying it works best on text-based PDFs with clear columnar layouts, and gives examples (invoices, reports, statements). It does not explicitly mention when not to use or name alternatives, but the context is strong enough for an agent to infer appropriate usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ocr_imageOCR Image to TextAInspect

Run optical character recognition on an image (png, jpg, webp, bmp) and return the recognized text with a confidence score. Supports 100+ languages via the language parameter (ISO 639-2 codes like 'eng', 'deu', 'fra', 'spa').

ParametersJSON Schema
NameRequiredDescriptionDefault
file_urlNoPublic http(s) URL of the file
languageNoTesseract language code, default 'eng'
file_base64NoBase64-encoded file contents (data-URI prefix allowed)
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses the output (text and confidence score), supported image formats, and language support, which are useful behavioral details. However, it does not mention constraints like file size, authentication, error behavior, or that exactly one of file_url/file_base64 must be provided.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the core action and output, and includes necessary details (formats, languages) without redundancy. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple OCR tool with no output schema and decent annotations in the schema itself, the description covers key aspects: input formats, language options, and return value. It could be complete if it mentioned the input source constraint (file_url vs file_base64) that is inferred from the schema, but that is a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so parameters are already described. The description adds value by giving explicit examples for the language parameter (ISO 639-2 codes like 'eng', 'deu'), but does not add additional meaning for file_url or file_base64 beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool 'Run optical character recognition on an image' with supported formats and returns 'recognized text with a confidence score.' This distinguishes it from siblings like extract_tables, parse_invoice, pdf_to_markdown, and render_pdf, which target different document processing tasks.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use for image OCR but does not explicitly mention when to use this tool over alternatives or provide exclusions. It lacks guidance such as 'for PDFs, use pdf_to_markdown' or any comparison to siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

parse_invoiceParse Invoice/ReceiptAInspect

Extract structured data from an invoice or receipt: vendor, invoice number, dates, currency, subtotal, tax, total, and line items. Accepts a text-based PDF, or an image when is_image is true (OCR is applied first). Returns JSON.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_urlNoPublic http(s) URL of the file
is_imageNoSet true when the file is a photo/scan image rather than a PDF
file_base64NoBase64-encoded file contents (data-URI prefix allowed)
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden of disclosing behavior. It explains that images undergo OCR first, that PDFs must be text-based, and that the result is JSON. It does not cover failure modes, limits, or authentication, but the disclosed traits are meaningful and go beyond what the schema states.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the purpose and output fields, then addressing input handling and return format. Every clause contributes useful information with no filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has no output schema, so the description carries the burden of explaining return values; it does so by listing the extracted fields and stating 'Returns JSON.' It also covers the two input modes (PDF vs. image). It lacks details on error handling or file size limits, but for its apparent simplicity it is reasonably complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema descriptions cover all three parameters, giving a baseline of 3. The description adds extra meaning by explaining the interaction between file type and the is_image flag, and by stating that a comma-separated list of extraction fields will be emitted. This enriches the parameter semantics without contradicting the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and target ('Extract structured data from an invoice or receipt') and enumerates the output fields, making the tool's purpose immediately clear. It differentiates itself from sibling tools by focusing on invoice/receipt-specific structured extraction rather than generic table extraction or OCR.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context on when to use the tool: for invoices/receipts, and it clarifies the input mode ('text-based PDF' vs. 'image when is_image is true'). It does not explicitly name alternative sibling tools or state when *not* to use it, so it falls short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pdf_to_markdownPDF to MarkdownAInspect

Extract the text of a PDF and convert it to clean markdown. Detects headings by font size and preserves lists and paragraphs. Input: a text-based PDF via file_url or file_base64. For scanned PDFs use ocr_image on page images instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_urlNoPublic http(s) URL of the file
file_base64NoBase64-encoded file contents (data-URI prefix allowed)
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden. It discloses key behaviors: text extraction, markdown conversion, heading detection, and list/paragraph preservation. However, it doesn't mention return format, error handling, or limitations on PDF size/complexity, leaving some gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with purpose, then input constraints, then alternative. Zero wasted words, every clause adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter tool with no output schema and no annotations, the description covers the main purpose, input format, behavioral features, and an important exception. It lacks explicit return value details, but given the tool's simplicity, it is fairly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with good descriptions for both file_url and file_base64. The description adds the context that the PDF must be text-based, but this applies to the overall input rather than individual parameters. It doesn't add further semantic detail beyond the schema, so a baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Extract the text of a PDF and convert it to clean markdown'), specifies the resource (PDF), and differentiates from siblings by mentioning heading detection and list/paragraph preservation. It also explicitly directs scanned PDFs to ocr_image, setting it apart from that sibling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives explicit input constraints ('text-based PDF') and an explicit alternative for scanned PDFs ('use ocr_image on page images instead'). This provides clear when-to-use and when-not-to-use guidance, including a named alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

render_pdfRender Markdown/HTML to PDFAInspect

Render markdown (or simple HTML) into a clean, printable A4 PDF. Supports headings, paragraphs, bullet and numbered lists, blockquotes, code blocks, horizontal rules, and inline bold/italic/code. Returns the PDF as base64 plus page count.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleNoPDF document title metadata
formatNoInput format, default markdown
contentYesThe markdown or HTML source to render
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 output format (base64 PDF plus page count), the A4 page size, and the supported subset of markdown/HTML features. It does not detail limitations like CSS support or error behavior, but the provided information gives a solid behavioral profile for a non-destructive render 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/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, each purposeful: main purpose, supported features, and return format. It is front-loaded with the core action and avoids redundancy or unnecessary text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple with no output schema, but the description covers the return format (base64 + page count) and supported input features. It does not explain all edge cases or styling limitations, but for a straightforward render tool, the description is sufficiently complete for an agent to select and invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for all three parameters, so baseline is 3. The description adds some value by elaborating on supported content elements (headings, lists, code blocks), which enriches the 'content' parameter meaning, but it does not add detail on 'title' or 'format' beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool renders markdown or simple HTML into an A4 PDF, using a specific verb ('render') and resource ('markdown/HTML to PDF'). It also lists supported formatting elements, distinguishing it from sibling tools that extract tables, OCR images, parse invoices, or convert PDFs to markdown.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for converting markdown/HTML to PDF but does not explicitly mention when to use this tool over siblings or provide exclusions. The context suggests it is for PDF generation, while siblings handle PDF extraction or parsing, but this is not stated in the description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Converts PDF, Word, Excel, and PowerPoint documents to Markdown using a pay-per-conversion model with USDC on Base via the x402 protocol.
    2
    MIT
  • A
    license
    -
    quality
    C
    maintenance
    MCP server for StructDoc that converts documents (PDFs, images) into structured data like Markdown, OCR text, and invoice/receipt fields for AI agents, with pay-per-call via x402 (USDC on Base/Solana).
    11
    MIT

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.

Resources