Travel eSIMs for 130+ countries: plan a trip, compare plans, buy, install and diagnose.
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, tablet or watch model supports eSIM, from a list of known models, with how to check on the device itself.
e.g. "iPhone 13", "Galaxy S23", "Pixel 8"
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http mcp https://mcp.globalcell.dev
Whether a phone, tablet or watch model supports eSIM, from a list of known models, with how to check on the device itself.
| Argument | Type | Description |
|---|---|---|
| model* | string | e.g. "iPhone 13", "Galaxy S23", "Pixel 8" |
{
"type": "object",
"required": [
"model"
],
"properties": {
"model": {
"type": "string",
"maxLength": 80,
"minLength": 2,
"description": "e.g. \"iPhone 13\", \"Galaxy S23\", \"Pixel 8\""
}
},
"additionalProperties": false
}Order status. Once "fulfilled", a new eSIM includes its install links, QR code link and manual codes.
| Argument | Type | Description |
|---|---|---|
| orderId* | string | |
| orderToken* | string |
{
"type": "object",
"required": [
"orderId",
"orderToken"
],
"properties": {
"orderId": {
"type": "string",
"maxLength": 64
},
"orderToken": {
"type": "string",
"maxLength": 64
}
},
"additionalProperties": false
}Data used and left on the eSIM of a fulfilled order, per package, with start and expiry dates.
| Argument | Type | Description |
|---|---|---|
| orderId* | string | |
| orderToken* | string |
{
"type": "object",
"required": [
"orderId",
"orderToken"
],
"properties": {
"orderId": {
"type": "string",
"maxLength": 64
},
"orderToken": {
"type": "string",
"maxLength": 64
}
},
"additionalProperties": false
}Side-by-side comparison of 2 to 5 plans: data, days, price per GB and per day, countries and hotspot.
| Argument | Type | Description |
|---|---|---|
| skus* | array | |
| currency* | string |
{
"type": "object",
"required": [
"skus",
"currency"
],
"properties": {
"skus": {
"type": "array",
"items": {
"type": "string",
"maxLength": 64
},
"maxItems": 5,
"minItems": 2
},
"currency": {
"enum": [
"EUR",
"USDT"
],
"type": "string"
}
},
"additionalProperties": false
}The mobile networks GLOBALCELL eSIMs use in a country, how many plans work there and the lowest price.
| Argument | Type | Description |
|---|---|---|
| country* | string | ISO code like "SK" or a country name like "Slovakia" |
{
"type": "object",
"required": [
"country"
],
"properties": {
"country": {
"type": "string",
"maxLength": 60,
"minLength": 2,
"description": "ISO code like \"SK\" or a country name like \"Slovakia\""
}
},
"additionalProperties": false
}Creates an order and returns checkoutUrl, the page where the user pays. Nothing is charged by this call. Confirm the plan, activation and total with the user first. Returns orderId and orderToken for check_order.
| Argument | Type | Description |
|---|---|---|
| sku* | string | |
| type* | string | |
| iccid | string | Required for type "package": the ICCID of the eSIM to add data to |
| confirm | boolean | Leave out first to get a preview; call again with true once the user agreed |
| currency* | string | EUR or USDT |
| activation | any | Default { "mode": "now" } |
| customerEmail | string | Optional; for the receipt |
{
"type": "object",
"required": [
"type",
"sku",
"currency"
],
"properties": {
"sku": {
"type": "string",
"maxLength": 64
},
"type": {
"enum": [
"new_esim",
"package"
],
"type": "string"
},
"iccid": {
"type": "string",
"pattern": "^[0-9]{18,22}$",
"description": "Required for type \"package\": the ICCID of the eSIM to add data to"
},
"confirm": {
"type": "boolean",
"description": "Leave out first to get a preview; call again with true once the user agreed"
},
"currency": {
"enum": [
"EUR",
"USDT"
],
"type": "string",
"description": "EUR or USDT"
},
"activation": {
"oneOf": [
{
"type": "object",
"required": [
"mode"
],
"properties": {
"mode": {
"type": "string",
"const": "now"
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"mode"
],
"properties": {
"mode": {
"type": "string",
"const": "on_arrival"
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"mode",
"startAt"
],
"properties": {
"mode": {
"type": "string",
"const": "scheduled"
},
"endAt": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
},
"startAt": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
}
},
"additionalProperties": false
}
],
"description": "Default { \"mode\": \"now\" }"
},
"customerEmail": {
"type": "string",
"format": "email",
"pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
"maxLength": 254,
"description": "Optional; for the receipt"
}
},
"additionalProperties": false
}Why an eSIM may not work: line state, every package (started, data left, expired) and the last mobile network the phone registered on, with the likely cause and the fix. For the eSIM of a fulfilled order.
| Argument | Type | Description |
|---|---|---|
| orderId* | string | |
| orderToken* | string |
{
"type": "object",
"required": [
"orderId",
"orderToken"
],
"properties": {
"orderId": {
"type": "string",
"maxLength": 64
},
"orderToken": {
"type": "string",
"maxLength": 64
}
},
"additionalProperties": false
}One plan with prices and every country and mobile network it covers.
| Argument | Type | Description |
|---|---|---|
| sku* | string |
{
"type": "object",
"required": [
"sku"
],
"properties": {
"sku": {
"type": "string",
"maxLength": 64
}
},
"additionalProperties": false
}Step-by-step eSIM installation and first-use help for iPhone or Android, and fixes for common problems.
| Argument | Type | Description |
|---|---|---|
| problem | string | Leave empty for the install steps |
| platform* | string |
{
"type": "object",
"required": [
"platform"
],
"properties": {
"problem": {
"enum": [
"install",
"no_internet",
"no_signal",
"qr_wont_scan"
],
"type": "string",
"description": "Leave empty for the install steps"
},
"platform": {
"enum": [
"iphone",
"android"
],
"type": "string"
}
},
"additionalProperties": false
}Plans that work in a country or region, cheapest first, with optional filters for data, days and price.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Default 30 |
| region | string | Region name from search_destinations, e.g. "Europe+" |
| country | string | ISO code like "SK" or a country name like "Slovakia" |
| minDays | integer | |
| purpose | string | new_esim: a new eSIM. package: add data to an existing eSIM |
| currency | string | Show and sort prices in this currency (EUR or USDT) |
| minDataGB | number | |
| maxPriceMinor | integer | Upper price limit in minor units (cents) of the chosen currency |
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Default 30"
},
"region": {
"type": "string",
"maxLength": 60,
"description": "Region name from search_destinations, e.g. \"Europe+\""
},
"country": {
"type": "string",
"maxLength": 60,
"minLength": 2,
"description": "ISO code like \"SK\" or a country name like \"Slovakia\""
},
"minDays": {
"type": "integer",
"maximum": 365,
"minimum": 1
},
"purpose": {
"enum": [
"new_esim",
"package"
],
"type": "string",
"description": "new_esim: a new eSIM. package: add data to an existing eSIM"
},
"currency": {
"enum": [
"EUR",
"USDT"
],
"type": "string",
"description": "Show and sort prices in this currency (EUR or USDT)"
},
"minDataGB": {
"type": "number",
"maximum": 1000,
"minimum": 0
},
"maxPriceMinor": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Upper price limit in minor units (cents) of the chosen currency",
"exclusiveMinimum": 0
}
},
"additionalProperties": false
}Plans for a trip to one or more countries: estimates the data needed from the days and how the user uses their phone, then suggests the best-value plans that cover every country for the whole trip.
| Argument | Type | Description |
|---|---|---|
| days* | integer | Length of the trip in days |
| usage | string | light: maps, messaging, email, a little browsing; normal: plus social media, photos and some music; heavy: plus video, video calls or sharing data with a laptop. Default normal |
| dataGB | number | Data the user wants, if they know it; overrides usage |
| newEsim | boolean | Default true. false: the user already has a GLOBALCELL eSIM |
| currency | string | Show and sort prices in this currency (EUR or USDT) |
| countries* | array | Every country the user will visit |
{
"type": "object",
"required": [
"countries",
"days"
],
"properties": {
"days": {
"type": "integer",
"maximum": 365,
"minimum": 1,
"description": "Length of the trip in days"
},
"usage": {
"enum": [
"light",
"normal",
"heavy"
],
"type": "string",
"description": "light: maps, messaging, email, a little browsing; normal: plus social media, photos and some music; heavy: plus video, video calls or sharing data with a laptop. Default normal"
},
"dataGB": {
"type": "number",
"maximum": 1000,
"minimum": 0.1,
"description": "Data the user wants, if they know it; overrides usage"
},
"newEsim": {
"type": "boolean",
"description": "Default true. false: the user already has a GLOBALCELL eSIM"
},
"currency": {
"enum": [
"EUR",
"USDT"
],
"type": "string",
"description": "Show and sort prices in this currency (EUR or USDT)"
},
"countries": {
"type": "array",
"items": {
"type": "string",
"maxLength": 60,
"minLength": 2,
"description": "ISO code like \"SK\" or a country name like \"Slovakia\""
},
"maxItems": 15,
"minItems": 1,
"description": "Every country the user will visit"
}
},
"additionalProperties": false
}Countries and regions with eSIM plans, with the lowest price per currency. Leave query empty to list all.
| Argument | Type | Description |
|---|---|---|
| query | string | Part of a country or region name, or an ISO code |
{
"type": "object",
"properties": {
"query": {
"type": "string",
"maxLength": 60,
"description": "Part of a country or region name, or an ISO code"
}
},
"additionalProperties": false
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 4, 2026.