ALT eSIM

Search & buy travel data eSIMs for 70+ destinations — pay by Stripe link, get the eSIM QR. USD.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
79%
Naming quality
97%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,156Tokens (tool definitions)
~938 BTypical response size
Moderate attention impact (0.90% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "esim": {
      "url": "https://altesim.com/api/mcp"
    }
  }
}

Remote endpoints

https://altesim.com/api/mcpstreamable-http

What it can do

Tool inventory

Tools (7)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢get_shop_facts

Shop rules for Alt eSIM in the shop's own words: product model, currency, refund policy, payment/delivery, and how agents must quote prices/URLs. Call this before recommending or buying.

Input Schema

{
  "type": "object",
  "properties": {}
}
🟢list_destinations

List all Alt eSIM destinations (country/region slugs with English names and region). Use a slug as the 'country' argument for search_esim_plans / recommend_plans.

Input Schema

{
  "type": "object",
  "properties": {}
}
🟢search_esim_plans(country, region, max_price_usd)

Search Alt eSIM travel data plans. Filter by destination country slug (e.g. 'japan', 'usa', 'europe'), region, and/or max USD price. Returns plans with sku, data amount, validity days, USD price and coverage carriers. All prices are USD.

Input Schema

{
  "type": "object",
  "properties": {
    "country": {
      "type": "string",
      "description": "Destination country/region slug, e.g. 'japan', 'south-korea', 'thailand', 'usa', 'europe'. Omit to list all."
    },
    "region": {
      "type": "string",
      "enum": [
        "asia",
        "europe",
        "americas",
        "oceania",
        "africa",
        "middle-east"
      ],
      "description": "Optional region filter."
    },
    "max_price_usd": {
      "type": "number",
      "description": "Optional max price in USD."
    }
  }
}
⚪recommend_plans(country, days, usage, max_price_usd, limit)

Recommend up to a few real catalog plans for one destination. Ranks existing SKUs by trip days and usage (light≈0.5 / normal≈1.5 / heavy≈4 GB/day) — never invents prices or URLs. Prefer this for 'what should I buy?'.

Input Schema

{
  "type": "object",
  "properties": {
    "country": {
      "type": "string",
      "description": "Destination slug, e.g. 'japan', 'thailand', 'europe'."
    },
    "days": {
      "type": "number",
      "description": "Trip length in days (optional). Prefers plans whose validity is close."
    },
    "usage": {
      "type": "string",
      "enum": [
        "light",
        "normal",
        "heavy"
      ],
      "description": "Data intensity: light≈0.5, normal≈1.5, heavy≈4 GB/day (ranking only)."
    },
    "max_price_usd": {
      "type": "number",
      "description": "Optional max USD price filter."
    },
    "limit": {
      "type": "number",
      "description": "How many plans to return (1–8, default 3)."
    }
  },
  "required": [
    "country"
  ]
}
🟢get_esim_plan(sku_or_id)

Get one Alt eSIM plan by its sku or id. Returns full details: title, data amount, validity days, USD price, coverage carriers, product URL.

Input Schema

{
  "type": "object",
  "properties": {
    "sku_or_id": {
      "type": "string",
      "description": "The plan sku (e.g. 'eSIM_Alt_JP_1DG1') or id."
    }
  },
  "required": [
    "sku_or_id"
  ]
}
🟡create_checkout(sku_or_id, email, lang, customer_code)

Create a secure Stripe payment link for an Alt eSIM plan. Returns a payment URL the BUYER opens to pay (the agent never handles card details) AND a checkout_session_id. After the buyer pays, call get_qr_code with that checkout_session_id to fetch the eSIM QR and show it to the buyer. The QR is also emailed. Charged in USD. You MUST collect the buyer's real email.

Input Schema

{
  "type": "object",
  "properties": {
    "sku_or_id": {
      "type": "string",
      "description": "The plan sku or id to buy."
    },
    "email": {
      "type": "string",
      "description": "Buyer's email — the eSIM QR code is also sent here."
    },
    "lang": {
      "type": "string",
      "enum": [
        "en",
        "zh-hk",
        "zh-tw",
        "zh-cn",
        "id",
        "hi",
        "es",
        "fr",
        "nl",
        "ru",
        "uk",
        "kk",
        "uz",
        "pl",
        "cs",
        "hu",
        "ro",
        "de",
        "it",
        "pt",
        "tr",
        "el",
        "ar",
        "ja",
        "ko",
        "th",
        "vi",
        "ms",
        "tl",
        "bn",
        "sv",
        "da",
        "nb",
        "fi",
        "bg",
        "hr",
        "sk",
        "sl",
        "sr",
        "lt",
        "lv",
        "et"
      ],
      "description": "Delivery email language (default 'en')."
    },
    "customer_code": {
      "type": "string",
      "description": "Optional Alt customer code (format Alt-XXXXXXXX, shown on the buyer's altesim.com account page). If provided, the order is linked to that account and appears in its order history regardless of the delivery email used."
    }
  },
  "required": [
    "sku_or_id",
    "email"
  ]
}
🔴get_qr_code(checkout_session_id)

Fetch the eSIM QR code(s) for an order, to show the buyer directly. Pass the checkout_session_id from create_checkout. Returns a clear `status`: 'awaiting_payment' (buyer has NOT paid — tell them to pay), 'processing' (paid, eSIM still provisioning — retry in ~30s), 'manual_review' (paid, activation paused for security review; ask buyer to contact [email protected] with the order reference), 'ready' (returns the QR image(s) + ICCID(s) to display), 'expired', 'refunded', or 'failed'. Use the status to tell the buyer exactly what's happening — never assume payment succeeded.

Input Schema

{
  "type": "object",
  "properties": {
    "checkout_session_id": {
      "type": "string",
      "description": "The checkout_session_id from create_checkout (Stripe session id)."
    }
  },
  "required": [
    "checkout_session_id"
  ]
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded7 tools
verifiedversion not recorded5 tools
verifiedversion not recorded5 tools
verifiedversion not recorded5 tools
verifiedversion not recorded5 tools
verifiedversion not recorded5 tools