Build-your-own travel eSIM: live quotes by country, GB, days and networks, plus a buy 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.
The mobile networks the customer can tick for one country (operator name, 4G/5G) with the price of a reference eSIM on each network alone (1 GB · 7 days), so you can say which network is the cheapest and what the others add.
Country in ANY language or its ISO code, e.g. "Japan", "Japon", "jp". Map a city to its country first. One country per eSIM.
Optional language-region bucket the customer shops in, e.g. en-gb, de-de (sets currency and link locale). Defaults from language.
ISO language of the conversation, e.g. en, de, ja. Localizes country names and sets the language/currency of links and prices.
The mobile networks the customer can tick for one country (operator name, 4G/5G) with the price of a reference eSIM on each network alone (1 GB · 7 days), so you can say which network is the cheapest and what the others add.
| Argument | Type | Description |
|---|---|---|
| bucket | string | Optional language-region bucket the customer shops in, e.g. en-gb, de-de (sets currency and link locale). Defaults from language. |
| currency | string | |
| language | string | ISO language of the conversation, e.g. en, de, ja. Localizes country names and sets the language/currency of links and prices. |
| destination* | string | Country in ANY language or its ISO code, e.g. "Japan", "Japon", "jp". Map a city to its country first. One country per eSIM. |
{
"type": "object",
"required": [
"destination"
],
"properties": {
"bucket": {
"type": "string",
"description": "Optional language-region bucket the customer shops in, e.g. en-gb, de-de (sets currency and link locale). Defaults from language."
},
"currency": {
"type": "string"
},
"language": {
"type": "string",
"description": "ISO language of the conversation, e.g. en, de, ja. Localizes country names and sets the language/currency of links and prices."
},
"destination": {
"type": "string",
"description": "Country in ANY language or its ISO code, e.g. \"Japan\", \"Japon\", \"jp\". Map a city to its country first. One country per eSIM."
}
}
}What varioroam is and how it works, in the shop’s own words: the configurable eSIM, ranges, delivery, payment, hotspot, activation, top-ups (add data or days), e-mails, support. Use for any question that is not a price.
| Argument | Type | Description |
|---|---|---|
| bucket | string | Optional language-region bucket the customer shops in, e.g. en-gb, de-de (sets currency and link locale). Defaults from language. |
| language | string | ISO language of the conversation, e.g. en, de, ja. Localizes country names and sets the language/currency of links and prices. |
{
"type": "object",
"properties": {
"bucket": {
"type": "string",
"description": "Optional language-region bucket the customer shops in, e.g. en-gb, de-de (sets currency and link locale). Defaults from language."
},
"language": {
"type": "string",
"description": "ISO language of the conversation, e.g. en, de, ja. Localizes country names and sets the language/currency of links and prices."
}
}
}Every country varioroam can build an eSIM for, with the number of selectable networks and the starting price (1 GB, 1 day, cheapest network). Use to check coverage or to compare many countries at once.
| Argument | Type | Description |
|---|---|---|
| bucket | string | Optional language-region bucket the customer shops in, e.g. en-gb, de-de (sets currency and link locale). Defaults from language. |
| currency | string | Optional ISO 4217 override for prices. |
| language | string | ISO language of the conversation, e.g. en, de, ja. Localizes country names and sets the language/currency of links and prices. |
{
"type": "object",
"properties": {
"bucket": {
"type": "string",
"description": "Optional language-region bucket the customer shops in, e.g. en-gb, de-de (sets currency and link locale). Defaults from language."
},
"currency": {
"type": "string",
"description": "Optional ISO 4217 override for prices."
},
"language": {
"type": "string",
"description": "ISO language of the conversation, e.g. en, de, ja. Localizes country names and sets the language/currency of links and prices."
}
}
}A trip through several countries (max 5): one eSIM per country, each quoted with the same data pool and days unless given per country (gb omitted = sized for normal use from the days). Returns one line per country with price and buy_url, plus the total. Use when the customer names two or more countries and a size (2–5 destinations); for one country call quote_esim; use recommend_config when they describe usage instead.
| Argument | Type | Description |
|---|---|---|
| gb | integer | Data pool per country in whole GB (1–100). Omit = sized for normal use from the days (1.5 GB/day). |
| days | integer | Validity days per country (1–90). Default 7. |
| bucket | string | Optional language-region bucket the customer shops in, e.g. en-gb, de-de (sets currency and link locale). Defaults from language. |
| currency | string | |
| language | string | ISO language of the conversation, e.g. en, de, ja. Localizes country names and sets the language/currency of links and prices. |
| per_country | array | Optional overrides per country (gb and/or days, same ranges as above). |
| destinations* | array | Countries of the trip (2–5), any language or ISO codes, in travel order. |
Prices for several GB × days combinations of one country in one call (max 8 × 8), e.g. to compare with other providers or to find the best fit for a trip. Same server prices as quote_esim.
| Argument | Type | Description |
|---|---|---|
| gb* | array | Up to 8 whole-GB values, e.g. [1,3,5,10,20]. |
| days* | array | Up to 8 day values, e.g. [3,7,15,30]. |
| bucket | string | Optional language-region bucket the customer shops in, e.g. en-gb, de-de (sets currency and link locale). Defaults from language. |
| currency | string | |
| language | string | ISO language of the conversation, e.g. en, de, ja. Localizes country names and sets the language/currency of links and prices. |
| networks | array | Optional: operator names (or codes) from get_networks to include. Omit = the cheapest network of the country. The dearest included network sets the data price and every network beyond the first adds a small fee. |
| destination* | string | Country in ANY language or its ISO code, e.g. "Japan", "Japon", "jp". Map a city to its country first. One country per eSIM. |
Use while the customer is still deciding — "how much is …?": the exact price of one eSIM configuration (country, data GB 1–100, days 1–90, networks), the server price the customer would pay. Quote it as returned, never compute or scale it yourself. The result carries a buy_url for reference; when the customer says they want to buy, call start_checkout instead.
| Argument | Type | Description |
|---|---|---|
| gb* | integer | Data pool in whole GB for the whole trip (1–100). One pool, not per day. Not sure how much? Call recommend_config. |
| days* | integer | Validity days (1–90). |
| bucket | string | Optional language-region bucket the customer shops in, e.g. en-gb, de-de (sets currency and link locale). Defaults from language. |
| currency | string | |
| language | string | ISO language of the conversation, e.g. en, de, ja. Localizes country names and sets the language/currency of links and prices. |
| networks | array | Optional: operator names (or codes) from get_networks to include. Omit = the cheapest network of the country. The dearest included network sets the data price and every network beyond the first adds a small fee. |
| destination |
Use when the customer describes a trip instead of a size: country (or up to 5), days and how they use data (usage light / normal / heavy, or gb_per_day). Sizes the data pool from the data guide and returns three server-quoted configurations per country — exact, comfortable (×1.5) and generous (×2) — each with its price, networks, a one-line reason and its buy_url, plus trip totals and an optional budget check. Prices are the same as quote_esim. Give destination (one country) or destinations (several) — one of the two is required; a call without a country fails with invalid_argument.
| Argument | Type | Description |
|---|---|---|
| days* | integer | Days of the trip (per country for a multi-country trip; 1–90). |
| usage | string | light ≈ 0.5 GB/day, normal ≈ 1.5 GB/day (default), heavy ≈ 4 GB/day. |
| bucket | string | Optional language-region bucket the customer shops in, e.g. en-gb, de-de (sets currency and link locale). Defaults from language. |
| budget | number | Optional budget for the whole trip in the quoted currency; options above it are marked. |
| currency | string | |
| language | string | ISO language of the conversation, e.g. en, de, ja. Localizes country names and sets the language/currency of links and prices. |
Use only once the customer has decided to buy ("I'll take it", "how do I buy?"): the checkout handoff. Returns the buy_url to give the customer, the final price and a ready-to-send checkout block (next_step, payment_methods, delivery) — on the page they press "Get it" and pay securely. No account needed; the eSIM is delivered on screen and by e-mail right after payment. No in-chat order tracking, no discount codes. For prices while the customer is still comparing, use quote_esim.
| Argument | Type | Description |
|---|---|---|
| gb* | integer | Data pool in whole GB (1–100). |
| days* | integer | Validity days (1–90). |
| bucket | string | Optional language-region bucket the customer shops in, e.g. en-gb, de-de (sets currency and link locale). Defaults from language. |
| currency | string | |
| language | string | ISO language of the conversation, e.g. en, de, ja. Localizes country names and sets the language/currency of links and prices. |
| networks | array | Optional: operator names (or codes) from get_networks to include. Omit = the cheapest network of the country. The dearest included network sets the data price and every network beyond the first adds a small fee. |
{
"type": "object",
"required": [
"destinations"
],
"properties": {
"gb": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Data pool per country in whole GB (1–100). Omit = sized for normal use from the days (1.5 GB/day)."
},
"days": {
"type": "integer",
"maximum": 90,
"minimum": 1,
"description": "Validity days per country (1–90). Default 7."
},
"bucket": {
"type": "string",
"description": "Optional language-region bucket the customer shops in, e.g. en-gb, de-de (sets currency and link locale). Defaults from language."
},
"currency": {
"type": "string"
},
"language": {
"type": "string",
"description": "ISO language of the conversation, e.g. en, de, ja. Localizes country names and sets the language/currency of links and prices."
},
"per_country": {
"type": "array",
"items": {
"type": "object",
"properties": {
"gb": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Whole GB (1–100) for this country."
},
"days": {
"type": "integer",
"maximum": 90,
"minimum": 1,
"description": "Validity days (1–90) for this country."
},
"destination": {
"type": "string"
}
}
},
"description": "Optional overrides per country (gb and/or days, same ranges as above)."
},
"destinations": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 5,
"minItems": 2,
"description": "Countries of the trip (2–5), any language or ISO codes, in travel order."
}
}
}{
"type": "object",
"required": [
"destination",
"gb",
"days"
],
"properties": {
"gb": {
"type": "array",
"items": {
"type": "integer",
"maximum": 100,
"minimum": 1
},
"maxItems": 8,
"minItems": 1,
"description": "Up to 8 whole-GB values, e.g. [1,3,5,10,20]."
},
"days": {
"type": "array",
"items": {
"type": "integer",
"maximum": 90,
"minimum": 1
},
"maxItems": 8,
"minItems": 1,
"description": "Up to 8 day values, e.g. [3,7,15,30]."
},
"bucket": {
"type": "string",
"description": "Optional language-region bucket the customer shops in, e.g. en-gb, de-de (sets currency and link locale). Defaults from language."
},
"currency": {
"type": "string"
},
"language": {
"type": "string",
"description": "ISO language of the conversation, e.g. en, de, ja. Localizes country names and sets the language/currency of links and prices."
},
"networks": {
"type": "array",
"items": {
"type": "string"
},
"description": "Optional: operator names (or codes) from get_networks to include. Omit = the cheapest network of the country. The dearest included network sets the data price and every network beyond the first adds a small fee."
},
"destination": {
"type": "string",
"description": "Country in ANY language or its ISO code, e.g. \"Japan\", \"Japon\", \"jp\". Map a city to its country first. One country per eSIM."
}
}
}| string |
| Country in ANY language or its ISO code, e.g. "Japan", "Japon", "jp". Map a city to its country first. One country per eSIM. |
{
"type": "object",
"required": [
"destination",
"gb",
"days"
],
"properties": {
"gb": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Data pool in whole GB for the whole trip (1–100). One pool, not per day. Not sure how much? Call recommend_config."
},
"days": {
"type": "integer",
"maximum": 90,
"minimum": 1,
"description": "Validity days (1–90)."
},
"bucket": {
"type": "string",
"description": "Optional language-region bucket the customer shops in, e.g. en-gb, de-de (sets currency and link locale). Defaults from language."
},
"currency": {
"type": "string"
},
"language": {
"type": "string",
"description": "ISO language of the conversation, e.g. en, de, ja. Localizes country names and sets the language/currency of links and prices."
},
"networks": {
"type": "array",
"items": {
"type": "string"
},
"description": "Optional: operator names (or codes) from get_networks to include. Omit = the cheapest network of the country. The dearest included network sets the data price and every network beyond the first adds a small fee."
},
"destination": {
"type": "string",
"description": "Country in ANY language or its ISO code, e.g. \"Japan\", \"Japon\", \"jp\". Map a city to its country first. One country per eSIM."
}
}
}| networks |
| array |
| Optional: operator names (or codes) from get_networks to include. Omit = the cheapest network of the country. The dearest included network sets the data price and every network beyond the first adds a small fee. |
| gb_per_day | number | Optional: the customer's own estimate in GB per day (wins over usage). |
| destination | string | Country in ANY language or its ISO code, e.g. "Japan", "Japon", "jp". Map a city to its country first. One country per eSIM. Required unless destinations is given. |
| per_country | array | Optional days per country for a multi-country trip. |
| destinations | array | Several countries (max 5), any language or ISO codes. Use instead of destination for a multi-country trip. Required unless destination is given. |
{
"type": "object",
"required": [
"days"
],
"properties": {
"days": {
"type": "integer",
"maximum": 90,
"minimum": 1,
"description": "Days of the trip (per country for a multi-country trip; 1–90)."
},
"usage": {
"enum": [
"light",
"normal",
"heavy"
],
"type": "string",
"description": "light ≈ 0.5 GB/day, normal ≈ 1.5 GB/day (default), heavy ≈ 4 GB/day."
},
"bucket": {
"type": "string",
"description": "Optional language-region bucket the customer shops in, e.g. en-gb, de-de (sets currency and link locale). Defaults from language."
},
"budget": {
"type": "number",
"description": "Optional budget for the whole trip in the quoted currency; options above it are marked."
},
"currency": {
"type": "string"
},
"language": {
"type": "string",
"description": "ISO language of the conversation, e.g. en, de, ja. Localizes country names and sets the language/currency of links and prices."
},
"networks": {
"type": "array",
"items": {
"type": "string"
},
"description": "Optional: operator names (or codes) from get_networks to include. Omit = the cheapest network of the country. The dearest included network sets the data price and every network beyond the first adds a small fee."
},
"gb_per_day": {
"type": "number",
"maximum": 100,
"minimum": 0.1,
"description": "Optional: the customer's own estimate in GB per day (wins over usage)."
},
"destination": {
"type": "string",
"description": "Country in ANY language or its ISO code, e.g. \"Japan\", \"Japon\", \"jp\". Map a city to its country first. One country per eSIM. Required unless destinations is given."
},
"per_country": {
"type": "array",
"items": {
"type": "object",
"properties": {
"days": {
"type": "integer"
},
"destination": {
"type": "string"
}
}
},
"description": "Optional days per country for a multi-country trip."
},
"destinations": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 5,
"description": "Several countries (max 5), any language or ISO codes. Use instead of destination for a multi-country trip. Required unless destination is given."
}
}
}| destination* |
| string |
| Country in ANY language or its ISO code, e.g. "Japan", "Japon", "jp". Map a city to its country first. One country per eSIM. |
{
"type": "object",
"required": [
"destination",
"gb",
"days"
],
"properties": {
"gb": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Data pool in whole GB (1–100)."
},
"days": {
"type": "integer",
"description": "Validity days (1–90)."
},
"bucket": {
"type": "string",
"description": "Optional language-region bucket the customer shops in, e.g. en-gb, de-de (sets currency and link locale). Defaults from language."
},
"currency": {
"type": "string"
},
"language": {
"type": "string",
"description": "ISO language of the conversation, e.g. en, de, ja. Localizes country names and sets the language/currency of links and prices."
},
"networks": {
"type": "array",
"items": {
"type": "string"
},
"description": "Optional: operator names (or codes) from get_networks to include. Omit = the cheapest network of the country. The dearest included network sets the data price and every network beyond the first adds a small fee."
},
"destination": {
"type": "string",
"description": "Country in ANY language or its ISO code, e.g. \"Japan\", \"Japon\", \"jp\". Map a city to its country first. One country per eSIM."
}
}
}