Search travel eSIM plans, check devices, and create secure customer-paid checkout links.
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.
Read the versioned agreement before saving a payment method for future off-session charges.
This tool takes no arguments.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
claude mcp add --transport http mono-esim https://www.monoesim.app/mcp
Read the versioned agreement before saving a payment method for future off-session charges.
No arguments.
{
"type": "object",
"required": [],
"properties": {},
"additionalProperties": false
}Whether a phone model supports eSIM (e.g. "iPhone 12 mini", "Galaxy S21", "Pixel 7").
| Argument | Type | Description |
|---|---|---|
| model* | string |
{
"type": "object",
"required": [
"model"
],
"properties": {
"model": {
"type": "string"
}
},
"additionalProperties": false
}Side-by-side comparison of 2–10 plans: cheapest, best price per GB, longest validity.
| Argument | Type | Description |
|---|---|---|
| lang | string | Language for names and texts (default en). |
| plan_ids* | array |
{
"type": "object",
"required": [
"plan_ids"
],
"properties": {
"lang": {
"enum": [
"en",
"de",
"ru",
"uk"
],
"type": "string",
"description": "Language for names and texts (default en)."
},
"plan_ids": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 10,
"minItems": 2
}
},
"additionalProperties": false
}Offline sandbox only. Record authorized consent and immutable spending limits; create a SetupIntent for off_session use. Complete setup with Stripe.js. No PAN/CVC or human email is collected by this API.
| Argument | Type | Description |
|---|---|---|
| valid_days | integer | |
| per_day_cents* | integer | |
| consent_version* | string | |
| idempotency_key | string | |
| payment_authorized* | boolean | |
| per_purchase_cents* | integer |
{
"type": "object",
"required": [
"payment_authorized",
"consent_version",
"per_purchase_cents",
"per_day_cents"
],
"properties": {
"valid_days": {
"type": "integer",
"maximum": 30,
"minimum": 1
},
"per_day_cents": {
"type": "integer",
"maximum": 1000000,
"minimum": 1
},
"consent_version": {
"type": "string"
},
"idempotency_key": {
"type": "string"
},
"payment_authorized": {
"type": "boolean"
},
"per_purchase_cents": {
"type": "integer",
"maximum": 100000,
"minimum": 1
}
},
"additionalProperties": false
}Step 2 of buying — ONLY after the customer explicitly agreed to plan and price. Returns a secure Stripe payment link the customer opens and pays themselves; the eSIM is issued automatically after payment. Requires a unique idempotency_key per purchase (reuse it on retries — never creates a second order).
| Argument | Type | Description |
|---|---|---|
| lang | string | Language for names and texts (default en). |
| email* | string | Customer email; the eSIM and receipt are sent there. |
| quote_id* | string | From prepare_order. |
| terms_accepted* | boolean | true only if the customer accepted immediate delivery and the loss of the withdrawal right. |
| idempotency_key | string | Unique per purchase (MCP). REST: send the Idempotency-Key header instead. |
| customer_confirmed* | boolean | true only if the customer explicitly confirmed this purchase. |
{
"type": "object",
"required": [
"quote_id",
"email",
"customer_confirmed",
"terms_accepted"
],
"properties": {
"lang": {
"enum": [
"en",
"de",
"ru",
"uk"
],
"type": "string",
"description": "Language for names and texts (default en)."
},
"email": {
"type": "string",
"format": "email",
"description": "Customer email; the eSIM and receipt are sent there."
},
"quote_id": {
"type": "string",
"description": "From prepare_order."
},
"terms_accepted": {
"type": "boolean",
"description": "true only if the customer accepted immediate delivery and the loss of the withdrawal right."
},
"idempotency_key": {
"type": "string",
"description": "Unique per purchase (MCP). REST: send the Idempotency-Key header instead."
},
"customer_confirmed": {
"type": "boolean",
"description": "true only if the customer explicitly confirmed this purchase."
}
},
"additionalProperties": false
}Create an offline test Stripe Checkout. Balance changes only after verified payment, never on redirect. Reuse idempotency_key on retries. No real funds.
| Argument | Type | Description |
|---|---|---|
| amount_cents* | integer | |
| idempotency_key | string |
{
"type": "object",
"required": [
"amount_cents"
],
"properties": {
"amount_cents": {
"type": "integer",
"maximum": 100000,
"minimum": 100
},
"idempotency_key": {
"type": "string"
}
},
"additionalProperties": false
}Payment and delivery status of an order. After delivery returns the eSIM: activation code (LPA), QR code link, iPhone one-tap install link, install steps and remaining data.
| Argument | Type | Description |
|---|---|---|
| order_id* | string | |
| order_token* | string | |
| include_usage | boolean |
{
"type": "object",
"required": [
"order_id",
"order_token"
],
"properties": {
"order_id": {
"type": "string"
},
"order_token": {
"type": "string"
},
"include_usage": {
"type": "boolean"
}
},
"additionalProperties": false
}Current price, availability and terms of one plan.
| Argument | Type | Description |
|---|---|---|
| lang | string | Language for names and texts (default en). |
| plan_id* | string | |
| destination | string | Optional destination slug (faster). |
{
"type": "object",
"required": [
"plan_id"
],
"properties": {
"lang": {
"enum": [
"en",
"de",
"ru",
"uk"
],
"type": "string",
"description": "Language for names and texts (default en)."
},
"plan_id": {
"type": "string"
},
"destination": {
"type": "string",
"description": "Optional destination slug (faster)."
}
},
"additionalProperties": false
}Key purchase terms (delivery, validity, withdrawal right, payment) and legal links. Show these to the customer before buying.
| Argument | Type | Description |
|---|---|---|
| lang | string | Language for names and texts (default en). |
{
"type": "object",
"required": [],
"properties": {
"lang": {
"enum": [
"en",
"de",
"ru",
"uk"
],
"type": "string",
"description": "Language for names and texts (default en)."
}
},
"additionalProperties": false
}Read your own sandbox wallet, limits and paginated ledger. Requires your sandbox API key.
| Argument | Type | Description |
|---|---|---|
| offset | integer |
{
"type": "object",
"required": [],
"properties": {
"offset": {
"type": "integer",
"minimum": 0
}
},
"additionalProperties": false
}All countries and multi-country regions with an eSIM offer, each with its starting price in EUR.
| Argument | Type | Description |
|---|---|---|
| lang | string | Language for names and texts (default en). |
| type | string | Filter by type. |
{
"type": "object",
"required": [],
"properties": {
"lang": {
"enum": [
"en",
"de",
"ru",
"uk"
],
"type": "string",
"description": "Language for names and texts (default en)."
},
"type": {
"enum": [
"country",
"region"
],
"type": "string",
"description": "Filter by type."
}
},
"additionalProperties": false
}Actual enabled methods, environments and buyer modes. Planned adapters cannot accept payments.
No arguments.
{
"type": "object",
"required": [],
"properties": {},
"additionalProperties": false
}Step 1 of buying. Locks the current price for 30 minutes and returns a quote_id plus what you must confirm with the customer. No payment, no side effects.
| Argument | Type | Description |
|---|---|---|
| lang | string | Language for names and texts (default en). |
| plan_id* | string | |
| destination | string |
{
"type": "object",
"required": [
"plan_id"
],
"properties": {
"lang": {
"enum": [
"en",
"de",
"ru",
"uk"
],
"type": "string",
"description": "Language for names and texts (default en)."
},
"plan_id": {
"type": "string"
},
"destination": {
"type": "string"
}
},
"additionalProperties": false
}Purchase from a signed quote using an explicitly selected payment method. Query payment_capabilities first. Autonomous modes never silently fall back to human checkout. Reuse the same idempotency key on retries. Stripe Checkout still requires customer confirmation, terms and email.
| Argument | Type | Description |
|---|---|---|
| lang | string | Language for names and texts (default en). |
| string | ||
| quote_id* | string | |
| buyer_mode* | string | |
| payment_method* | string | |
| terms_accepted | boolean | |
| idempotency_key | string | |
| authorization_id | string | Required for stripe_off_session; from create_card_authorization. |
| customer_confirmed | boolean |
Offline sandbox only. Creates a machine key and zero balance without email or human registration. Store the returned key securely; shown once.
| Argument | Type | Description |
|---|---|---|
| name* | string |
{
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"maxLength": 80,
"minLength": 1
}
},
"additionalProperties": false
}Prevent new purchases using this permission. Previously reserved payments can still settle and require reconciliation.
| Argument | Type | Description |
|---|---|---|
| authorization_id* | string |
{
"type": "object",
"required": [
"authorization_id"
],
"properties": {
"authorization_id": {
"type": "string"
}
},
"additionalProperties": false
}Immediately disable this machine's key. Existing ledger is retained. Subsequent requests using this key will fail.
No arguments.
{
"type": "object",
"required": [],
"properties": {},
"additionalProperties": false
}Find eSIM data plans for a trip. `destination` accepts a country, city, region or ISO code in any language (e.g. "Japan", "Tokio", "Europe", "TR"). Filter by trip length, data need and budget; results are sorted (cheapest first by default) with a recommendation.
| Argument | Type | Description |
|---|---|---|
| days | integer | Minimum validity in days (trip length). |
| lang | string | Language for names and texts (default en). |
| sort | string | |
| limit | integer | |
| data_gb | number | Minimum data in GB. |
| unlimited | boolean | Only unlimited (true) or only fixed-data (false) plans. |
| destination* | string | Country, city, region or ISO-2 code. |
| max_price_eur | number | Maximum price in EUR. |
{
"type": "object",
"required": [
"destination"
],
"properties": {
"days": {
"type": "integer",
"maximum": 365,
"minimum": 1,
"description": "Minimum validity in days (trip length)."
},
"lang": {
"enum": [
"en",
"de",
"ru",
"uk"
],
"type": "string",
"description": "Language for names and texts (default en)."
},
"sort": {
"enum": [
"price",
"price_per_gb",
"validity"
],
"type": "string"
},
"limit": {
"type": "integer",
"maximum": 50,
"minimum": 1
},
"data_gb": {
"type": "number",
"minimum": 0.1,
"description": "Minimum data in GB."
},
"unlimited": {
"type": "boolean",
"description": "Only unlimited (true) or only fixed-data (false) plans."
},
"destination": {
"type": "string",
"description": "Country, city, region or ISO-2 code."
},
"max_price_eur": {
"type": "number",
"minimum": 0,
"description": "Maximum price in EUR."
}
},
"additionalProperties": false
}Set this sandbox machine's per-purchase and daily gross spending limits in integer EUR cents. Zero blocks spending. These are self-managed sandbox limits, not a delegated owner's authorization policy.
| Argument | Type | Description |
|---|---|---|
| per_day_cents* | integer | |
| per_purchase_cents* | integer |
{
"type": "object",
"required": [
"per_purchase_cents",
"per_day_cents"
],
"properties": {
"per_day_cents": {
"type": "integer",
"maximum": 1000000,
"minimum": 0
},
"per_purchase_cents": {
"type": "integer",
"maximum": 1000000,
"minimum": 0
}
},
"additionalProperties": false
}Retrieve and verify your SetupIntent and customer ownership before enabling this permission. Cannot activate a foreign, revoked or expired authorization.
| Argument | Type | Description |
|---|---|---|
| authorization_id* | string |
{
"type": "object",
"required": [
"authorization_id"
],
"properties": {
"authorization_id": {
"type": "string"
}
},
"additionalProperties": false
}Verify your order's PaymentIntent, resume safe idempotent payment creation if needed, and fulfil only after verified success. Returns a Stripe.js action if the bank requires 3-D Secure; never bypass authentication.
| Argument | Type | Description |
|---|---|---|
| order_id* | string |
{
"type": "object",
"required": [
"order_id"
],
"properties": {
"order_id": {
"type": "string"
}
},
"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 2, 2026.
{
"type": "object",
"required": [
"quote_id",
"buyer_mode",
"payment_method"
],
"properties": {
"lang": {
"enum": [
"en",
"de",
"ru",
"uk"
],
"type": "string",
"description": "Language for names and texts (default en)."
},
"email": {
"type": "string",
"format": "email"
},
"quote_id": {
"type": "string"
},
"buyer_mode": {
"enum": [
"human",
"delegated_agent",
"autonomous_agent",
"b2b_machine"
],
"type": "string"
},
"payment_method": {
"enum": [
"stripe_checkout",
"agent_wallet",
"stripe_off_session",
"x402",
"mpp",
"b2b_credit"
],
"type": "string"
},
"terms_accepted": {
"type": "boolean"
},
"idempotency_key": {
"type": "string"
},
"authorization_id": {
"type": "string",
"description": "Required for stripe_off_session; from create_card_authorization."
},
"customer_confirmed": {
"type": "boolean"
}
},
"additionalProperties": false
}