Skip to main content
Glama

OCR: make a scan searchable

ocr_pdf

Add a text layer to scanned pages, so the text can be searched, copied and read by AI. Takes a scanned PDF or an image (a photo or scan as PNG, JPEG, TIFF, GIF, WebP or HEIC), which comes back as a searchable PDF. Reads 90 languages and finds the language itself; pass language only when the person names one.

Input Schema

NameRequiredDescriptionDefault
fileNoA file the person attached in ChatGPT (filled in by ChatGPT).
file_idNoA FynePDF file_id from upload_file, import_file_from_url or an earlier tool.
file_urlNoA public link to the file.
languageNoA BCP 47 code such as "en", "ne", "hi", "ar", "zh-Hans" or "ja". Left out ("auto"), the language is found from the file.
library_file_idNoA file from the person's FynePDF Library (from list_library_files).

Output Schema

NameRequiredDescriptionDefault
cardNo
filesYes
stepsYes
job_idYes
statusYes
creditsYes
messageYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / language
      Added value: +{
      +  "description": "A BCP 47 code such as \"en\", \"ne\", \"hi\", \"ar\", \"zh-Hans\" or \"ja\". Left out (\"auto\"), the language is found from the file.",
      +  "type": "string"
      +}
  2. First observed

TDQS

A4.5/5.0
Behavior4/5

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

Annotations declare non-read-only, non-destructive, non-idempotent, closed-world, which the description is consistent with: it produces a searchable PDF rather than describing an in-place mutation. It adds genuinely useful behavior beyond annotations: automatic language detection across 90 languages, and the fact that output is a PDF even for image inputs. It stops short of saying whether a new file is created and where it lands, or of noting size/page limits.

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?

Three tight sentences, front-loaded with the effect, then accepted inputs and output form, then the one conditional parameter rule. No filler and nothing repeated from the schema verbatim.

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?

Output schema exists, so return values need not be explained, and the description covers effect, accepted formats, output format, and language-detection behavior. Combined with full schema coverage and annotations, an agent has what it needs to call this correctly.

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 baseline is 3. The description goes beyond the schema by encoding a usage rule for language (only supply it when the user names one) and by clarifying the accepted input media, which maps to the file/file_url/library_file_id alternatives.

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 effect ("add a text layer to scanned pages") plus the concrete outcome ("comes back as a searchable PDF"), and enumerates accepted input formats. An agent can tell this apart from sibling conversion or extraction tools without opening the 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?

The trigger condition is clear: use on scanned pages or images that need searchable text. It also gives an explicit rule for the language parameter ("pass language only when the person names one"). It does not, however, name alternatives such as extract_data or convert_to_pdf, so the agent must infer the boundary itself.

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.