Skip to main content
Glama

Stabledrop escrow payments

Payment Qr

payment_qr
Read-onlyIdempotent

A scannable code for a payment request, so nobody retypes an address.

Pass the payment_uri from prepare_escrow_payment. Returns a QR a phone wallet can scan, with the token, network, destination and amount already in it.

Or pass its share_with_payer.pay_link, for a code that opens the payment on the site instead — what to hand someone who is being asked to pay, as the site's own requests do.

⚠️ A SEPARATE TOOL RATHER THAN PART OF prepare, because the two have different audiences. prepare answers a machine and has to stay parseable; an image in its result would make the structured fields something a client has to dig for. A person who needs the code asks for it.

⚠️ AND IT ENCODES THE URI, NOT THE BARE ADDRESS. A QR holding only an address leaves the amount and the token to be entered by hand, which is the part worth removing — a payment contract funded with the wrong figure is not the payment contract these terms derive to, and the money sits at an address nothing can deploy to.

Input Schema

NameRequiredDescriptionDefault
payment_uriYesThe `payment_uri` prepare_escrow_payment returned, for a code a wallet scans; or its `share_with_payer.pay_link`, for a code that opens the payment page.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / payment_uri / description
      Added value: +"The `payment_uri` prepare_escrow_payment returned, for a code a wallet scans; or its `share_with_payer.pay_link`, for a code that opens the payment page."
  2. First observed

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, closed-world, so the safety profile is covered. The description adds genuinely new behavior: the result is an image a phone wallet can scan, and it deliberately encodes the full URI rather than a bare address so token, network, destination and amount survive the handoff. It does not specify the image encoding or transport (raw bytes, URL, MIME type), which is the remaining gap.

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 purpose and the primary input are front-loaded in the first two lines, and both warning blocks carry non-redundant distinctions an agent could otherwise get wrong. It runs long, though: the closing clause about money sitting at an address nothing can deploy to is rhetorical padding that a call-selection decision does not need.

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 takes on the job of describing the return and does so at a useful level (a scannable code for a wallet, or one that opens the payment page on the site). It stops short of naming the actual return shape — image bytes, file reference, or encoded payload — which is the one thing an agent cannot infer before calling.

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% with a single parameter, so a baseline of 3 applies, but the description adds meaning beyond the schema by spelling out the two semantically distinct values the same string can carry and what each produces downstream. That is real added value for a one-param tool rather than a restatement.

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 concrete verb-and-resource: it produces a scannable QR code for a payment request from a payment URI. It also explicitly distinguishes itself from the sibling tool `prepare_escrow_payment` and explains why it is a separate tool rather than part of `prepare`.

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 the exact input source (`payment_uri` from `prepare_escrow_payment`) and the alternative (`share_with_payer.pay_link`) with the condition that selects each: a wallet-scanned code versus a code that opens the payment page. It also names the audience distinction that tells an agent when this tool should be called instead of `prepare`.

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