Skip to main content
Glama
Moe03

Convocore MCP Server

by Moe03

read_pdf

Read-onlyIdempotent

Extract text from PDFs by path, URL, or base64, with optional page ranges to target only needed pages. Outputs per-page sections and truncates long results to fit token limits.

Instructions

Extract text from a PDF (path / url / base64). Page-aware: pass pages as a string range like "1-3,5,7-9" or an explicit array to read only the pages you need. Output is split per page with --- page N --- headers. Auto-truncates if the result would exceed the per-call token budget. Always inspect_file first to learn totalPages.

Input Schema

NameRequiredDescriptionDefault
urlNo
dataNo
pathNo
pagesNoOptional page selection. Defaults to all pages.
mimeTypeNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv2.6.17

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare this a safe, idempotent, non-destructive read; the description adds real behavioral detail beyond that: per-page output delimited by `--- page N ---` headers and automatic truncation against a per-call token budget. It omits error/scanned-PDF behavior, but the operational contract is substantially disclosed.

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 core action, then the page-selection syntax, then output/limits. No restated schema or filler, and the inspect_file prerequisite is placed last where it reads as a workflow cue.

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

Completeness4/5

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

Covers input sources, page selection, output format, truncation, and the inspect_file prerequisite, which is enough to call the tool correctly despite five parameters and no output schema. Missing guidance on mimeType, encoding of `data`, and failure modes such as image-only PDFs.

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?

With schema coverage at only 20%, the description compensates well by explaining the mutually exclusive input sources (path / url / base64) and detailing the `pages` range syntax with an example alongside the array alternative. `mimeType` and the base64 encoding of `data` are left unaddressed, keeping it short of full coverage.

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 ('Extract text from a PDF') and immediately enumerates the supported input forms (path / url / base64), which distinguishes it from siblings like read_docx, read_text_file, and read_spreadsheet. An agent can identify exactly what it does 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?

Gives a clear prerequisite ('Always inspect_file first to learn totalPages') and tells the agent how to scope the read via `pages` for selective extraction. It does not explicitly contrast with sibling readers such as read_docx/read_text_file, but the context for when to use this tool is clear.

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

Deploy Server

Other Tools