Skip to main content
Glama

Stored documents (receipts & invoices)

list_documents
Read-only

Lists the organisation's captured documents (each row is one stored artifact — a PDF/image attachment or a rendered email body), newest first. status tells you where each is in the evidence pipeline: processing (being extracted), matched (attached to a transaction — matched_event_id says which), awaiting_transaction (no matching bank debit yet; re-checked nightly), match_ambiguous (a PROPOSAL awaiting a decision — proposal.candidate_ids are the possible transactions and proposal.reason says why it was not auto-attached: multi_candidate, fx_band, dkim_fail, or first_sender — the sender domain has no previously confirmed evidence in this org yet, so confirming once establishes continuity for future auto-attaches), extraction_failed, too_large, unsupported. Resolve proposals by calling attach_document with the right candidate. Results are the NEWEST limit rows (max 200); total_count may exceed files.length — narrow with the status filter to reach older rows. Documents NEVER create bookings — they are evidence attached to the bank record.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum rows to return, newest first (1–200, default 50).
org_idNoOptional. Defaults to the organisation the authenticated API key is bound to, so you normally omit it and never need to ask the user for their organisation UUID. If provided, it must match the key’s org or the request is rejected.0e91146d-511c-469f-bdee-5c867b26ae0d
statusNoFilter to one pipeline status, e.g. "match_ambiguous" for open proposals.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
filesYes
total_countYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Beyond the readOnlyHint annotation, the description adds meaningful behavior: documents never create bookings, results are limited to the newest rows, total_count may exceed files.length, and match_ambiguous items await a decision with proposal details. This gives the agent crucial expectations about side effects and pagination that annotations alone do not convey.

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 dense but every sentence and clause carries useful information, from the row definition to the status pipeline to the no-booking guarantee. It is front-loaded with a plain statement of what the tool does before diving into status semantics.

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 list-and-filter tool with an output schema, the description is complete enough to call correctly: it covers result ordering, limit cap, status filters, proposal resolution, and side-effect constraints. The agent knows how to navigate the result set and what follow-up action to take.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Although schema coverage is 100%, the description substantially expands parameter meaning. It explains each status enum value in pipeline terms, details proposal.reason values such as multi_candidate and dkim_fail, and clarifies the limit's 'newest first' behavior and capped maximum.

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 description opens with a specific verb and resource: 'Lists the organisation's captured documents', clarifying each row is a stored artifact and that results are newest first. It distinguishes the tool's role from bank-record tools by stating documents are evidence and 'NEVER create bookings'.

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 description gives clear operational guidance: use the status filter to reach older rows beyond the newest limit, and resolve match_ambiguous proposals by calling attach_document. It does not explicitly name sibling tools to avoid, but the workflow context is strong enough for an agent to know when this listing tool is appropriate.

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.

Resources