Skip to main content
Glama

Field Service Business Platform by Doing Work

invoices_get

One invoice with its lines, what has been paid, the balance, the due date, and whether a bank payment is still clearing. display_status is payment_pending while a bank payment clears (3 to 5 business days), otherwise the invoice status. last_bank_payment_failed_at is set when the latest bank payment failed and the customer can pay again.

Input Schema

NameRequiredDescriptionDefault
invoice_idYes

Output Schema

NameRequiredDescriptionDefault
taxNo
memoYes
linesYes
due_onYes
job_idYes
statusYes
currencyYes
issued_atYes
invoice_idYes
total_minorYesAmount in minor units of the currency (cents).
balance_minorYesAmount in minor units of the currency (cents).
deposit_minorYesAmount in minor units of the currency (cents), or null.
display_statusYes
collected_minorYesAmount in minor units of the currency (cents).
written_off_minorYesAmount in minor units of the currency (cents).
bank_payment_clearingYes
last_bank_payment_failed_atYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

B3.2/5.0
Behavior3/5

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

With no annotations, the description carries the burden, and it does add real behavioral context: display_status is a transient overlay while a bank payment clears (3–5 business days), and last_bank_payment_failed_at signals recoverable failure. However, it says nothing about access scoping, what happens if the invoice_id is unknown, or whether the read is always safe/idempotent.

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?

Three tight sentences, front-loaded with what the tool returns, then the two non-obvious status fields. Every sentence is doing work, though much of the field enumeration overlaps with the existing output schema.

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?

An output schema exists, so the description need not enumerate fields, yet it usefully explains the two fields whose meaning is not obvious from their names. For a one-parameter read tool this is close to sufficient; only the missing behavioral edges (not-found, access scope) keep it from a 5.

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%, so the single invoice_id parameter is documented only by its name and the UUID format in the schema. The description implies 'one invoice' lookup by identifier but adds no scope or format guidance beyond that; the parameter is self-evident enough that this is adequate rather than a gap.

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 opening phrase 'One invoice with its lines, what has been paid, the balance...' makes clear this is single-invoice retrieval and enumerates what comes back, which distinguishes it from list-style siblings like invoices_aging. It is slightly response-shaped rather than action-shaped (no explicit verb like 'Retrieve'), and it never names a sibling, so it falls short of a 5.

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

Usage Guidelines2/5

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

There is no statement of when to use this tool versus alternatives — nothing pointing at invoices_aging for aggregates or at invoices_send/markPaidOutside for actions. The field semantics (display_status, last_bank_payment_failed_at) aid interpretation after the call, not tool selection, so a caller gets no routing guidance.

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