Siima eSIM
Server Details
Search travel eSIM plans for 150+ countries and buy via Stripe link; eSIM QR delivered by email.
- Status
- Healthy
- Uptime
- 99.9% over 57 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 5 tools
The purchase tool (create_checkout_link) and the single-plan lookup (get_esim_plan) are clearly distinct. However, list_destinations, list_regions, and search_esim_plans all browse destination/coverage data, and search_esim_plans can filter by country or region, so boundaries overlap somewhat—though the descriptions explain when to use each.
All names follow a consistent snake_case verb_noun pattern (create_checkout_link, get_esim_plan, list_destinations, list_regions, search_esim_plans). Verb choices are predictable and readable throughout.
Five tools is well-scoped for an eSIM discovery-plus-purchase flow. Each tool has a clear role: browse by country, browse by region, search/filter, fetch details, and generate a checkout link.
The discovery-to-purchase lifecycle is fully covered, with no account required. Minor gap: no tool to check order/payment status or retrieve an existing eSIM/order, though the email-delivery design largely makes that unnecessary.
Available Tools
5 toolscreate_checkout_linkCreate eSIM checkout linkAInspect
Create a secure payment link on siima.online for a Siima eSIM plan (Stripe-powered, but hosted on our own site — never a redirect to checkout.stripe.com). Give the returned url to the user to complete payment. Optionally pass the buyer's email to pre-fill the checkout form. The buyer confirms it with a 6-digit code we email them, then pays — nothing is ordered until they do. After payment the buyer is emailed a link to their eSIM within a minute; opening it on their phone gives a one-tap install, the QR code and manual installation codes. No account or signup is required.
| Name | Required | Description | Default |
|---|---|---|---|
| No | Buyer email to pre-fill at checkout (they verify it before paying; the eSIM is delivered there) | ||
| plan_id | Yes | Plan id from search_esim_plans | |
| currency | No | Currency for prices: "usd", "eur", or "gbp". Defaults to "usd". | usd |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and does most of it well: it discloses that the link is Stripe-powered but self-hosted, that the buyer must confirm via a 6-digit emailed code, that nothing is ordered until confirmation, and that no account is required. It omits operational details like link expiry, rate limits, or what happens on abandoned checkouts.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core action and the 'give the url to the user' instruction are front-loaded, which is the right structure. It runs six sentences and the final sentence about one-tap install/QR codes is largely consumer-facing color rather than guidance the agent needs to select or invoke the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description correctly compensates by explaining the return value (a url to hand to the user) and the end-to-end flow the agent must narrate. Nothing an agent needs to call this tool correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter is already documented in the schema, giving a baseline of 3. The description adds meaning only for email (pre-fill + delivery target) and says nothing about currency or plan_id beyond the schema's own wording.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a precise verb+resource ('Create a secure payment link ... for a Siima eSIM plan') and immediately scopes it to siima.online, distinguishing it from the read-only siblings (search_esim_plans, get_esim_plan, list_destinations). An agent can tell this is the only tool that initiates a purchase flow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states the operational context clearly ('Give the returned url to the user to complete payment') and implies the plan_id must come from a prior search, but it never explicitly names the sibling to call first (search_esim_plans) or states when-not to use it. Clear context, no explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_esim_planGet eSIM plan detailsAInspect
Fetch full details of a single Siima eSIM plan by its id (from search_esim_plans). To buy: call create_checkout_link with the plan id, give the returned URL to the user. They confirm their email with a 6-digit code and pay there; nothing is ordered until they do. After payment they are emailed a link to their eSIM; opening it on their phone gives a one-tap install, the QR code and manual codes. No account needed.
| Name | Required | Description | Default |
|---|---|---|---|
| plan_id | Yes | Plan id returned by search_esim_plans | |
| currency | No | Currency for prices: "usd", "eur", or "gbp". Defaults to "usd". | usd |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose meaningful behavior: no ordering occurs until email confirmation and no account is needed. However, it spends most of its words on the downstream purchase flow rather than on this call's own behavior (e.g. that it is a read-only lookup or what 'full details' encloses).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is front-loaded with the core purpose, which is good, but then devotes four sentences to the checkout, payment, and install journey that logically belongs to create_checkout_link. That detail is helpful user-facing context but not this tool's contract, diluting a description that should be tight.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A read-only lookup with no output schema and no annotations needs the description to convey what comes back; 'full details' is vague and return fields are never hinted at. The auth-free nature ('No account needed') is covered, so the gap is moderate rather than severe.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both plan_id and the currency enum are already documented in the schema. The description only confirms the id's provenance ('from search_esim_plans') and adds nothing about the currency parameter, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Fetch full details of a single Siima eSIM plan'), scopes it to one plan by id, and names the sibling (search_esim_plans) that produces that id. An agent can confidently distinguish it from search_esim_plans and create_checkout_link.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes the agent: the id comes from search_esim_plans, and buying is done via create_checkout_link, not this tool. It gives clear upstream/downstream context but stops short of stating when this tool should be skipped or contrasting it against list_destinations/list_regions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_destinationsList covered destinationsAInspect
List all countries Siima sells a single-country eSIM plan for, with plan counts and the cheapest total price per country. Country codes are ISO 3166-1 alpha-2. Counts and prices cover country plans only, so they stay comparable — many more countries are reachable via multi-country plans; call list_regions for those.
| Name | Required | Description | Default |
|---|---|---|---|
| currency | No | Currency for prices: "usd", "eur", or "gbp". Defaults to "usd". | usd |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that counts and prices are limited to country plans for comparability, and notes that many more countries are reachable via multi-country plans, which is a meaningful scoping constraint. It doesn't mention pagination or ordering, but for a simple list tool, this is adequately transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the primary purpose and followed by a necessary scope caveat. No wasted words; every clause adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description does a good job indicating what the response contains (countries, counts, prices) and the ISO code format. It also explains the scope limitation clearly. Minor gaps exist around ordering and exact response shape, but for a low-complexity list tool this is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already fully documents the currency parameter, including enum values, default, and description. The tool description adds no additional semantic detail about the parameter, but schema coverage is 100%, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists countries with single-country eSIM plans, including plan counts and cheapest total price. It specifies the ISO 3166-1 alpha-2 format for country codes and distinguishes itself from sibling list_regions by explicitly noting the scope limitation to single-country plans.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly explains when to use this tool (for single-country plans) and directs users to list_regions for multi-country plans. This provides clear when-to-use vs. alternative guidance, satisfying the highest bar for this dimension.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_regionsList regional & worldwide coverage areasAInspect
List every multi-country coverage area Siima sells — regional areas such as "Europe+", "South East Asia" or "CENAM", and worldwide plans — with the countries every plan in it covers, how many plans it has, and its cheapest total price. Use this for a trip crossing several countries: pick a coverage area whose countries list contains the whole itinerary, then pass its name as coverage to search_esim_plans. countries_on_some_plans lists countries only some of the area's plans include — if the itinerary needs one, confirm the chosen plan covers it with get_esim_plan before buying. For a single-country trip use list_destinations instead.
| Name | Required | Description | Default |
|---|---|---|---|
| country | No | Only return coverage areas that include this ISO 3166-1 alpha-2 country, e.g. "IT" | |
| currency | No | Currency for prices: "usd", "eur", or "gbp". Defaults to "usd". | usd |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden, and it does disclose the return shape (countries per area, plan count, cheapest total price) plus the important semantic caveat that countries_on_some_plans may not be covered by every plan. It stops short of stating pagination, auth, or rate-limit behavior, but the substantive behavioral risks are covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose and examples, then workflow, then the sibling disambiguation last. Dense but nearly every clause carries actionable information; the country-example list is slightly verbose but aids recognition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description must explain returns and usage, and it does both: it enumerates the returned fields, clarifies the countries vs countries_on_some_plans distinction, and links to the downstream tools needed to act on the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters (country, currency) are already documented in the schema and the description adds nothing about them. The references to `coverage` and `countries` belong to sibling tools, not this tool's inputs. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List every multi-country coverage area Siima sells') and immediately scopes it with concrete examples ('Europe+', 'South East Asia', 'CENAM') plus worldwide plans. It also names what each result contains, so an agent can distinguish it from list_destinations at a glance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit when-to-use ('Use this for a trip crossing several countries'), explicit routing to the alternative ('For a single-country trip use list_destinations instead'), and a follow-up workflow with search_esim_plans and get_esim_plan. This is a complete decision path.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_esim_plansSearch Siima travel eSIM plansAInspect
Search prepaid travel eSIM data plans by destination country (ISO 3166-1 alpha-2, e.g. "JP"), region (e.g. "Europe"), minimum data in GB, maximum total price, or plan duration in days. Plans come in three coverage types: "country" (one country), "regional" (a named multi-country area such as "Europe+" or "South East Asia"), and "global" (worldwide). A country filter matches every plan that covers it, of any coverage type — so searching country="FR" returns France-only plans alongside the Europe and worldwide plans that include France. For a trip through several countries, filter coverage_type="regional" or "global" to get one eSIM for the whole route; for a single-country trip a "country" plan is usually cheapest. Returned price is the final amount the customer pays at checkout (all fees included), in the requested currency. To buy: call create_checkout_link with the plan id, give the returned URL to the user. They confirm their email with a 6-digit code and pay there; nothing is ordered until they do. After payment they are emailed a link to their eSIM; opening it on their phone gives a one-tap install, the QR code and manual codes. No account needed.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results to return | |
| region | No | Region name, e.g. "Europe", "Asia" | |
| country | No | Destination country as ISO 3166-1 alpha-2 code, e.g. "JP" for Japan. Matches plans of any coverage type that include it. | |
| coverage | No | Exact coverage area name for a regional or worldwide plan, e.g. "Europe+", "CENAM", "Global" — get valid names from list_regions | |
| currency | No | Currency for prices: "usd", "eur", or "gbp". Defaults to "usd". | usd |
| max_price | No | Maximum total price in the requested currency (checkout total) | |
| min_data_gb | No | Minimum data allowance in GB | |
| coverage_type | No | Restrict to single-country plans, multi-country regional plans, or worldwide plans | |
| duration_days | No | Exact plan duration in days |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden and does so well: it explains the semantics of the country filter (matches any coverage type that includes it, with a concrete FR example), states that price is the final checkout total with all fees, and describes the downstream purchase flow, email verification, and eSIM delivery. This is far beyond what the schema provides.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Filter semantics are front-loaded and structured logically, then the purchase flow is appended. The purchase-flow portion (email code, link, one-tap install, QR) is useful but somewhat beyond what a search tool needs, making it slightly longer than strictly required.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 9-parameter, 0-required filter tool with no output schema, the description covers filter semantics, coverage-type behavior, price meaning, and the hand-off to purchasing. Nothing an agent needs to select and invoke this correctly is missing; only the result shape is unstated, which is a minor gap for a search tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 genuine meaning for the country/coverage_type/coverage filters (cross-type matching, the three coverage categories), but duplicates the currency and price semantics already documented in the schema, so it does not exceed the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb+resource ("search prepaid travel eSIM data plans") with the full set of filter dimensions enumerated. It also clearly distinguishes itself from siblings by naming the purchase path (create_checkout_link) and the region-name lookup (implied via schema reference to list_regions).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells the agent which filter to choose for a multi-country trip (coverage_type="regional"/"global") versus a single-country trip ("country" plan is cheapest), and routes purchasing to create_checkout_link with the plan id. Both when-to-use guidance and the alternative tool are named.
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 tool update
- Changed
create_checkout_link1 field changed- changed
Input schema / properties / email / descriptionPrevious value: -"Buyer email to pre-fill at checkout (eSIM is delivered to this address)"New value: +"Buyer email to pre-fill at checkout (they verify it before paying; the eSIM is delivered there)"
2 tool updates
- Added
list_regions - Changed
search_esim_plans3 fields changed- changed
Input schema / properties / country / descriptionPrevious value: -"Destination country as ISO 3166-1 alpha-2 code, e.g. \"JP\" for Japan"New value: +"Destination country as ISO 3166-1 alpha-2 code, e.g. \"JP\" for Japan. Matches plans of any coverage type that include it." - added
Input schema / properties / coverageAdded value: +{ + "description": "Exact coverage area name for a regional or worldwide plan, e.g. \"Europe+\", \"CENAM\", \"Global\" — get valid names from list_regions", + "type": "string" +} - added
Input schema / properties / coverage_typeAdded value: +{ + "description": "Restrict to single-country plans, multi-country regional plans, or worldwide plans", + "enum": [ + "country", + "regional", + "global" + ], + "type": "string" +}
4 tool updates
- Changed
create_checkout_link1 field changed- added
Input schema / properties / currencyAdded value: +{ + "default": "usd", + "description": "Currency for prices: \"usd\", \"eur\", or \"gbp\". Defaults to \"usd\".", + "enum": [ + "usd", + "eur", + "gbp" + ], + "type": "string" +}
- Changed
get_esim_plan1 field changed- added
Input schema / properties / currencyAdded value: +{ + "default": "usd", + "description": "Currency for prices: \"usd\", \"eur\", or \"gbp\". Defaults to \"usd\".", + "enum": [ + "usd", + "eur", + "gbp" + ], + "type": "string" +}
- Changed
list_destinations2 fields changed- added
Input schema / additionalPropertiesAdded value: +false - added
Input schema / properties / currencyAdded value: +{ + "default": "usd", + "description": "Currency for prices: \"usd\", \"eur\", or \"gbp\". Defaults to \"usd\".", + "enum": [ + "usd", + "eur", + "gbp" + ], + "type": "string" +}
- Changed
search_esim_plans3 fields changed- added
Input schema / properties / currencyAdded value: +{ + "default": "usd", + "description": "Currency for prices: \"usd\", \"eur\", or \"gbp\". Defaults to \"usd\".", + "enum": [ + "usd", + "eur", + "gbp" + ], + "type": "string" +} - added
Input schema / properties / max_priceAdded value: +{ + "description": "Maximum total price in the requested currency (checkout total)", + "exclusiveMinimum": 0, + "type": "number" +} - removed
Input schema / properties / max_price_usdRemoved value: -{ - "description": "Maximum total price in USD (checkout total)", - "exclusiveMinimum": 0, - "type": "number" -}
4 tool updates
- First observed
create_checkout_link - First observed
get_esim_plan - First observed
list_destinations - First observed
search_esim_plans
Related MCP Connectors
Search & buy travel data eSIMs for 70+ destinations — pay by Stripe link, get the eSIM QR. USD.
Search travel eSIM data plans for 230+ destinations with live prices and purchase links.
Search, order, and manage eSIM data packages for 190+ countries.
Search prepaid travel eSIM data plans for 200+ countries with live prices and a buy link.
Related MCP Servers
- AlicenseAqualityDmaintenanceTravel eSIMs for 193 countries. Stripe + Bitcoin checkout. QR by email in 30s. No API key.453 npmMIT
- -licenseNot gradedqualityBmaintenanceLets AI agents search and buy travel eSIMs from ALT eSIM for 200+ destinations, with Stripe payment links and email delivery of QR codes.-
- AlicenseNot gradedqualityDmaintenanceSearch and buy travel eSIMs for 200+ countries, with specialized China plans that deliver uncensored internet without a VPN. Exposes five read-only tools to search plans, check device eSIM compatibility, get plan details, get help, and generate a secure on-site checkout link.MIT
- AlicenseNot gradedqualityDmaintenanceBrowse, compare, and purchase eSIMs for 190+ countries via AI agents. 12 tools for searching 2,300+ data plans, checking coverage, and buying eSIMs with crypto or card. No account required for browsing.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.