Skip to main content
Glama

Server Details

Travel eSIMs and mobile top-ups paid in USDC via x402.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
99.1% over 60 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
ChatGPT
–
Claude
–

TDQS

A3.7/5.0

Scored across 11 tools

Disambiguation4/5

Most tools occupy clearly distinct slots: discovery (list_offers, lookup_phone, fx), pricing (quote, quote_vouchers), payment (buy, create_pay_link), and post-purchase (order_status, voucher_batch, verify_receipt). The main risk is quote vs quote_vouchers and buy vs create_pay_link, which share the 'lock a price' and 'pay' semantics, though descriptions do explicitly differentiate single order vs batch and agent-paid vs human-paid.

Naming Consistency3/5

All names are snake_case, so there is no case-style chaos, but the verb pattern is mixed: verb_noun (create_pay_link, list_offers, lookup_phone, verify_receipt, order_status, quote_vouchers, voucher_batch) alongside bare verbs/nouns (buy, quote, fx, ledger). The set is readable but not predictable — an agent cannot infer from a name alone whether a tool is a noun resource or an action.

Tool Count4/5

Eleven tools is a reasonable size for a quote → pay → deliver → verify commerce flow, and each maps to a distinct step. A couple (fx, ledger) are peripheral read-only conveniences rather than core lifecycle steps, but none feels redundant.

Completeness4/5

The surface covers discovery, price locking, two payment paths, order and batch status, and independent receipt verification — a solid lifecycle. Gaps are minor: no tool to list prior orders by wallet/address, no cancel or refund-request operation, and no way to re-fetch a claim link without the batchId.

Available Tools

11 tools
buyAInspect

Get the x402 payment challenge for a quote. This hosted server holds no wallet, so it does NOT spend your money: it returns the exact amount, asset, payTo address and facilitator for you to pay from your own Algorand wallet, then you POST the quote again with your payment signature. Requires prior human confirmation of the quote. Works the same for a quote from quote_vouchers; the paid response is the batch (batchId and claim links) rather than an order.

NameRequiredDescriptionDefault
quoteIdYesthe quoteId returned by quote or quote_vouchers, after the human confirmed it

TDQS

A4.5/5.0
Behavior5/5

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

Despite readOnlyHint=false, it explains that the server holds no wallet and does not spend money, then describes the two-step flow (fetch challenge, POST quote again with signature). It also discloses that the paid response for voucher quotes is a batch with batchId and claim links rather than an order – context not derivable from annotations.

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?

The key safety point ('does NOT spend your money') is front-loaded in the first sentence, and each subsequent sentence adds a distinct operational fact: return payload, next step, precondition, and voucher-specific behavior. No filler.

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?

With no output schema, the description fully covers what the agent receives (amount, asset, payTo, facilitator; batchId and claim links for vouchers) and what the agent must do next. Nothing needed to invoke it correctly is missing.

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 100%, and the parameter description already says quoteId comes from quote or quote_vouchers after human confirmation. The description's mention of the same fact adds no syntax or format detail beyond the schema, 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 and resource ('Get the x402 payment challenge for a quote') and names the sibling tools whose output feeds it (quote, quote_vouchers). An agent can immediately distinguish this from quote, which only produces the quote itself.

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?

Gives a clear precondition ('Requires prior human confirmation of the quote') and clarifies that the same call is used for voucher quotes. It does not explicitly state what to do if confirmation has not happened or name an alternative path, which keeps it just short of 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fxA
Read-onlyIdempotent
Inspect

Indicative USDC → local-currency rate at our sale price, with an estimate for an amount. The quote is the binding price.

NameRequiredDescriptionDefault
toYesISO-4217, e.g. INR
typeNowhat the rate is for; default payout
amountNoan amount in the local currency `to`, to estimate its USDC price, e.g. 5000

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare a safe, idempotent read, so the description's job is adding semantics — and it does: the rate is indicative rather than binding, it is 'our sale price' (i.e., includes spread, not a mid-market rate), and the amount form is only an estimate. Missing is any statement about rate freshness or caching, which matters for a pricing read.

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?

