Recommend the right travel eSIM for any trip (200+ countries) and hand the traveler a checkout link.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Same formula as bloomyesim.com/data-calculator: daily MB per activity x days x Wi-Fi factor x 1.15 safety buffer, rounded up.
Same formula as bloomyesim.com/data-calculator: daily MB per activity x days x Wi-Fi factor x 1.15 safety buffer, rounded up.
| Argument | Type | Description |
|---|---|---|
| days* | integer | |
| wifi | string | |
| activities* | array |
{
"type": "object",
"required": [
"days",
"activities"
],
"properties": {
"days": {
"type": "integer",
"maximum": 180,
"minimum": 1
},
"wifi": {
"enum": [
"rarely",
"sometimes",
"often"
],
"type": "string"
},
"activities": {
"type": "array",
"items": {
"enum": [
"maps",
"messaging",
"web",
"music",
"voice",
"social",
"video_call",
"hotspot_light",
"video",
"hotspot_heavy"
],
"type": "string"
}
}
}
}Details of one plan: data, validity, network, 5G, top-up, carriers, price and checkout link.
| Argument | Type | Description |
|---|---|---|
| days | integer | Trip length (sets the day count and total for daily plans). |
| lang | string | Language for names and for the purchase page. Default en when omitted. The language never changes which plan or what price is returned: every plan carries price_jpy and price_usd (both always present). |
| plan_id* | integer |
{
"type": "object",
"required": [
"plan_id"
],
"properties": {
"days": {
"type": "integer",
"description": "Trip length (sets the day count and total for daily plans)."
},
"lang": {
"enum": [
"en",
"ja",
"zh-cn",
"zh-tw",
"ko",
"es",
"fr"
],
"type": "string",
"description": "Language for names and for the purchase page. Default en when omitted. The language never changes which plan or what price is returned: every plan carries price_jpy and price_usd (both always present)."
},
"plan_id": {
"type": "integer"
}
}
}Link straight to the final confirmation screen for this plan. The traveler pays there themselves; this tool never takes payment. The QR code is emailed and shown in My Page right after payment.
| Argument | Type | Description |
|---|---|---|
| days | integer | Trip length (needed for daily plans). |
| lang | string | Language for names and for the purchase page. Default en when omitted. The language never changes which plan or what price is returned: every plan carries price_jpy and price_usd (both always present). |
| plan_id* | integer |
{
"type": "object",
"required": [
"plan_id"
],
"properties": {
"days": {
"type": "integer",
"description": "Trip length (needed for daily plans)."
},
"lang": {
"enum": [
"en",
"ja",
"zh-cn",
"zh-tw",
"ko",
"es",
"fr"
],
"type": "string",
"description": "Language for names and for the purchase page. Default en when omitted. The language never changes which plan or what price is returned: every plan carries price_jpy and price_usd (both always present)."
},
"plan_id": {
"type": "integer"
}
}
}Short, accurate setup steps (iPhone or Android), what to check before buying, and links to the full guide, the device checker and troubleshooting.
| Argument | Type | Description |
|---|---|---|
| lang | string | Language for names and for the purchase page. Default en when omitted. The language never changes which plan or what price is returned: every plan carries price_jpy and price_usd (both always present). |
| device | string |
{
"type": "object",
"properties": {
"lang": {
"enum": [
"en",
"ja",
"zh-cn",
"zh-tw",
"ko",
"es",
"fr"
],
"type": "string",
"description": "Language for names and for the purchase page. Default en when omitted. The language never changes which plan or what price is returned: every plan carries price_jpy and price_usd (both always present)."
},
"device": {
"enum": [
"iphone",
"android"
],
"type": "string"
}
}
}Countries with a dedicated plan, with ISO code, localized name, number of plans and the lowest price. Filterable with query.
| Argument | Type | Description |
|---|---|---|
| lang | string | Language for names and for the purchase page. Default en when omitted. The language never changes which plan or what price is returned: every plan carries price_jpy and price_usd (both always present). |
| query | string | Part of a country name or code. Omit to list all. |
{
"type": "object",
"properties": {
"lang": {
"enum": [
"en",
"ja",
"zh-cn",
"zh-tw",
"ko",
"es",
"fr"
],
"type": "string",
"description": "Language for names and for the purchase page. Default en when omitted. The language never changes which plan or what price is returned: every plan carries price_jpy and price_usd (both always present)."
},
"query": {
"type": "string",
"description": "Part of a country name or code. Omit to list all."
}
}
}Takes the destination (or all destinations of a multi-country trip) and trip length, plus how the traveler uses data if known. Returns up to 3 options with a reason each: best_fit (cheapest that covers the estimated need), budget (cheaper, below the estimate) and roomier (next size up), each with a link straight to checkout confirmation. Accepts every country of a multi-country trip in destinations, with the total days.
| Argument | Type | Description |
|---|---|---|
| days* | integer | Trip length in days (total for a multi-country trip). |
| lang | string | Language for names and for the purchase page. Default en when omitted. The language never changes which plan or what price is returned: every plan carries price_jpy and price_usd (both always present). |
| wifi | string | How often hotel/cafe Wi-Fi is used. Default sometimes. |
| usage | string | light = maps and messaging, normal = maps, messaging, web and social (default), heavy = plus video streaming. Superseded by activities when given. |
| min_gb | number | Alternative to usage/activities when the GB wanted is already known. |
| activities | array | Specific uses named by the traveler (e.g. hotspot_light for tethering, video_call, video). Overrides usage. Same categories as bloomyesim.com/data-calculator. |
List plans for a destination, cheapest first, single-country plans before multi-country ones. Filter by trip length, minimum GB, and plan type.
| Argument | Type | Description |
|---|---|---|
| lang | string | Language for names and for the purchase page. Default en when omitted. The language never changes which plan or what price is returned: every plan carries price_jpy and price_usd (both always present). |
| limit | integer | Default 8. |
| min_gb | number | Minimum GB (daily allowance for daily plans). |
| min_days | integer | Trip length. Fixed-GB plans shorter than this are skipped; daily plans get the trip total. |
| plan_type | string | "data" = fixed GB for the whole period, "unlimited" = priced per day. Omit to include both types. |
| destination* | string | Required. Country name (any supported language) or ISO alpha-2 code. A country with no dedicated plan returns an error, never plans for a different country. |
{
"type": "object",
"required": [
"destination"
],
"properties": {
"lang": {
"enum": [
"en",
"ja",
"zh-cn",
"zh-tw",
"ko",
"es",
"fr"
],
"type": "string",
"description": "Language for names and for the purchase page. Default en when omitted. The language never changes which plan or what price is returned: every plan carries price_jpy and price_usd (both always present)."
},
"limit": {
"type": "integer",
"maximum": 20,
"minimum": 1,
"description": "Default 8."
},
"min_gb": {
"type": "number",
"description": "Minimum GB (daily allowance for daily plans)."
},
"min_days": {
"type": "integer",
"description": "Trip length. Fixed-GB plans shorter than this are skipped; daily plans get the trip total."
},
"plan_type": {
"enum": [
"data",
"unlimited"
],
"type": "string",
"description": "\"data\" = fixed GB for the whole period, \"unlimited\" = priced per day. Omit to include both types."
},
"destination": {
"type": "string",
"description": "Required. Country name (any supported language) or ISO alpha-2 code. A country with no dedicated plan returns an error, never plans for a different country."
}
}
}| destination | string | Country name in any of en/ja/zh/ko/es/fr (e.g. "Turkey", "トルコ", "Türkiye") or ISO 3166-1 alpha-2 code ("TR"). For one country. |
| destinations | array | For a trip through several countries: every country visited (names or ISO codes). One eSIM covering all of them is searched. Alternative to destination. |
{
"type": "object",
"required": [
"days"
],
"properties": {
"days": {
"type": "integer",
"maximum": 180,
"minimum": 1,
"description": "Trip length in days (total for a multi-country trip)."
},
"lang": {
"enum": [
"en",
"ja",
"zh-cn",
"zh-tw",
"ko",
"es",
"fr"
],
"type": "string",
"description": "Language for names and for the purchase page. Default en when omitted. The language never changes which plan or what price is returned: every plan carries price_jpy and price_usd (both always present)."
},
"wifi": {
"enum": [
"rarely",
"sometimes",
"often"
],
"type": "string",
"description": "How often hotel/cafe Wi-Fi is used. Default sometimes."
},
"usage": {
"enum": [
"light",
"normal",
"heavy"
],
"type": "string",
"description": "light = maps and messaging, normal = maps, messaging, web and social (default), heavy = plus video streaming. Superseded by activities when given."
},
"min_gb": {
"type": "number",
"description": "Alternative to usage/activities when the GB wanted is already known."
},
"activities": {
"type": "array",
"items": {
"enum": [
"maps",
"messaging",
"web",
"music",
"voice",
"social",
"video_call",
"hotspot_light",
"video",
"hotspot_heavy"
],
"type": "string"
},
"description": "Specific uses named by the traveler (e.g. hotspot_light for tethering, video_call, video). Overrides usage. Same categories as bloomyesim.com/data-calculator."
},
"destination": {
"type": "string",
"description": "Country name in any of en/ja/zh/ko/es/fr (e.g. \"Turkey\", \"トルコ\", \"Türkiye\") or ISO 3166-1 alpha-2 code (\"TR\"). For one country."
},
"destinations": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 5,
"description": "For a trip through several countries: every country visited (names or ISO codes). One eSIM covering all of them is searched. Alternative to destination."
}
}
}