Skip to main content
Glama

Extract data from a document

mindee_extract_document

Submit a document (PDF or image) to a Mindee extraction model and return the structured fields. Provide EITHER document_url (a public URL) OR file_base64 (+ filename). This enqueues an inference and polls until it completes (up to ~30s); if it is still processing it returns a job_id you can poll with mindee_get_job then read with mindee_get_inference. NOTE: consumes Mindee API credits (paid, billed per page). V2 API: POST /v2/inferences/enqueue.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
ragNoEnable Retrieval-Augmented Generation for the model, if configured.
aliasNoYour own reference tag echoed back in the job/result.
polygonNoReturn bounding-box polygons for fields.
filenameNoFilename for file_base64 uploads, e.g. 'invoice.pdf'.
model_idYesExtraction model id (from mindee_list_models).
raw_textNoAlso return the full OCR raw text of the document.
confidenceNoReturn per-field confidence levels (Certain/High/Medium/Low).
file_base64NoBase64-encoded document bytes. Use this OR document_url; set `filename` too.
webhook_idsNoWebhook ids to notify on completion (async flows).
document_urlNoPublic URL of the document to process. Use this OR file_base64.

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. First observed

TDQS

A4.9/5.0
Behavior5/5

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

The annotations only cover readOnly/destructive/idempotent hints, so the description adds crucial behavior: the tool enqueues an inference, polls up to ~30s, and returns a job_id if still running. It also discloses that it consumes Mindee API credits billed per page, which is not available in annotations. No contradiction with the annotations; readOnlyHint=false aligns with the enqueue/submit action.

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 compact: one sentence for the core action, one for input alternatives, one for async behavior, and one for cost/API details. Every sentence adds distinct information without redundancy.

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

Completeness5/5

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

For a tool with 10 parameters and no output schema, the description covers the submission flow, input modes, polling behavior, fallback job_id, cost implications, and API endpoint. It also names the sibling tools for polling and reading results, giving the agent a complete mental model of how to handle the response.

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 coverage is 100%, but the description adds the critical constraint that document_url and file_base64 are mutually exclusive ('Provide EITHER document_url (a public URL) OR file_base64 (+ filename)'). It also clarifies that filename is for file_base64 uploads, complementing the schema's individual parameter descriptions.

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 'Submit a document (PDF or image) to a Mindee extraction model and return the structured fields,' clearly stating the verb and resource. It distinguishes itself from siblings by describing the enqueue/poll flow and referencing mindee_get_job and mindee_get_inference for follow-up, making its unique role among the listed tools unmistakable.

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 tells the agent to provide either document_url or file_base64, and explains that if processing isn't complete it returns a job_id to poll with mindee_get_job then read with mindee_get_inference. This gives explicit when-to-use guidance and names the alternative tools for subsequent steps. It also notes the paid API credits, which is a practical consideration for deciding to invoke.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A4.5/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: extracting documents, fetching inference results, checking job status, and listing available models. There is no overlap or ambiguity between them.

Naming Consistency5/5

All tool names follow a consistent pattern: the 'mindee_' prefix followed by verb_noun (extract_document, get_inference, get_job, list_models). This makes the set predictable and easy to navigate.

Tool Count5/5

With only 4 tools, the server is tightly scoped to the essential Mindee operations: submit, poll, retrieve, and explore models. Each tool earns its place, and the count is ideal for this purpose.

Completeness5/5

The tool set covers the full document extraction lifecycle: listing models, enqueuing extraction (with built-in polling), checking job status for long-running requests, and fetching the final inference result. No critical operation is missing.