Skip to main content
Glama

OCRmyPDF by pagespool

Server Details

Hosted OCRmyPDF: add a searchable text layer to scanned PDFs and images, returned as PDF/A.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
ChatGPT
–
Claude
–

TDQS

A4.4/5.0

Scored across 2 tools

Disambiguation5/5

The two tools cover the two halves of an async job workflow: ocr_pdf submits work, get_ocr_result polls it. There is no overlap in purpose, and the descriptions explicitly cross-reference each other, so misselection is essentially impossible.

Naming Consistency4/5

get_ocr_result follows a clean verb_noun pattern, while ocr_pdf is domain-noun style with an implied verb (submit/send). This is a minor deviation rather than a confusing mix, and both names read clearly.

Tool Count4/5

Two tools is on the thin side, but the domain is a single asynchronous OCR operation, and a submit/poll pair is exactly what that requires. Nothing extraneous is present and no obvious third tool is needed for the core flow.

Completeness4/5

The submit-and-poll lifecycle is fully covered, including status states, error codes, download URL, and credit/expiry details. Gaps exist around canceling a queued job or listing/deleting prior results, but these are minor and workable around via job_id polling.

Available Tools

2 tools
get_ocr_resultCheck an OCR jobA
Read-only
Inspect

Check an OCR job you queued with ocr_pdf.

Returns job_id and status (queued, running, succeeded or failed). A succeeded job includes download_url, a link to the searchable PDF that works for 60 minutes without an API key: give it to the user. A failed job includes error (one sentence) and code. Results are deleted 7 days after submission. Requires an API key.

Credits: free. This tool is not metered.

NameRequiredDescriptionDefault
job_idYesThe `job_id` returned by `ocr_pdf`.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior5/5

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

Goes well beyond readOnlyHint/openWorldHint by enumerating the four status values, explaining that success yields a 60-minute keyless `download_url` to hand to the user, that failure yields `error` and `code`, that results expire after 7 days, and that an API key is required. It also discloses the tool is free and unmetered, which an agent needs before deciding to poll.

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?

Front-loads the action and the sibling link, then groups return-shape facts and operational facts in short sentences. The credits line is one sentence and earns its place by answering a decision the agent would otherwise have to guess at.

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?

Even though an output schema exists, the description supplies the lifecycle and auth details the schema cannot: retention window, link expiry, and credential requirement. Nothing needed to call or interpret this polling tool is missing.

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% and the `job_id` property already says it is the id returned by `ocr_pdf`. The description restates that origin but adds no format, validation, or lookup semantics beyond the schema, so baseline 3 applies.

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?

States a specific verb and resource ('Check an OCR job') and ties it to the sibling that created the job ('you queued with `ocr_pdf`'), so it is unmistakable against `ocr_pdf` itself.

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 context: use this after queueing with `ocr_pdf`, which is the only realistic alternative. No explicit when-not guidance, but with one sibling and one required param there is little ambiguity to resolve.

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

ocr_pdfOCR a scanned PDF or imageAInspect

Queue a scanned PDF, PNG or JPEG for OCR with OCRmyPDF and Tesseract.

The result is the same document with a searchable text layer, as PDF/A by default. Pass the file as base64 in content_base64 (up to 4 MB) or as a download link in file (up to 25 MB), and its name in filename. Up to 200 pages; an image is one page.

Returns job_id, status, pages and credits. Call get_ocr_result with the job_id until status is succeeded or failed; a job is stopped after 15 minutes.

Requires an API key. Costs 2 credits per page, charged now and refunded if the job fails. The result is kept for 7 days.

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.
modeNoPages that already have text: skip them (the default), redo an earlier OCR layer, or force OCR on every page as an image.skip
deskewNoStraighten crooked pages. Not with mode=redo.
filenameYesThe file name with its extension: .pdf, .png, .jpg or .jpeg.
languageNoThe document's language: eng, deu, spa or fra.eng
output_typeNopdfa (PDF/A-2b, the default) or pdf.pdfa
rotate_pagesNoTurn pages that are upside down or sideways.
content_base64NoThe file content, base64-encoded. Up to 4 MB before encoding.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior5/5

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

Annotations only declare a non-read-only, non-idempotent, non-destructive open-world call. The description adds the material behavior: API key required, 2 credits per page charged upfront and refunded on failure, a 15-minute job timeout, a 200-page cap, and 7-day result retention. Those are exactly the cost, durability and failure characteristics an agent must know before invoking a paid asynchronous job.

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?

Four short paragraphs, front-loaded with what the tool does, then inputs, then the follow-up call, then cost and limits. Nearly every sentence earns its place; the only minor waste is repeating the 4 MB base64 ceiling already stated in the schema.

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 paid async job tool with an output schema, the description covers what an agent needs: accepted formats, size and page ceilings, auth requirement, credit cost and refund policy, polling instructions, timeout, and retention. Return fields are enumerated but the output schema carries the detail, so nothing material is missing.

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 every parameter already carries its own description, including the 4 MB base64 limit and the enum meanings. The description mainly restates the two input paths and the filename requirement, adding only the 200-page/image-is-one-page bound, which is a document constraint rather than parameter meaning. 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 opening sentence names a specific verb (queue), the resource (scanned PDF, PNG or JPEG) and the underlying engines (OCRmyPDF, Tesseract), plus the concrete outcome (same document with a searchable text layer). It also names the sibling get_ocr_result and the condition that selects it, so an agent can distinguish the two without opening either schema.

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?

It lays out the full workflow: submit via content_base64 (<=4 MB) or file (<=25 MB), then poll get_ocr_result with the returned job_id until status is succeeded or failed. That is explicit routing to the sibling with the terminating condition. It stops short of a when-not clause, but the mode parameter's skip default implicitly handles already-text PDFs.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 2 tool updates
    • First observedget_ocr_result
    • First observedocr_pdf

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables OCR of scanned PDFs and images, returning searchable PDFs, Markdown, and JSON with block coordinates, with optional proofreading to correct OCR errors. Supports uploads via web console, public URL, or one-time token, and exposes tools for job status, page text, document listing, and deletion.
    -
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents to turn PDFs, scans, photos, Office files, and HTML into readable text through signed-URL uploads and batch jobs, using fast page-level OCR or accurate vision-reconciled transcription. Jobs run independently, support page-by-page reading and downloads, and can be deployed securely with Entra authentication.
    11 npm
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Enables MCP clients such as Claude Desktop, Claude Code and Cursor to OCR local scanned PDFs and images in 100+ languages, returning the extracted text or a searchable PDF. It also lets agents check document status, list recent documents and delete them.
    6
    48 PyPI
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources