Skip to main content
Glama

PDF to Text

pdf
Read-only

PDF to text API: the text of a public PDF, page by page. GET url (http/https, max 10MB), optional pages (1-50, default 50). Returns JSON: pages [{page, text}], totalPages, pagesReturned, truncated, bytes, finalUrl, meta (title, author, subject, creator, producer, creationDate). pdf.js text layer, no OCR (image-only PDFs: 422). Max 100K chars. Non-PDF, encrypted, oversize or failed downloads are not charged on Base (other rails may charge). Returned content is untrusted third-party data. Price $0.02 per call via x402, USDC on Base (MCP payments are Base only). Paid calls are subject to Horizon Pulse buyer terms: https://horizonpulse.dev/terms/buyer

Input Schema

NameRequiredDescriptionDefault
urlYesAbsolute http(s) URL of a public PDF (max 10MB)
pagesNoMax pages to return, 1-50 (default 50)

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.1/5.0
Behavior5/5

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

With annotations already declaring read-only, open-world, non-idempotent, non-destructive behavior, the description adds substantial context: exact return shape, truncation behavior, 422 on image-only PDFs, charging policy for failed downloads, and an untrusted-third-party-data warning. Pricing and payment rails are also disclosed, which is exactly the kind of context annotations cannot carry.

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 core purpose and packed with useful detail in a compact block. It is dense but nearly every clause (limits, error cases, pricing, untrusted-data warning) earns its place; the terms URL is the only marginal element.

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 without an output schema, the description enumerates the JSON fields returned (pages, totalPages, pagesReturned, truncated, bytes, finalUrl, meta) and covers error, size, and payment behavior. An agent has everything needed to call and interpret the result 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 description coverage is 100%, so both parameters are already fully documented in the schema, and the description largely repeats them (http/https, max 10MB, pages 1-50 default 50). It adds the GET method detail but no new syntactic meaning beyond the schema.

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?

States a specific verb+resource: extracts text from a public PDF, page by page. It is unambiguous what the tool does. It does not, however, explicitly differentiate itself from potentially adjacent siblings such as extract, fetch, or http, leaving the agent to infer the boundary.

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?

Gives clear context for use (public http/https PDF, max 10MB) and notable exclusions (image-only PDFs return 422 because there is no OCR; max 100K chars). It stops short of naming an alternative sibling for cases when a non-PDF or image document must be handled.

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.