Skip to main content
Glama

Queue a document for conversion with OCR and tables

submit_conversion_job

Queue a document up to 25 MB and 200 pages for conversion with OCR and tables.

Pass the file as base64 in content_base64, or as a download link in file, and its name in filename (.pdf, .docx, .pptx, .xlsx, .html, .htm or .txt). Returns job_id, status and result_url. Call get_conversion_job with the job_id until status is succeeded or failed. A conversion may take up to about 2 minutes.

Optional webhook_url: a public http or https URL that receives a POST with the job's final state. The request carries X-Appkit-Signature: sha256=<hex>, an HMAC-SHA256 of the raw body keyed with the returned webhook_secret (shown only once). 3 delivery attempts.

Requires an API key. The credits are refunded if the job fails. The uploaded file is deleted when the job finishes. Results are kept for 7 days after submission.

Credits: 10 per call.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
fileNoThe file as a download link, instead of `content_base64`. In ChatGPT, pass the user's uploaded file here. Other clients can set `download_url` to a public https URL.
filenameYesThe file name with its extension (.pdf, .docx, .pptx, .xlsx, .html, .htm or .txt). The extension decides how the file is read.
webhook_urlNoOptional. A public http or https URL that receives the job's final state.
content_base64NoThe file content, base64-encoded. Up to 25 MB before encoding.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.3/5.0
Behavior5/5

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

Annotations only declare the mutation/open-world profile; the description adds substantial behavior beyond that: 25 MB / 200 page caps, API-key requirement, credit cost and refund-on-failure, file deletion on completion, 7-day result retention, and webhook signature/retry semantics including the one-time webhook_secret exposure. This is exactly the operational context an agent needs before invoking.

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

Conciseness4/5

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

Front-loaded with the hard limits, then the input alternatives and async workflow, then webhook and lifecycle details. Dense and largely waste-free, though the returned fields (job_id, status, result_url) restate an output schema that already exists, and the extension list appears twice.

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 4-parameter mutation with nested file object and an output schema, the description covers limits, auth, cost, async polling, webhook contract, data lifecycle and failure handling. Nothing an agent needs to call it correctly is missing.

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%, so the schema already documents file, filename, webhook_url and content_base64. The description nonetheless reinforces the critical semantics: the extension determines how the file is read, base64 size is measured before encoding, and webhook_url must be public. Marginal but genuine added value.

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

Purpose4/5

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

The description states a specific verb and resource ('Queue a document ... for conversion with OCR and tables') and immediately names the polling companion get_conversion_job. It never distinguishes itself from the sibling convert_document, so an agent choosing between the two queued-vs-sync likely paths gets no help from the text.

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?

Clear operational context: call get_conversion_job with the returned job_id until status is succeeded or failed, and it states the ~2 minute expected duration. It also clarifies the two mutually exclusive input paths (content_base64 vs. file). No explicit when-not-to-use guidance and no differentiation from convert_document.

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.