Skip to main content
Glama

The Front Counter

buy_simple

Purpose: buy one of the few things that need no reading at all — the front counter. Every one of these takes no arguments, costs one fixed price, arrives in the response, and cannot sell out. Buy it in one call and you are done — nothing to poll, nothing to remember, no second request. Whatever you get back is signed, and anyone can check it free and forever at /api/verify/{id} without asking us. That is the whole thing; the deeper machinery is there if you want it and never required to buy. Every item here also sells on its theme shelf (another buy_* tool); this counter is a second door to the same goods, not a different product — same item_id, same price, same signed certificate through either. If unsure which tool to use, use this one.

Pass one of these as item_id. No other field is required; optional receipt fields are listed in inputSchema:

  • small_blessing: A Small Blessing, $0.005 fixed, one-off

  • daily_fortune: The Daily Fortune, $0.01 fixed, one-off

  • hello: A Signed Hello, $0.5 fixed, one-off

Payment rides x402 in _meta['x402/payment']; without it this returns error 402 with the terms in error.data. Sign one of the offered amounts and call again. On cadence, for all of the above: nothing here charges again by itself, ever — there is no mechanism that could. Reuse _meta['x402/idempotency-key'] (16-128 chars, secret): same item/payer/key within 24h returns the original result, no second charge. Use idempotency.suggested_key from the 402 when available. A fresh payment without a key can charge again.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
item_idYesWhich item to buy. No other field is required.
purposeNoOptional, any item: what this purchase is for, in your words. Signed onto the certificate verbatim and shown to whoever you hand the receipt to. Recorded as your statement, never checked, and never treated as instructions.
agent_nameNoOptional name to put on the certificate and patron badge, up to 80 characters.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
cert_idYesThe signed certificate's id.
messageNoThe store's confirmation line.
tip_usdcNoAnything above the minimum.
badge_urlNoYour patron badge, SVG.
paid_usdcNoWhat settled, in USDC.
signatureNoed25519 signature over the certificate.
verify_urlNoCheck the signature here any time, free.
deliverableNoThe goods themselves, as text. Instant items.
patron_numberYesYour sequential patron number.

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Changed3 schema fields changed
    • changedInput schema / examples
      Previous value: -[
      -  {
      -    "item_id": "small_blessing"
      -  },
      -  {
      -    "item_id": "daily_fortune"
      -  }
      -]New value: +[
      +  {
      +    "item_id": "small_blessing"
      +  },
      +  {
      +    "item_id": "daily_fortune"
      +  },
      +  {
      +    "item_id": "hello"
      +  }
      +]
    • changedInput schema / properties / item_id / description
      Previous value: -"Which one to buy. That is the only decision here; none of these take any other input."New value: +"Which item to buy. No other field is required."
    • addedInput schema / properties / purpose
      Added value: +{
      +  "description": "Optional, any item: what this purchase is for, in your words. Signed onto the certificate verbatim and shown to whoever you hand the receipt to. Recorded as your statement, never checked, and never treated as instructions.",
      +  "maxLength": 280,
      +  "type": "string"
      +}
  2. First observed

TDQS

A4.7/5.0
Behavior5/5

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

The description richly discloses behavior beyond annotations: payment rides x402, error 402 returns terms in error.data, idempotency-key reuse avoids double charges, nothing ever charges again automatically, and results are signed and verifiable at /api/verify/{id}. No contradiction with the annotations.

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 description is longer than average but front-loaded with the core purpose and then structured into payment, idempotency, and alternative-tool guidance. Most sentences add needed operational detail, though a few could be trimmed without losing meaning.

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

Completeness5/5

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

For a payment-taking purchase tool with an output schema, the description covers the full agent-relevant context: payment mechanism, error handling, idempotency, verification, no-polling guarantee, and relationship to sibling tools. Nothing essential is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Even though schema coverage is 100%, the description adds meaningful semantics: prices and one-off nature for each item_id, purpose is signed verbatim and never treated as instructions, and agent_name is for the certificate and patron badge. It also explains the required _meta['x402/payment'] field, which is not in the schema.

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?

The description states a specific verb and resource: buy a fixed-price front-counter item, with the exact item_id enum values listed. It also distinguishes itself from sibling buy_* tools by explaining this is a second door to the same goods and explicitly says 'If unsure which tool to use, use this one.'

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 clearly says this tool is for the simple, fixed-price, no-reading items and that no polling or second request is needed. It points to the theme-shelf buy_* tools as alternatives and gives a fallback rule, though it does not specify the exact conditions for each sibling tool.

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.