Skip to main content
Glama

extract

Reads a single PDF or photo invoice/receipt to return parsed fields, booking proposal, and a ready expense row; withholds text from unrelated documents unless read_anyway is true.

Instructions

Read one invoice or receipt (PDF or photo). Returns the document fields, which layer read them (qr / parser: / text), a booking proposal (VAT code, region, ECB rate, payment account, business share, document label, file name) and a ready expense row. If a PDF does not read like an invoice or receipt, its text is withheld unless read_anyway=true, so unrelated documents are not exposed.

Input Schema

NameRequiredDescriptionDefault
pathYes
read_anywayNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.7.0

TDQS

A3.7/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and discloses useful behavioral details: extraction layers, return contents, and the safety behavior of withholding text for non-invoice PDFs unless read_anyway=true. It still does not explicitly confirm read-only behavior or describe error handling.

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?

The description is front-loaded with purpose, then returns, then conditional behavior. Each sentence earns its place despite the dense return-value list.

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

Completeness3/5

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

For a complex extraction tool with no annotations, no output schema, and 0% schema coverage, the description does well on purpose and return behavior. It remains incomplete regarding path semantics, read-only guarantees, and error conditions.

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 0%, and the description explains the read_anyway parameter well in context. The required path parameter is only indirectly described as pointing to one invoice or receipt, without format or path details.

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: read one invoice or receipt (PDF or photo). It also specifies what is returned, but it does not explicitly differentiate this tool from siblings such as read_efatura or scan_inbox.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The use case is implied by 'Read one invoice or receipt' and the read_anyway condition is explained. However, there is no explicit guidance on when to choose this tool over sibling tools like read_efatura or scan_inbox.

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