Skip to main content
Glama

Record a payment against an invoice

splose_record_payment
Destructive

WRITE, MONEY: records ONE payment received (cash, card, transfer) against ONE invoice; it moves the invoice towards Paid and is shown in the patient's account. It does NOT charge anyone's card. amount must not exceed what is owed (check splose_get_invoice). Not idempotent: calling twice records two payments, and this server cannot delete a payment, so confirm the details with the user first and pass confirm: true. Ids come from splose_get_invoice and splose_list_payment_methods. POST /payments.

Input Schema

NameRequiredDescriptionDefault
amountYesAmount paid, in dollars.
confirmYesMust be true: the user has confirmed the invoice, amount and payment method.
invoiceIdYesInvoice id the payment settles.
patientIdYesPatient id of the invoice.
locationIdYesLocation id.
paymentDateYesDate the money was received.
paymentMethodIdYesPayment method id (splose_list_payment_methods).

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.7/5.0
Behavior5/5

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

Only destructiveHint=true is supplied, so the description carries real weight and it does: it discloses non-idempotency ('calling twice records two payments'), irreversibility ('this server cannot delete a payment'), the amount ceiling relative to the balance owed, and the underlying POST /payments call. These are exactly the risky traits an agent must know before mutating financial data.

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?

Front-loaded with the WRITE/MONEY tag and the core action, then warnings in descending urgency; no sentence is filler. The heavy semicolon-and-parenthetical packing makes it slightly harder to scan than it could be, but nothing is wasted.

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 7-parameter financial mutation with no output schema, it covers risk (irreversible, non-idempotent), prerequisites (balance check, id sources), and the effect on the invoice and patient account. It does not say what is returned (e.g., a payment id) for later reference, which is a small remaining gap.

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 3 is the floor, and the description genuinely adds semantics beyond it: amount must not exceed what is owed, and ids must be sourced from splose_get_invoice / splose_list_payment_methods. It does not cover paymentDate format or the locationId/patientId relationship, so it falls short of a 5.

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?

Starts with an explicit verb+resource marker ('WRITE, MONEY: records ONE payment received... against ONE invoice') and bounds the scope with 'ONE'. It also carves out what it is not ('does NOT charge anyone's card'), so an agent can distinguish it from splose_get_invoice and splose_list_payments without reading the schema.

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

Usage Guidelines5/5

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

Gives concrete prerequisites and sequencing: check the outstanding balance via splose_get_invoice, source ids from splose_get_invoice and splose_list_payment_methods, confirm with the user, then pass confirm: true. It also states the negative case (no card charging) and the non-idempotency rule, which is exactly the when/what-not guidance an agent needs.

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.