Travel eSIMs for 200+ countries: live prices, phone check, checkout link, one-tap install.
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.
Whether a phone model supports eSIM, from the models eSIMpass documents (Apple, Samsung, Google). The phone must also be carrier-unlocked; a model not in the list is not necessarily incompatible.
Phone model, e.g. "iPhone 15 Pro", "Galaxy S24", "Pixel 8".
Whether a phone model supports eSIM, from the models eSIMpass documents (Apple, Samsung, Google). The phone must also be carrier-unlocked; a model not in the list is not necessarily incompatible.
| Argument | Type | Description |
|---|---|---|
| device* | string | Phone model, e.g. "iPhone 15 Pro", "Galaxy S24", "Pixel 8". |
{
"type": "object",
"required": [
"device"
],
"properties": {
"device": {
"type": "string",
"description": "Phone model, e.g. \"iPhone 15 Pro\", \"Galaxy S24\", \"Pixel 8\"."
}
},
"additionalProperties": false
}A checkout URL on esimpass.com with one plan already selected. It does not pay or place an order: the traveller opens it, enters their email and pays (card, Apple Pay, Google Pay, PayPal or crypto). Minutes later the confirmation page has an Install button (one tap on iPhone and Android), a QR code and a private eSIM link. Takes a plan name as get_plans returns it.
| Argument | Type | Description |
|---|---|---|
| plan* | string | The plan name from get_plans, e.g. "7 Days - 3GB Data" or "Unlimited - 10 Days". |
| currency | string | ISO 4217 code to price in, e.g. "EUR", "USD", "GBP". Defaults to this site's currency. |
| quantity | integer | How many eSIMs (one per traveller). Default 1. |
| travel_end | string | Unlimited plans only, optional: last travel day, YYYY-MM-DD. |
| destination* | string | The destination: a slug from search_destinations ("esim-japan", "esim-europe", "esim-tokyo") or its English name ("Japan"). |
| partner_code | string | Optional eSIMpass Partner Program code (letters and digits): the sale is credited to that partner. |
| travel_start | string | Unlimited plans only, optional: first travel day, YYYY-MM-DD. For some destinations the plan starts on this date. |
{
"type": "object",
"required": [
"destination",
"plan"
],
"properties": {
"plan": {
"type": "string",
"description": "The plan name from get_plans, e.g. \"7 Days - 3GB Data\" or \"Unlimited - 10 Days\"."
},
"currency": {
"type": "string",
"description": "ISO 4217 code to price in, e.g. \"EUR\", \"USD\", \"GBP\". Defaults to this site's currency."
},
"quantity": {
"type": "integer",
"maximum": 10,
"minimum": 1,
"description": "How many eSIMs (one per traveller). Default 1."
},
"travel_end": {
"type": "string",
"description": "Unlimited plans only, optional: last travel day, YYYY-MM-DD."
},
"destination": {
"type": "string",
"description": "The destination: a slug from search_destinations (\"esim-japan\", \"esim-europe\", \"esim-tokyo\") or its English name (\"Japan\")."
},
"partner_code": {
"type": "string",
"description": "Optional eSIMpass Partner Program code (letters and digits): the sale is credited to that partner."
},
"travel_start": {
"type": "string",
"description": "Unlimited plans only, optional: first travel day, YYYY-MM-DD. For some destinations the plan starts on this date."
}
},
"additionalProperties": false
}One destination as a document: plans, live prices and a checkout link per plan. The id comes from search.
| Argument | Type | Description |
|---|---|---|
| id* | string | A destination id from search, e.g. "esim-japan". |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "A destination id from search, e.g. \"esim-japan\"."
}
},
"additionalProperties": false
}After the traveller has paid: one-tap install links for their eSIM, for iPhone (iOS 17.4+) and Android (10+), plus the manual-entry codes. Takes the private eSIM link from the traveller's order confirmation page (https://www.esimpass.com/…/my-esim/…); any other value is refused. Each install link installs the eSIM when opened on the phone that will use it. The result is that traveller's private eSIM details.
| Argument | Type | Description |
|---|---|---|
| esim_link* | string | The private eSIM link from the order confirmation page, or the token at its end. |
{
"type": "object",
"required": [
"esim_link"
],
"properties": {
"esim_link": {
"type": "string",
"description": "The private eSIM link from the order confirmation page, or the token at its end."
}
},
"additionalProperties": false
}The plans on sale for one destination right now, with live prices, data, validity and the product page URL. For a regional plan it also lists every country covered; a country missing from that list is not covered. Prices and plans change, so these are the current ones.
| Argument | Type | Description |
|---|---|---|
| currency | string | ISO 4217 code to price in, e.g. "EUR", "USD", "GBP". Defaults to this site's currency. |
| unlimited | boolean | true for unlimited-data plans only, false for fixed-data plans only; omit for both. |
| destination* | string | The destination: a slug from search_destinations ("esim-japan", "esim-europe", "esim-tokyo") or its English name ("Japan"). |
{
"type": "object",
"required": [
"destination"
],
"properties": {
"currency": {
"type": "string",
"description": "ISO 4217 code to price in, e.g. \"EUR\", \"USD\", \"GBP\". Defaults to this site's currency."
},
"unlimited": {
"type": "boolean",
"description": "true for unlimited-data plans only, false for fixed-data plans only; omit for both."
},
"destination": {
"type": "string",
"description": "The destination: a slug from search_destinations (\"esim-japan\", \"esim-europe\", \"esim-tokyo\") or its English name (\"Japan\")."
}
},
"additionalProperties": false
}Search eSIMpass destinations by place name, in the shape ChatGPT connectors use. Returns ids that fetch takes.
| Argument | Type | Description |
|---|---|---|
| query* | string | Place name. |
{
"type": "object",
"required": [
"query"
],
"properties": {
"query": {
"type": "string",
"description": "Place name."
}
},
"additionalProperties": false
}Find the eSIMpass travel eSIM for a place: a country ("Japan"), a region ("Europe", "Asia", "Global") or a city ("Tokyo", which is covered by its country's plans). Returns matching destinations with the slug that get_plans and create_checkout_link take.
| Argument | Type | Description |
|---|---|---|
| query* | string | Place name, in English or the traveller's language. |
{
"type": "object",
"required": [
"query"
],
"properties": {
"query": {
"type": "string",
"description": "Place name, in English or the traveller's language."
}
},
"additionalProperties": false
}