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 37 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 5 tools
Each tool has a clearly distinct role: list_destinations covers single-country plans, list_regions covers multi-country coverage areas, search_esim_plans filters actual plans, get_esim_plan retrieves details by ID, and create_checkout_link handles purchase. Even the listing tools that could overlap are explicitly differentiated by coverage type.
All tool names follow a consistent snake_case verb_noun pattern: create_, get_, list_, list_, search_. The verbs clearly indicate the action and the nouns identify the resource, making the API predictable and easy to navigate.
Five tools is well-scoped for an eSIM sales server: two browse/discovery tools, one search tool, one detail tool, and one purchase tool. There is no apparent bloat or missing core capability for the stated purpose.
The surface covers the main user journey: browse destinations/regions, search plans, get plan details, and create a checkout link. The only notable gap is the lack of a post-payment order/status lookup, but the email-based fulfillment described makes this a minor workaround rather than a dead end.
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 eSIM QR code, one-tap activation link, and manual installation codes are emailed to the buyer within a minute. 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 provided, the description carries the full burden, and it does so thoroughly: it discloses the Stripe-backed but self-hosted payment flow, the email verification step, the fact that nothing is ordered until the buyer confirms and pays, and post-payment email delivery. It also notes that no account or signup is required.
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 description is front-loaded with the core action and immediate next step, then adds necessary workflow details. Every sentence earns its place, and the parenthetical about not redirecting to checkout.stripe.com is useful and compact.
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 checkout-link creation tool with no output schema and no annotations, the description is remarkably complete: it covers what the tool creates, how the buyer flow works, what is delivered after payment, and the no-signup requirement. Nothing essential is missing for an agent to call it correctly.
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 the schema already documents all three parameters. The description adds mild context for the email parameter ('pre-fill the checkout form') and references plan_id indirectly, but it does not meaningfully extend beyond the schema.
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 states a specific verb and resource: create a secure payment link on siima.online for a Siima eSIM plan. It is clearly distinguished from sibling read/search tools like search_esim_plans and get_esim_plan, and it explains what to do with the returned URL.
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?
The description makes clear this tool is for generating a payment link that the user completes, and that it is the action-oriented counterpart to the plan-lookup siblings. It gives context for use but does not explicitly state when not to use it or name alternative tools.
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 the eSIM (QR code + activation link + manual codes) is emailed to them automatically — 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?
No annotations are provided, so the description carries the full burden. It reveals that this is a read-style 'Fetch' operation and adds important context that nothing is ordered until the user completes checkout and that the eSIM is emailed automatically. However, it does not describe return format, error behavior, or confirm whether this call has any side effects.
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 description is front-loaded with the core purpose and keeps the purchase-flow guidance tight and actionable. Every sentence adds useful context; there is no redundancy or filler.
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 the simple two-parameter schema and the clear purpose statement, the description is nearly complete. It explains the source of the id and the downstream purchase flow, though with no output schema it could still say a bit more about what the returned 'full details' contain.
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 the schema already documents plan_id and currency fully. The description adds only the useful detail that the plan_id comes from search_esim_plans, which is a small value add over the schema.
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 'Fetch full details of a single Siima eSIM plan by its id', giving a specific verb, resource, and single-item scope. It also references search_esim_plans as the id source, which distinguishes it from the sibling search tool.
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 tells the agent where the plan_id comes from ('from search_esim_plans') and what to do next for purchases ('call create_checkout_link...'). It does not explicitly say when not to use this tool, but the workflow context makes the intended usage clear.
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 each one covers, how many plans it has, and its cheapest total price. Use this for a trip crossing several countries: pick a coverage area whose country list contains the whole itinerary, then pass its name as coverage to search_esim_plans. 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?
With no annotations, the description carries the full burden. It discloses the read-only nature via 'List' and specifies the output contents (countries, plan count, cheapest total price). It doesn't describe side effects or errors, but for a simple listing tool, this is adequate and not misleading.
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 description is exactly three sentences: a purpose statement, a usage instruction, and an alternative recommendation. Every sentence adds value with no fluff, and the most critical information is front-loaded.
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 tool with only two optional parameters and no output schema, the description fully covers what it does, what it returns, how to use it in a workflow, and when to use an alternative. Nothing essential 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?
The schema already provides 100% description coverage for both parameters (country and currency), including formats and defaults. The description does not add additional parameter-specific details beyond the schema, 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 every multi-country coverage area with specific details (countries covered, plan count, cheapest price). It uses the specific verb 'List' and explicitly distinguishes from list_destinations by addressing multi-country vs single-country trips.
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 usage guidance is provided: 'Use this for a trip crossing several countries' and includes the workflow of passing the coverage name to search_esim_plans. It also names the alternative for single-country trips, making when-to-use unmistakable.
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 the eSIM (QR code + activation link + manual codes) is emailed to them automatically — 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?
With no annotations, the description carries the full burden, and it explains key non-obvious behavior: a country filter matches plans of any coverage type that include that country, prices are final all-in checkout totals, and nothing is ordered until the user confirms and pays. It also states that the eSIM is emailed automatically with no account needed.
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 description is longer than average but front-loaded with the search purpose and filters, and each section adds value: coverage semantics, price semantics, and the follow-up purchase flow. The purchase-flow sentences could arguably live in create_checkout_link, but they support the end-to-end task without feeling padded.
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 tool with 9 optional parameters, no annotations, and no output schema, the description is remarkably complete: it explains the coverage model, filter interactions, price behavior, and the required next step for purchase. The exact result object shape is not specified, but the plan id and price semantics are already stated, so an agent can invoke and follow up correctly.
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, but the description adds meaningful semantics beyond the schema: country matches any coverage type, price is the final checkout amount in the requested currency, and coverage_type maps to single-country, regional, or worldwide plans. This clarifies the two most ambiguous parameters.
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 specific verb and resource: 'Search prepaid travel eSIM data plans' and enumerates the filter dimensions. It distinguishes itself from the purchase sibling by explicitly saying 'To buy: call create_checkout_link', and the coverage-type explanation makes its scope clear.
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 gives concrete selection guidance: for multi-country trips filter coverage_type='regional' or 'global', while for single-country trips a 'country' plan is usually cheapest. It also names create_checkout_link as the buy-path alternative, though it does not explicitly tell the agent when to prefer list_regions or get_esim_plan.
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.442 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 gradedqualityBmaintenanceSearch 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.