Skip to main content
Glama

One payment for several eSIMs

make_esim_cart
Read-only

For a trip to several countries (or several phones): turns 2 to 6 plan_ids from find_esim_plans into one cart link. The customer opens it, checks the eSIMs and pays once on Stripe; each eSIM comes in its own QR email and can be refunded on its own if never installed. 3 or more eSIMs in one cart are 5% off. Nothing is bought until the customer pays on the page.

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": {
      "plan_ids": "<plan_ids>"
    },
    "name": "make_esim_cart"
  }
}

Input Schema

NameRequiredDescriptionDefault
plan_idsYesplan_ids from find_esim_plans, one per eSIM, e.g. ['japan-5gb-30d', 'south-korea-3gb-30d'].

Output Schema

NameRequiredDescriptionDefault
noteNo
plansYes
cart_urlYesGive this link to the customer: they pay for every eSIM in it at once.
total_usdYesWhat the cart page charges, with the 5% off that 3+ eSIMs get on most plans. A partner code may lower it on the page.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / properties / total_usd / description
      Previous value: -"Before the 5% off that 3+ eSIMs get on most plans; the cart page shows the final total."New value: +"What the cart page charges, with the 5% off that 3+ eSIMs get on most plans. A partner code may lower it on the page."
  2. Added

TDQS

A4.2/5.0
Behavior4/5

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

Annotations only declare readOnly/openWorld/destructive, while the description adds substantial context: a cart link is generated, the customer pays once on Stripe, each eSIM gets its own QR email, refunds are per-eSIM if uninstalled, and 3+ eSIMs are 5% off. The closing line "nothing is bought until the customer pays" reconciles the creation of a cart with readOnlyHint=true. What is missing is link expiry or whether the cart reserves inventory, so a 4 rather than 5.

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 use case and the core action, and every sentence carries information (discount tier, delivery, refunds, payment timing). The second sentence is long and clause-heavy, but no sentence is 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 a single documented parameter and an output schema covering the returned cart link, the description supplies everything else an agent needs: preconditions, delivery mechanics, refund behavior, and pricing. Nothing material for correct invocation is left out.

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 baseline is 3. The description adds real meaning (one plan_id per eSIM, sourced from find_esim_plans, discount threshold at 3), but it also says "2 to 6 plan_ids" while the schema allows minItems 1 — a small mismatch that leaves the true minimum ambiguous.

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?

"Turns 2 to 6 plan_ids from find_esim_plans into one cart link" is a concrete verb plus resource, and the multi-eSIM framing distinguishes it from the single-purchase sibling buy_esim. An agent can tell what it does and what it is not (a purchase) 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?

The trigger condition is explicit: "for a trip to several countries (or several phones)", plus the 2-to-6 range that signals when a single-eSIM tool is the wrong choice. It never names buy_esim as the alternative for one eSIM, so the routing is implied rather than stated.

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