Skip to main content
Glama
luca-network

SPR (Sealed Payment Record)

Official

record_intent

Declare what you are buying and why before any payment, sealing the intent in your company's book for audit and limit checks.

Instructions

Call this first, whenever you are about to pay for anything (an x402 request, an API, data, compute, a card or Stripe payment): declare what you are buying and why, before paying. Sealed in your company's book. Amounts are integers in the currency's minor unit (cents; 6 decimals for USDC).

Input Schema

NameRequiredDescriptionDefault
railNo
productNoOptional: what is being bought, such as an API plan, a dataset or a SKU
purposeYesWhy you are paying, in one sentence. This is what an auditor reads.
currencyNo
expires_inNoISO 8601 duration (PT1H, P3D)
counterpartyNo
max_amount_minorNoThe most you may pay
expected_amount_minorNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already cover the write/idempotency profile (readOnlyHint=false, idempotentHint=false, destructiveHint=false), so the description's job is to add context — and it does: the record is 'sealed in your company's book' (audit-trail, effectively immutable) and must precede payment (ordering constraint). It does not disclose whether a recorded intent can be amended or cancelled, or how expiry interacts with later settlement, which keeps it below a 5.

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?

Three tight clauses with the most important directive ('call this first') front-loaded, followed by the trigger list, the audit consequence, and the unit convention. No restatement of the tool name and no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 8-parameter, non-idempotent write tool with no output schema, the description omits what an agent receives back (an intent identifier?) and how that value links to record_settlement, check_payment, or cancel_intent. The ordering and unit guidance are solid, but the post-call workflow and half the parameters are left to inference.

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 coverage is 50% across 8 parameters, so the description must compensate and it partially does: 'Amounts are integers in the currency's minor unit (cents; 6 decimals for USDC)' disambiguates the highest-risk fields (max_amount_minor, expected_amount_minor) that the schema leaves unitless. The remaining parameters — rail, currency, counterparty, expires_in — get no treatment in the description, leaving half the surface to the bare schema.

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 description gives a specific verb and resource ('declare what you are buying and why', 'record intent') and adds a lifecycle position ('call this first ... before paying') that separates it from siblings like record_settlement or check_payment. It stops short of naming any sibling explicitly, so the differentiation is inferential rather than stated.

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?

Usage timing is unambiguous and concretely enumerated: 'whenever you are about to pay for anything (an x402 request, an API, data, compute, a card or Stripe payment)' with the ordering constraint 'call this first ... before paying'. No exclusion conditions or named alternatives (e.g. when to use cancel_intent or check_payment instead) are given, so it falls 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.