Skip to main content
Glama

Record payment

o2c_record_payment

Record cash received from a customer. Recording the receipt and deciding what it settles are two acts, and this is only the first. A payment that arrives without a remittance advice sits as unapplied cash — which is the correct state, and visible in o2c_unapplied_cash. Never guess which invoice a payment is for to make the aging look tidy. Effects: payment recorded as unapplied cash.

Input Schema

NameRequiredDescriptionDefault
amountYesAmount received. In cents (integer minor units) — 1250 means $12.50.
methodNoHow it arrived.
referenceNoCheck number, wire reference, remittance id — exactly as printed.
customer_idYesWho paid. An existing customer id.
received_atNoValue date. Defaults to today. ISO date, YYYY-MM-DD.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare non-readonly, non-destructive, non-idempotent; the description adds genuinely new context by naming the resulting state ("payment recorded as unapplied cash") and warning against premature allocation. The one notable omission is that idempotentHint=false means re-posting the same payment creates a duplicate record — a real risk for a cash-receipt tool that the description does not surface.

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?

The core action is front-loaded in the first sentence and the effects line is a compact, useful closer. The middle paragraph is slightly discursive but each sentence carries a distinct instruction rather than padding.

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?

With no output schema, the description compensates by stating the post-condition of the call (unapplied cash) and where that state is observable. It does not say what identifier or payload the call returns, which would help an agent chain into allocation, but the essential calling contract is covered.

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 100% and the schema already explains the cents convention, the ISO date default, and the enum for method. The description adds no parameter-level detail beyond the schema, so the baseline 3 applies.

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?

"Record cash received from a customer" is a specific verb+resource, and the description immediately draws the boundary against the sibling concern: "Recording the receipt and deciding what it settles are two acts, and this is only the first." An agent can distinguish this from o2c_apply_payment and o2c_unapplied_cash without opening any 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?

It states the correct condition (a payment arriving without remittance advice) and gives an explicit prohibition — "Never guess which invoice a payment is for to make the aging look tidy" — with a pointer to o2c_unapplied_cash for the resulting state. It stops short of naming the follow-up allocation tool (o2c_apply_payment) explicitly, leaving the agent to infer which tool performs the second act.

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.