Skip to main content
Glama

Pre-flight check of a programmable token transfer

check_programmable_transfer
Read-onlyIdempotent

Would a transfer of a programmable token (CIP-113) from A to B be allowed, and if not, why? Answers only from state we index (the sender's balance under the standard's contract, a pause or shutdown, the block list of either side) and lists what it can NOT know: identity checks signed off chain, the issuer's own transfer script, a rule change before the transaction is built. The best verdict is nothing_visible_forbids, never "allowed". A token whose rules are scripts we cannot read answers rules_unreadable. Nothing is built or signed.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "unit": "<unit>"
    },
    "name": "check_programmable_transfer"
  }
}

Input Schema

NameRequiredDescriptionDefault
toNoReceiver: addr1… address (ordinary or smart-wallet), stake1… address or a 56-hex owner credential.
fromNoSender: addr1… address (ordinary or smart-wallet), stake1… address or a 56-hex owner credential.
unitYesToken unit: policy id + asset name in hex.
amountNoAmount to send, decimal-adjusted, as plain digits (for example "10" or "2.5").

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.3/5.0
Behavior5/5

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

Annotations already cover read-only/idempotent/non-destructive safety, and the description adds substantially more: the exact data sources consulted (sender balance under the contract, pause/shutdown, block lists of either side), an explicit list of blind spots (off-chain identity checks, issuer transfer script, rule changes before build), and the verdict vocabulary (nothing_visible_forbids, rules_unreadable). It also pre-empts a misuse risk by refusing to call a positive result 'allowed'.

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 question the tool answers, followed by scope, limitations and result vocabulary in three dense sentences with no filler. The middle sentence is long and packs caveats together, which slightly hurts scannability, but every sentence carries non-redundant information.

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 carries responsibility for describing returns, and it does partially: it names the strongest verdict and the rules_unreadable case, and clarifies nothing is built or signed. It does not describe the full response shape (reason fields, per-check breakdown), leaving a modest gap for a tool whose main output is a structured verdict.

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% — address formats, the unit pattern and the decimal-adjusted amount example are all documented in the schema itself. The description only loosely maps to the parameters ('from A to B', 'the sender's balance'), adding no format or constraint detail beyond what the schema already states, 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?

States a specific verb (check / pre-flight) and a specific resource (a CIP-113 programmable token transfer), framed as a hypothetical 'would this be allowed' question. The framing clearly separates it from the build_* siblings (swap/delegation transaction construction) and from state-reading siblings like get_programmable_balances, since it produces a verdict rather than data or a transaction.

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?

The opening question establishes the use case (pre-flight before building a transfer) and 'Nothing is built or signed' implicitly routes the agent away from build_swap_transaction when it only wants a feasibility answer. It does not explicitly name an alternative tool or state when-not to use it, so it stops 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.

Resources