Skip to main content
Glama

@worldcitisim/mcp-esim

MCP server that lets Claude and other MCP-compatible agents search and buy WorldCitiSim eSIM plans. Wraps https://shop.worldcitisim.com/wp-json/esim/v1/*.

Install

Claude Desktop / Claude Code

claude mcp add --scope user wcs-esim npx -y @worldcitisim/mcp-esim

Or paste into ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "worldcitisim-esim": {
      "command": "npx",
      "args": ["-y", "@worldcitisim/mcp-esim"]
    }
  }
}

Cursor / Windsurf / other MCP clients

Same shape — command: "npx", args: ["-y", "@worldcitisim/mcp-esim"].

ChatGPT Developer Mode

Settings → Developer Mode → Add MCP server → same npx command.

Related MCP server: esim-mcp-server

Tools exposed

Tool

Purpose

esim_search_plans

Filter catalog by country / region / days / GB. Returns matching plans with their first 5 variations.

esim_get_plan

Fetch one plan by slug with all variations.

esim_create_order

Create a pending order. payment_method: "stripe" (default) returns a Stripe Checkout URL for the user to tap; payment_method: "btc" returns an on-chain btc block (address + amount + QR) to show the user directly. Both return an order_token for polling.

esim_check_order

Poll an order's status. Returns activation data (ICCID, QR URL) once payment clears.

Example interaction

User: I'm going to Japan for 10 days, what eSIM should I get?

Claude calls: esim_search_plans({ country: "japan", min_days: 7, max_days: 15 })
→ returns matching plans with variations priced and in stock.

Claude picks the best match, presents 2–3 options to the user.

User: the 10GB one

Claude: "Pay by card or Bitcoin?"

User: card

Claude calls: esim_create_order({ email: "user@example.com", variation_id: 44941 })
→ returns { order_id, order_token, payment_link_url }.

Claude: "Tap this link to pay: <Stripe URL>. You'll get the eSIM QR in your email within ~30 seconds."

User pays. Claude optionally polls esim_check_order until status=completed.

For Bitcoin, Claude calls esim_create_order({ ..., payment_method: "btc" }) and gets back a btc block — { address, sats_amount, btc_amount, qr_data_uri, expires_at } — which it shows the user to pay from any on-chain wallet. No redirect. If BTC is declined for a small order during a network-fee spike, the call returns a btc_unavailable error and Claude offers card instead. Either way, esim_check_order polls until status=completed.

Environment

  • WCS_ESIM_API_BASE — override the API base URL. Default: https://shop.worldcitisim.com/wp-json/esim/v1.

Runtime

  • Node 20.11+ (for native fetch + ESM).

  • No secrets. No Stripe credentials touch this process. Payment happens on Stripe's hosted checkout page; the MCP just hands the agent the URL.

  • Catalog is client-side cached 5 minutes + ETag-aware; multiple search calls within a minute don't hit the network.

Development

npm install
npm run dev                 # stdio MCP server on this terminal
npm run build               # compile to dist/

Point a Claude Code session at the local dev build:

claude mcp add wcs-esim-dev node "$(pwd)/dist/index.js"

License

MIT

Available Tools

4 tools
esim_check_orderA

Poll an order's status. Returns status: pending while waiting for payment, status: processing or completed once paid, with activation data (ICCID, QR URL, install instructions).

Inputs: order_id (required), order_token (required).

esim_create_orderA

Create a pending order. With payment_method: "stripe" (default) you get back a payment_link_url — present it to the user to tap and pay on Stripe's hosted page. With payment_method: "btc" you get back a btc block (on-chain address + amount + QR data URI + expiry) — present the address and amount to the user to pay from any Bitcoin wallet; no redirect. If the user hasn't said how they want to pay, ask: card or Bitcoin. The eSIM QR code arrives at email within ~30 seconds of payment clearing. Use esim_check_order to poll status.

Inputs: email (required), variation_id (required), payment_method, agent_source.

esim_get_planA

Fetch the full detail of one plan by slug, including all variations (every days × GB permutation with its price).

Inputs: slug (required).

esim_search_plansA

Search the WorldCitiSim eSIM catalog. Returns plans matching the given filters (country ISO code, region, desired days, desired GB). Plans have variations — each variation is one specific (days × GB × price) combo. The user picks one variation_id to buy.

Inputs: country, region, min_days, max_days, +2 more.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4.2/5.0

    Scored across 4 tools

    Disambiguation5/5

    Each tool targets a distinct operation: searching plans, fetching plan details, creating orders, and checking order status. No overlap in purpose.

    Naming Consistency5/5

    All tools follow a consistent esim_verb_noun pattern (search_plans, get_plan, create_order, check_order).

    Tool Count5/5

    Four tools cover the eSIM purchase workflow adequately without being excessive or insufficient.

    Completeness4/5

    Core lifecycle (search, detail, order, status) is covered. Minor gaps like cancellation or order listing exist, but the main flow is complete.

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      C
      maintenance
      Buy and manage a global eSIM through chat. One universal eSIM for 192 countries, per-MB billing in USDT or USDC across TRON, Solana, BSC, Polygon, Optimism, Arbitrum, TON. Anonymous-flow by default — no account required.
      12
      165 npm
      3
      MIT
    • -
      license
      Not graded
      quality
      B
      maintenance
      Lets AI agents search and buy travel eSIMs from ALT eSIM for 200+ destinations, with Stripe payment links and email delivery of QR codes.
      -
    • A
      license
      Not graded
      quality
      D
      maintenance
      Search and buy travel eSIMs for 200+ countries, with specialized China plans that deliver uncensored internet without a VPN. Exposes five read-only tools to search plans, check device eSIM compatibility, get plan details, get help, and generate a secure on-site checkout link.
      MIT

    Appeared in Searches