Skip to main content
Glama

Start a purchase

create_checkout

Start a purchase — the step after the user picks a plan from search_esim_plans.

Call it with that plan's plan_id (get_plan_details shows the current price first). Returns an order_id and where to pay, on the rail you asked for: 'card' (the default) returns a checkout_url — a hosted Stripe page for a human to open in a browser; once they say they've paid, call get_order_status to confirm and carry on to the QR code. 'x402' returns an x402_url for a wallet to settle in USDC, with no browser step — only choose it if you actually hold a wallet.

Never accepts payment details — a card is entered on the hosted page, and a wallet signs for itself. Calling it again for the same plan reuses the pending order (reused: true) instead of creating a duplicate.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
plan_idYesplan_id from search_esim_plans
pay_withNoHow the buyer intends to pay. 'card' returns a hosted checkout link for a human to open in a browser. 'x402' returns an x402_url for a wallet tool to settle in USDC, with no browser step — only choose it if you have a wallet. An order keeps the rail it was first given: to pay an existing card order in USDC instead, cancel it and start a new one, so there are never two live ways to pay it.card

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

TDQS

A5/5.0
Behavior5/5

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

The description discloses key behaviors beyond annotations: 'Never accepts payment details,' the reuse behavior ('Calling it again for the same plan reuses the pending order (reused: true) instead of creating a duplicate'), and the distinction between card (hosted page) and x402 (wallet). It also clarifies output structure (order_id, checkout_url/x402_url) without contradicting 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 description is well-structured and front-loaded with the core purpose. Each sentence adds value: the invocation context, parameter guidance, return values, rail-specific behavior, and edge-case reuse. It is appropriately sized for the tool's complexity, with no filler or redundancy.

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?

Given the tool's complexity (2 params, enum, output schema), the description is complete: it covers the full purchase flow (before and after this step), alternatives (cancel_order, get_order_status), constraints (no payment details), and edge cases (reuse, rail switching). The output schema is present, so the description need not enumerate return fields, but it does explain their meaning and next steps.

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?

While schema coverage is 100%, the description adds significant meaning: plan_id is sourced from search_esim_plans, pay_with has an elaborated default ('card') and a clear condition for x402 ('only choose it if you actually hold a wallet'). It also explains the implication of choosing a rail (browser vs. no browser), which is not explicit in the schema alone.

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 clearly states the tool's function: 'Start a purchase — the step after the user picks a plan from search_esim_plans.' It specifies the primary action (create checkout) and the scope (for a selected plan), distinguishing it from siblings like cancel_order or get_order_status by placing it within the purchase flow.

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?

Explicit when-to-use guidance is provided: 'the step after the user picks a plan... get_plan_details shows the current price first' and 'once they say they've paid, call get_order_status.' It also gives conditional advice for the x402 rail ('only choose it if you actually hold a wallet') and how to handle rail switching ('cancel it and start a new one'), naming the alternative cancel_order.

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.

TDQS

A4.4/5.0
Disambiguation5/5

Each tool serves a distinct purpose: planning, ordering, payment, activation, usage, top-up, and cancellation. No two tools overlap in functionality; even create_checkout and pay_order are distinct (one initiates and returns a payment URL, the other handles x402-only payment).

Naming Consistency5/5

All 11 tools follow a consistent verb_noun snake_case pattern (e.g., cancel_order, get_esim_activation, search_esim_plans). The variety of verbs (create, get, list, search, cancel, pay) is appropriate for the actions represented, and there are no naming inconsistencies.

Tool Count5/5

The server has 11 tools, well within the ideal 3-15 range. Each tool covers a necessary step in the eSIM lifecycle without redundancy, making the toolset appropriately scoped and manageable.

Completeness5/5

The toolset covers the full eSIM workflow: plan discovery (search, get details), purchasing (create_checkout), top-ups (create_topup_checkout, list_topup_options), payment (pay_order), order tracking (get_order_status, list_my_orders), activation (get_esim_activation), usage (get_esim_usage), and cancellation (cancel_order). No critical gaps are apparent.

Resources