Two short sentences with the core operation front-loaded and no filler. The second sentence is slightly compressed — 'The quote' relies on the reader mapping it to the sibling tool rather than the returned object — but it earns its place as the disambiguator.

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?

There is no output schema, so the description is the only place to learn what comes back, and it only vaguely says 'rate ... with an estimate for an amount' — no indication of rate precision, which currency the estimate is expressed in, or error behavior for unsupported codes. Adequate to call, not quite adequate to interpret the result confidently.

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 100%, so `to`, `type`, and `amount` are all documented in structured fields; the description only restates that an amount produces an estimate. It adds no insight on how `type` (topup/bill/payout) changes the rate, which is the least obvious parameter.

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?

Names a specific resource and direction (USDC → local-currency rate) plus the pricing basis (sale price) and the optional estimate behavior. The closing sentence implicitly contrasts it with the `quote` sibling by declaring which price is binding, so an agent can tell the two apart, though the terse name `fx` carries none of this on its own.

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

Usage Guidelines3/5

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

'The quote is the binding price' implies the split: use this for indicative/preview pricing and `quote` when the price must bind. That is a real routing signal, but it is stated indirectly and never says explicitly when not to rely on this tool (e.g., don't use the returned rate to finalize a transaction).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ledgerB
Read-onlyIdempotent
Inspect

Public delivery ledger: totals, delivered-or-refunded %, volume, countries, recent orders.

NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so the safety profile is covered. The description adds one genuinely useful behavioral fact beyond that — the ledger is 'public', implying no authentication or account scoping — but says nothing about time range, freshness, or aggregation granularity, which matters for interpreting totals.

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?

A single compact sentence with zero waste, and the most distinguishing detail ('public delivery ledger') is front-loaded. It loses a point for being a fragment rather than a clause with a verb, which slightly impairs scannability.

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?

With no output schema and no parameters, the description carries the burden of explaining what comes back, and its enumeration of totals, delivered-or-refunded %, volume, countries and recent orders does reasonable duty. It still omits the time window the totals cover and the response shape, which an agent needs to report results accurately.

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?

The tool takes zero parameters and the schema is an empty object, so there is nothing for the description to disambiguate. Baseline 4 applies; the only minor gap is not clarifying that no filters (date range, country) are accepted, which the agent might otherwise assume from the listed metrics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies a specific resource (a public delivery ledger) and enumerates the metrics it exposes, which distinguishes it from the transactional siblings (buy, quote, order_status). However, it is a bare noun phrase with no verb or scope statement, so the agent must infer that it retrieves a read-only aggregate report rather than performs any action.

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

Usage Guidelines2/5

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

There is no statement of when to call this versus alternatives such as order_status or verify_receipt, and no exclusions or prerequisites. The agent is left to guess that this is a summary/analytics endpoint rather than a per-order lookup.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_offersA
Read-onlyIdempotent
Inspect

Browse purchasable offers: mobile top-ups, travel eSIMs, prepaid bills, or international payment corridors (bank / mobile money / UPI) for a country. Free. Prices shown are indicative; the quote fixes them.

NameRequiredDescriptionDefault
typeYespayout = international payment (bank / mobile money / UPI)
brandNooperator or provider brand to filter by, as list_offers returns it in `brand`
limitNopage size, default 100; 0 means all
offsetNouse next_offset from the previous page
countryNoISO-3166 alpha-2, e.g. IN

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint/idempotent/non-destructive, so the bar is lower; the description still adds that the call is free and that returned prices are non-binding, which is exactly the kind of caveat an agent needs before acting. Pagination and rate-limit behavior are left to the schema.

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 short sentences, front-loaded with the resource and categories, then the cost and pricing caveat. No filler or repetition.

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 is nearly complete for a filtered-list tool: what it returns (offers by category/country), cost, and price caveat are covered, and pagination lives in the schema. It could say slightly more about the shape of returned offer objects (the `brand` field is only referenced in the schema).

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 100% and documents every parameter including pagination semantics and ISO-3166 format. The description only restates the country scoping and the category meanings already embedded in the `type` enum, so 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 (browse) and resource (purchasable offers) and enumerates the four offer categories, which map directly onto the `type` enum. An agent can immediately distinguish this from buy/quote/fx siblings, which transact rather than list.

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?

'Free' plus 'prices shown are indicative; the quote fixes them' tells the agent this is a zero-cost discovery call and that a follow-up `quote` is required for a binding price — that is real routing guidance. It stops short of naming the sibling tool explicitly or stating when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lookup_phoneA
Read-onlyIdempotent
Inspect

Identify the country and mobile operator of a phone number and list the top-up offers available for it. Free. The operator is DETECTED from the number range and is a guess: MVNOs (Tesco Mobile, Giff Gaff, Lebara, Voxi, Sky…) resolve to the host network they ride on. Read the detected brand back to the human and have them confirm it before buying, and use other_brands to correct it — a voucher bought for the wrong network delivers successfully and cannot be redeemed or refunded.

NameRequiredDescriptionDefault
phoneYesE.164, e.g. +919876543210

TDQS

A4.1/5.0
Behavior5/5

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

Goes well beyond the readOnly/idempotent annotations: discloses that the lookup is free, that operator detection is a heuristic based on number ranges, that MVNOs resolve to host networks, and that a wrong-network voucher delivers but is non-refundable. That last point is critical risk information the agent cannot get from structured fields.

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 purpose and cost, then the risk warning. Five sentences, all doing work. Slightly dense in the final sentence, but no filler.

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 single-parameter read tool with no output schema, the description covers the return content (country, operator, offers, other_brands) and the main failure mode well. Missing details on offer shape or pricing format are minor at this complexity level.

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 100% and the E.164 format is documented in the schema, so baseline is 3. The description adds useful context by naming `other_brands` (presumably a response field, since no output schema exists), but it is phrased as something to 'use', which could be misread as an input parameter that does not exist in the 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?

States a specific verb and resource: identify country/operator of a phone number and list top-up offers for it. Clear enough for an agent to grasp without opening the schema, but it never differentiates itself from the sibling list_offers tool, leaving ambiguity about which to call for an offer list.

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?

Gives clear pre-purchase workflow guidance: read the detected brand back to the human and get confirmation before buying. However, it offers no explicit when-not or alternative-tool guidance (e.g., versus list_offers or quote), so the routing decision between siblings is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

order_statusA
Read-onlyIdempotent
Inspect

Check an order. Poll every ~3 s until terminal is true: delivered (confirmation + signed receipt), refunded (refund txid + signed receipt) or refund_failed.

NameRequiredDescriptionDefault
orderIdYesthe orderId returned by buy

TDQS

A4/5.0
Behavior4/5

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

Annotations already cover the read-only, idempotent, non-destructive profile, so the description must add something else — and it does: the recommended polling cadence, the terminating condition (`terminal` field), and what each terminal outcome carries (confirmation + signed receipt for delivered, refund txid + signed receipt for refunded, plus refund_failed). That is meaningful context beyond the annotations. It does not say whether polling too fast is throttled or how long orders typically take.

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?

Two sentences, no filler, and the actionable polling rule plus the terminal-state enumeration are front-loaded with no redundant restatement of the tool name or schema.

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?

There is no output schema, so the description must carry the return-value burden, and it does explain the terminal states and what accompanies each. It leaves the non-terminal response shape (what fields exist while pending, beyond the implied `terminal` flag) unstated, which is the main remaining gap for a polling tool.

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?

One parameter with 100% schema description coverage; the schema already explains that orderId is the value returned by buy. The description adds nothing about the parameter, so the baseline 3 applies.

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?

"Check an order" names the resource but with a generic verb; the second sentence rescues it by defining exactly what this tool resolves to (terminal states: delivered, refunded, refund_failed). An agent can tell this is the post-purchase status-polling tool distinct from buy/quote, though the description never explicitly names those siblings.

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?

Gives concrete operational guidance: poll every ~3 s and stop when `terminal` is true. That is real when/how-to-use instruction for the polling loop. It stops short of explicit exclusions or naming alternatives (e.g., "use verify_receipt to validate the receipt independently"), so it does not reach a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

quoteAInspect

Lock a price (10 minutes) for one purchase. Returns quoteId, exact USDC price and what will be delivered. Free. ALWAYS show the human the price and the recipient before buying.

NameRequiredDescriptionDefault
refNoreferrer's Algorand address — earns a share of margin if the order is delivered (GET /v1/referrals)
typeYesthe offer's type, as list_offers returned it
iccidNoexisting eSIM to top up (optional)
payerNothe Algorand address you will pay from (required for payout compliance when this server holds no wallet)
phoneNorecipient phone for topup/bill (E.164)
amountNofor range offers: amount in the recipient's local currency
fieldsNobill-pay / payout recipient fields the offer lists in requiredFields (account_number, bank_code, full_name, vpa, iban…)
senderNopayouts only: the principal (legal name + country); reference = partner KYC id, required above $100/day
offerIdYesthe offer's offerId from list_offers or lookup_phone, e.g. ea-JC063

TDQS

A4.2/5.0
Behavior4/5

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

Annotations only say readOnly=false, idempotent=false, destructive=false; the description adds genuinely new behavior: a 10-minute lock window, zero cost, and the exact return payload (quoteId, USDC price, delivery contents). It stops short of saying whether calling twice invalidates or stacks quotes, which matters given idempotentHint=false.

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 short sentences, front-loaded with what it does and how long the lock lasts, then the return value, then the safety instruction. Every sentence carries distinct information with no repetition of the schema.

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 9-parameter, non-idempotent tool with no output schema, the description still conveys cost, lifetime, and return contents, and the parameter variety is fully covered by the schema. The one gap is quote lifecycle after expiry or on repeated calls, which the agent must guess.

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%, so all nine parameters (including the payer/sender KYC and fields object) are already documented in the schema. The description adds only the generic notion of "the recipient" and no field-level guidance, so 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?

"Lock a price (10 minutes) for one purchase" states a specific verb (lock), resource (price) and scope (one purchase), and the 10-minute duration immediately separates it from the sibling buy tool. An agent can tell this is a pre-purchase price-lock, not the purchase itself, without opening 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 Guidelines4/5

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

It gives a concrete workflow rule — "ALWAYS show the human the price and the recipient before buying" — which implies quote comes before buy and gates the human confirmation step. It does not explicitly say when not to use it (e.g. reuse an unexpired quote vs. re-quote) or name buy as the follow-up tool by name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

quote_vouchersAInspect

Lock a price (10 minutes) for a BATCH of travel eSIMs paid in one payment: N claim links, one per person, for a group trip, a conference delegation or event giveaways. Each eSIM is bought when its link is claimed (the person opens it on their phone and installs the QR), and links nobody claims within 30 days are refunded to the paying wallet. Free. Pay the returned quoteId with buy, or send the human to this service's /pay/?mode=vouchers page to buy it with their own wallet. Limits: 2–50 eSIMs, each within the per-order limit, the batch within its own limit ($100 by default). ALWAYS show the human the total and the count before buying.

NameRequiredDescriptionDefault
noteNoshown on every claim page, e.g. 'Devcon 8 delegation'
countYeshow many eSIMs, i.e. claim links
payerNothe Algorand address you will pay from
offerIdYesan esim offer from list_offers type=esim

TDQS

A4.8/5.0
Behavior5/5

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

Annotations declare non-readOnly, non-idempotent, non-destructive, and the description adds genuine context beyond them: the 10-minute price lock, per-eSIM purchase on claim, 30-day refund of unclaimed links to the paying wallet, and that quoting itself is free. These are the exact consequences an agent needs before committing a user to a batch.

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 core operation and limits, and every sentence carries operational weight (price lock, refund policy, payment path, limits). It is a dense single block, though, and the payment-path and limit details could be split or ordered slightly more cleanly.

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?

There is no output schema, yet the description tells the agent exactly what comes back (a quoteId) and how to consume it (`buy` or the human /pay page). For a quote-then-pay flow with a mutation, the behavioral and procedural picture is complete.

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 the baseline is 3, but the description adds meaning the schema lacks: `count` maps to one link per person subject to the per-order and batch ($100 default) limits, and `offerId` must come from `list_offers type=esim`. It does not separately explain `payer` or `note`, but those are self-documented 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 class (lock a price / quote for a BATCH of travel eSIMs) and the 'BATCH, N claim links' framing makes it distinguishable from the single-item `quote` and from `buy` without opening any schema. An agent can immediately tell this is the group-quoting entry point.

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?

It names concrete use cases (group trip, conference delegation, event giveaways) and routes explicitly to the alternatives: 'Pay the returned quoteId with `buy`, or send the human to /pay/?mode=vouchers'. It also states the hard limits (2–50 eSIMs, per-order and batch limits) and an operational rule: 'ALWAYS show the human the total and the count before buying.'

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify_receiptA
Read-onlyIdempotent
Inspect

Verify an ed25519-signed receipt: the signature, and — unless you pass onChain:false — both txids against an Algorand indexer. Give it an orderId to check one of this service's own orders, or a receipt object to check ANY receipt in this format, including one issued by another server.

NameRequiredDescriptionDefault
onChainNoconfirm the txids on chain; default true
orderIdNoan order on this service
receiptNoa receipt {payload, signature}, or an order response containing one

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already establish that the tool is read-only, idempotent, and non-destructive. The description adds useful behavioral detail by explaining that txids are checked against an Algorand indexer unless onChain is false, though it does not describe failure or result semantics.

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?

The description is two tightly written sentences with the core action and verification scope front-loaded. The second sentence cleanly explains input-mode selection, and every clause adds useful 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?

For a verification tool with a nested receipt object and no output schema, the description covers the important invocation choices and on-chain verification behavior. The main remaining gap is that it does not explain what the verification result looks like, which matters more because no output schema exists.

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 description coverage is 100%, so the schema already documents all three parameters. The description still adds meaningful semantics by distinguishing orderId as this service's own orders from receipt as any receipt in the format, including one from another server.

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: verify an ed25519-signed receipt. It also clarifies exactly what is verified, the signature and txids, and distinguishes the two input modes, so an agent can identify the tool's purpose immediately.

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?

It explicitly explains when to use orderId versus a receipt object, including that the receipt object can verify any receipt in this format even from another server. It also clarifies the onChain:false condition, leaving little ambiguity about invocation modes.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

voucher_batchA
Read-onlyIdempotent
Inspect

A paid voucher batch: every claim link, which have been claimed and delivered, the expiry, and any refund for unclaimed links. The batchId is the only handle on the links — keep it, and hand each person their own link privately (whoever opens a link first gets that eSIM).

NameRequiredDescriptionDefault
batchIdYesthe batchId returned by buy for a quote_vouchers quote

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, non-destructive behavior. The description adds valuable context beyond that: it discloses what data is returned, explains first-opener claim semantics, and warns that the batchId is the only handle for the links.

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?

Two sentences with no wasted language. The returned contents are front-loaded, followed by the critical handling constraint and claim semantics.

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 one-parameter read-only tool with no output schema, the description adequately explains the returned contents and key operational behavior. Minor omissions such as error behavior for an invalid batchId keep it from a 5.

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 the baseline is 3. The description adds meaning by emphasizing that batchId is the only handle on the links and must be retained, which goes beyond the schema's note that it comes from buy and quote_vouchers.

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 clearly identifies the resource as a paid voucher batch and enumerates the returned data: claim links, claimed/delivered status, expiry, and refunds. It lacks an explicit action verb such as 'retrieve' and does not explicitly distinguish itself from siblings, keeping it below a 5.

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

Usage Guidelines2/5

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

The description gives operational handling advice—keep the batchId and hand links privately—but does not say when to use this tool versus alternatives such as order_status or verify_receipt. No exclusions or selection criteria are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 8 tool updates
    • Changedbuy1 field changed
      • addedInput schema / properties / quoteId / description
        Added value: +"the quoteId returned by quote or quote_vouchers, after the human confirmed it"
    • Changedcreate_pay_link2 fields changed
      • addedInput schema / properties / offerId / description
        Added value: +"the offer's offerId from list_offers or lookup_phone, e.g. ea-JC063"
      • addedInput schema / properties / type / description
        Added value: +"the offer's type, as list_offers returned it"
    • Changedfx1 field changed
      • addedInput schema / properties / amount / description
        Added value: +"an amount in the local currency `to`, to estimate its USDC price, e.g. 5000"
    • Changedlist_offers1 field changed
      • addedInput schema / properties / brand / description
        Added value: +"operator or provider brand to filter by, as list_offers returns it in `brand`"
    • Changedorder_status1 field changed
      • addedInput schema / properties / orderId / description
        Added value: +"the orderId returned by buy"
    • Changedquote2 fields changed
      • addedInput schema / properties / offerId / description
        Added value: +"the offer's offerId from list_offers or lookup_phone, e.g. ea-JC063"
      • addedInput schema / properties / type / description
        Added value: +"the offer's type, as list_offers returned it"
    • Changedverify_receipt3 fields changed
      • addedInput schema / properties / receipt / additionalProperties
        Added value: +{}
      • addedInput schema / properties / receipt / propertyNames
        Added value: +{
        +  "type": "string"
        +}
      • addedInput schema / properties / receipt / type
        Added value: +"object"
    • Changedvoucher_batch1 field changed
      • addedInput schema / properties / batchId / description
        Added value: +"the batchId returned by buy for a quote_vouchers quote"
  2. 2 tool updates
    • Addedquote_vouchers
    • Addedvoucher_batch
  3. 2 tool updates
    • Addedcreate_pay_link
    • Changedquote1 field changed
      • addedInput schema / properties / ref
        Added value: +{
        +  "description": "referrer's Algorand address — earns a share of margin if the order is delivered (GET /v1/referrals)",
        +  "type": "string"
        +}
  4. 8 tool updates
    • First observedbuy
    • First observedfx
    • First observedledger
    • First observedlist_offers
    • First observedlookup_phone
    • First observedorder_status
    • First observedquote
    • First observedverify_receipt

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    Buy and manage a global eSIM through chat. One universal eSIM for 192 countries, per-MB billing in USDT or USDC across TRON, Solana, BSC, Polygon, Optimism, Arbitrum, TON. Anonymous-flow by default — no account required.
    12
    71 npm
    3
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents to search, quote, and buy prepaid travel eSIM data plans within a human-set spending mandate and prepaid wallet, returning activation codes and verifiable signed receipts. Agents can also check machine-readable policies, manage post-sale actions like refunds and status, and operate without ever accessing card details or exceeding their limits.
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Non-custodial stablecoin bill payments (airtime, data, electricity, cable, education) on Celo mainnet, reachable via x402 (zero setup, EIP-3009), a linked wallet's PIN-gated MCP/A2A tool catalog, or plain natural language on Telegram/WhatsApp/X.
    10
    1
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources