Search prepaid travel eSIM data plans for 200+ countries with live prices and 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.
Full facts for one IbiPoint plan by product id: coverage with networks per country, data and speed rules, activation and validity rules, top-up, tethering, price with basis (per-day plans: price_30_days and price_max), reviews and link — quoted in the customer's bucket or currency when given.
Product id from search_esim_plans or recommend_plan.
Optional language-region bucket the customer shops in, e.g. "en-gb", "de-de". Wins over language; prices and links are quoted in it.
Optional ISO 4217 code. Every price in the result is quoted in it.
ISO language of the conversation, e.g. en, de, ja. Plan names and country names come back in it when available. Bare "en" is quoted in en-us / USD.
Full facts for one IbiPoint plan by product id: coverage with networks per country, data and speed rules, activation and validity rules, top-up, tethering, price with basis (per-day plans: price_30_days and price_max), reviews and link — quoted in the customer's bucket or currency when given.
| Argument | Type | Description |
|---|---|---|
| bucket | string | Optional language-region bucket the customer shops in, e.g. "en-gb", "de-de". Wins over language; prices and links are quoted in it. |
| currency | string | Optional ISO 4217 code. Every price in the result is quoted in it. |
| language | string | ISO language of the conversation, e.g. en, de, ja. Plan names and country names come back in it when available. Bare "en" is quoted in en-us / USD. |
| product_id* | integer | Product id from search_esim_plans or recommend_plan. |
{
"type": "object",
"required": [
"product_id"
],
"properties": {
"bucket": {
"type": "string",
"description": "Optional language-region bucket the customer shops in, e.g. \"en-gb\", \"de-de\". Wins over language; prices and links are quoted in it."
},
"currency": {
"type": "string",
"description": "Optional ISO 4217 code. Every price in the result is quoted in it."
},
"language": {
"type": "string",
"description": "ISO language of the conversation, e.g. en, de, ja. Plan names and country names come back in it when available. Bare \"en\" is quoted in en-us / USD."
},
"product_id": {
"type": "integer",
"description": "Product id from search_esim_plans or recommend_plan."
}
}
}How IbiPoint works, in the shop's own words: delivery and installation, device requirements, payment methods, money-back guarantee, top-up, hotspot, support and company details. Use for any "how / when / what if" question that is not about one specific plan.
No arguments.
{
"type": "object",
"properties": {}
}Turn a trip into up to three plan recommendations: countries (1-5, any language), number of days and how much data the traveller uses. Each fit carries the full plan facts, the total price for the whole trip and a one-sentence reason built only from catalogue facts. Use this first whenever the user describes a trip rather than asks for a list.
| Argument | Type | Description |
|---|---|---|
| days* | integer | Trip length in days. |
| usage | string | light ≈ 0.5 GB/day (maps, messaging), normal ≈ 1.5 GB/day (social, some video), heavy ≈ 4 GB/day (video, hotspot). Default normal. |
| bucket | string | Optional language-region bucket the customer shops in, e.g. "en-gb", "de-de". Wins over language; prices and links are quoted in it. |
| budget | number | Optional maximum total for the trip, in the result currency. |
| currency | string | Optional ISO 4217 code. Every price in the result is quoted in it. |
| language | string | ISO language of the conversation, e.g. en, de, ja. Plan names and country names come back in it when available. Bare "en" is quoted in en-us / USD. |
| countries* | array |
Find IbiPoint eSIM plans for one destination or several (countries or regions, any language). Returns the best-value plans first with full facts, coverage lists and a direct link; multi-country plans that include the destination are returned too and marked covers_via. Use when a user wants mobile data abroad; use recommend_plan when they describe a whole trip.
| Argument | Type | Description |
|---|---|---|
| sort | string | value = best price per GB / cheapest Flex first (default); price = cheapest first; data = most data first. |
| type | string | Plan type. Default any. |
| limit | integer | Plans to return. Default 10; all_plans_url lists everything. |
| bucket | string | Optional language-region bucket the customer shops in, e.g. "en-gb", "de-de". Wins over language; prices and links are quoted in it. |
| currency | string | Optional ISO 4217 code. Every price in the result is quoted in it. |
| language | string | ISO language of the conversation, e.g. en, de, ja. Plan names and country names come back in it when available. Bare "en" is quoted in en-us / USD. |
| min_days | integer | Only plans valid for at least this many days (Unlimited Flex counts when days_range allows it). |
Hand the customer to the IbiPoint shop to buy one plan. Returns buy_url (the product page where they tap Buy now and pay securely — card, Apple Pay, Google Pay, PayPal, Amazon Pay, Klarna or a local method such as iDEAL | Wero, Bancontact, BLIK or Pix, with an optional discount code) plus the plan name and price in the customer's bucket or currency. No account needed; the eSIM is emailed right after payment. There is no in-chat order tracking.
| Argument | Type | Description |
|---|---|---|
| days | integer | Unlimited Flex only: the duration the customer wants; the returned total_for_days is the checkout total for it. |
| bucket | string | Optional language-region bucket the customer shops in, e.g. "en-gb", "de-de". Wins over language; prices and links are quoted in it. |
| currency | string | Optional ISO 4217 code. Every price in the result is quoted in it. |
| language | string | ISO language of the conversation, e.g. en, de, ja. Plan names and country names come back in it when available. Bare "en" is quoted in en-us / USD. |
| product_id* | integer | Product id to buy. |
{
"type": "object",
"required": [
"product_id"
],
"properties": {
"days": {
"type": "integer",
"minimum": 1,
"description": "Unlimited Flex only: the duration the customer wants; the returned total_for_days is the checkout total for it."
},
"bucket": {
"type": "string",
"description": "Optional language-region bucket the customer shops in, e.g. \"en-gb\", \"de-de\". Wins over language; prices and links are quoted in it."
},
"currency": {
"type": "string",
"description": "Optional ISO 4217 code. Every price in the result is quoted in it."
},
"language": {
"type": "string",
"description": "ISO language of the conversation, e.g. en, de, ja. Plan names and country names come back in it when available. Bare \"en\" is quoted in en-us / USD."
},
"product_id": {
"type": "integer",
"description": "Product id to buy."
}
}
}| Countries or regions of the trip, any language. |
| gb_per_day | number | Overrides usage with an explicit daily need in GB. |
{
"type": "object",
"required": [
"countries",
"days"
],
"properties": {
"days": {
"type": "integer",
"maximum": 365,
"minimum": 1,
"description": "Trip length in days."
},
"usage": {
"enum": [
"light",
"normal",
"heavy"
],
"type": "string",
"description": "light ≈ 0.5 GB/day (maps, messaging), normal ≈ 1.5 GB/day (social, some video), heavy ≈ 4 GB/day (video, hotspot). Default normal."
},
"bucket": {
"type": "string",
"description": "Optional language-region bucket the customer shops in, e.g. \"en-gb\", \"de-de\". Wins over language; prices and links are quoted in it."
},
"budget": {
"type": "number",
"minimum": 0,
"description": "Optional maximum total for the trip, in the result currency."
},
"currency": {
"type": "string",
"description": "Optional ISO 4217 code. Every price in the result is quoted in it."
},
"language": {
"type": "string",
"description": "ISO language of the conversation, e.g. en, de, ja. Plan names and country names come back in it when available. Bare \"en\" is quoted in en-us / USD."
},
"countries": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 5,
"minItems": 1,
"description": "Countries or regions of the trip, any language."
},
"gb_per_day": {
"type": "number",
"minimum": 0.1,
"description": "Overrides usage with an explicit daily need in GB."
}
}
}| destination | string | Country or region in any language, e.g. "Thailand", "Japon", "Europa", or a 2-letter ISO code. For a city, pass its country. |
| destinations | array | Several countries for one trip; only plans covering ALL of them are returned. Overrides destination. |
{
"type": "object",
"required": [],
"properties": {
"sort": {
"enum": [
"value",
"price",
"data"
],
"type": "string",
"description": "value = best price per GB / cheapest Flex first (default); price = cheapest first; data = most data first."
},
"type": {
"enum": [
"data_pack",
"unlimited_flex",
"any"
],
"type": "string",
"description": "Plan type. Default any."
},
"limit": {
"type": "integer",
"maximum": 50,
"minimum": 1,
"description": "Plans to return. Default 10; all_plans_url lists everything."
},
"bucket": {
"type": "string",
"description": "Optional language-region bucket the customer shops in, e.g. \"en-gb\", \"de-de\". Wins over language; prices and links are quoted in it."
},
"currency": {
"type": "string",
"description": "Optional ISO 4217 code. Every price in the result is quoted in it."
},
"language": {
"type": "string",
"description": "ISO language of the conversation, e.g. en, de, ja. Plan names and country names come back in it when available. Bare \"en\" is quoted in en-us / USD."
},
"min_days": {
"type": "integer",
"minimum": 1,
"description": "Only plans valid for at least this many days (Unlimited Flex counts when days_range allows it)."
},
"destination": {
"type": "string",
"description": "Country or region in any language, e.g. \"Thailand\", \"Japon\", \"Europa\", or a 2-letter ISO code. For a city, pass its country."
},
"destinations": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 5,
"description": "Several countries for one trip; only plans covering ALL of them are returned. Overrides destination."
}
}
}