Skip to main content
Glama

Record the payment

purch_record_bill_payment

Record that a bill was paid, after the fact: the day it went, how, and the statement row that shows it when there is one. Only after the person paid it, and only with the day it actually went. An agent records payments for approved bills only; a person recording one approves it in the same act. Link the statement row (transaction_id) when the payment is on an imported statement: the amount and currency must match and it must be money out. An unreviewed row is reviewed as the bill says (purchase, its category and vendor), because the bill is the person's word for what it was. Effects: bill marked paid; statement row linked and reviewed when given.

Input Schema

NameRequiredDescriptionDefault
methodNoHow it was paid.
bill_idYesThe bill, e.g. B-0001.
paid_atYesThe day it was paid. ISO date, YYYY-MM-DD.
referenceNoThe bank's or the vendor's reference, if any.
transaction_idNoThe statement row that shows the payment, e.g. T-0042.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.2/5.0
Behavior5/5

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

Annotations only declare the generic mutation profile (not readOnly, not destructive, not idempotent). The description adds real behavioral substance beyond that: the downstream effects ("bill marked paid; statement row linked and reviewed when given"), the permission model for agents vs. people, the validation invariants on transaction_id, and the fact that an unreviewed row is re-categorized from the bill's category and vendor.

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?

Every sentence carries information and the ordering is sensible: what it does, the precondition, the linking rule, then the effects. The opening clause is slightly tangled ("the day it went, how, and the statement row that shows it when there is one") and the after-the-fact idea is stated twice, but there is no filler.

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?

For a non-idempotent write tool with no output schema, the description covers the critical unknowns: preconditions, validation rules, and post-call state changes. It stops short of saying what is returned (payment id? updated bill?) or what happens on a failed match, which an agent may still need.

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?

Schema coverage is 100%, so the schema already defines all five fields; baseline would be 3. The description earns the extra point by adding a constraint the schema does not express — that transaction_id must match the amount and currency and must be money out — and by framing paid_at as the actual settlement date rather than an arbitrary timestamp.

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 and resource ("Record that a bill was paid") plus the facts captured (date, method, statement row), which is clearly distinct from invoice-payment siblings like o2c_record_payment or solo_record_payment. It never names a sibling or scopes itself against one, so an agent must infer the boundary from the word "bill" alone.

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 explicit preconditions: only after the payment happened, only with the actual settlement date, agents only for approved bills. It also states the conditional rule for linking a statement row (only when the payment appears on an imported statement, amount/currency must match, must be money out). No alternative tool is named for the related cases (e.g. reimbursements, non-bill payments), which keeps it short of a 5.

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.