Skip to content

eSIM Tabby

by esimtabby.com · remote · no sign-in to list tools · v0.1.3 · published by com.esimtabby

Buy and manage travel eSIM data plans in the conversation. Pay by card (Stripe) or USDC over x402.

Deletes · 1Final · 2Changes · 3

11 tools: 1 can delete or cancel things, 2 do something that can't be undone, 3 change things and 5 only read.

Scanned Oct 21, 2026

2 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http esimtabby https://esimtabby.com/mcp

Findings

Matches of fixed checks, with the text they matched.

2 warn
  • The server marks "get_order_status" as not read-only (readOnlyHint: false), and its words say it reads.

    Matched text

    annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "get_order_status" says "get": a word for reading.

    What this check looks for
  • The server marks "get_esim_activation" as not read-only (readOnlyHint: false), and its words say it reads.

    Matched text

    annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "get_esim_activation" says "get": a word for reading.

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

11 tools

Deletes or cancels 1Claude Code: deny
  • cancel_orderCancel an order and refund it.No findings

    Why it is in this group

    • The name "cancel_order" says "cancel": a word for removing or ending something.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Cancel an order and refund it. Only possible while the eSIM is uninstalled. Once the profile has been installed on a device the provider refuses to take it back, and this returns an error instead — send the user to support. Card payments refund automatically. A USDC payment has no on-chain refund rail, so the order becomes `refund_pending` and support returns the money by hand.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
Can't be undone 2Claude Code: ask
  • create_topup_checkoutBuy more data for an eSIM the user already has — the step after list_topup_options.No findings

    Why it is in this group

    • The name "create_topup_checkout" says "create": a word for a change.
    • The name "create_topup_checkout" also says "topup": a word that usually means money moves, which cannot be taken back.
    Description, as the server wrote it
    Buy more data for an eSIM the user already has — the step after list_topup_options. Call it with the order_id of the fulfilled eSIM and a plan_id chosen from list_topup_options. The top-up lands on the existing eSIM: same QR code, nothing to re-install. Returns a new order_id and where to pay, exactly like create_checkout: 'card' returns a checkout_url for a human to open, confirmed via get_order_status; 'x402' returns an x402_url for a wallet to settle in USDC. Never accepts payment details — a card is entered on the hosted page, and a wallet signs for itself.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • pay_orderPay for an order in USDC over x402, without opening a browser.No findings

    Why it is in this group

    • The name "pay_order" says "pay": a word that usually means money moves, which cannot be taken back.
    Description, as the server wrote it
    Pay for an order in USDC over x402, without opening a browser. Only for an MCP client that signs x402 payments itself: call it once for the payment requirements, then repeat the call carrying the signed payment in _meta['x402/payment'] and it settles and starts the eSIM. If your wallet is a separate tool, make an x402 request to the order's x402_url instead — this tool cannot take a payment on a wallet tool's behalf.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
Changes things 3Claude Code: ask
  • create_checkoutStart a purchase — the step after the user picks a plan from search_esim_plans.No findings

    Why it is in this group

    • The name "create_checkout" says "create": a word for a change.
    Description, as the server wrote it
    Start a purchase — the step after the user picks a plan from search_esim_plans. Call it with that plan's plan_id (get_plan_details shows the current price first). Returns an order_id and where to pay, on the rail you asked for: 'card' (the default) returns a checkout_url — a hosted Stripe page for a human to open in a browser; once they say they've paid, call get_order_status to confirm and carry on to the QR code. 'x402' returns an x402_url for a wallet to settle in USDC, with no browser step — only choose it if you actually hold a wallet. Never accepts payment details — a card is entered on the hosted page, and a wallet signs for itself. Calling it again for the same plan reuses the pending order (reused: true) instead of creating a duplicate.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • get_esim_activationGet the QR code and activation details for a purchased eSIM.1 finding

    Why it is in this group

    • The name "get_esim_activation" says "get": a word for reading.
    • The server marks it as not read-only (readOnlyHint: false).

    Findings

    • Warn

      The server marks "get_esim_activation" as not read-only (readOnlyHint: false), and its words say it reads.

      Matched text

      annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "get_esim_activation" says "get": a word for reading.

      What this check looks for
    Description, as the server wrote it
    Get the QR code and activation details for a purchased eSIM. Not read-only: like get_order_status, an order that is not ready yet is advanced first, so this can change the order's state.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • get_order_statusCheck an order.1 finding

    Why it is in this group

    • The name "get_order_status" says "get": a word for reading.
    • The server marks it as not read-only (readOnlyHint: false).

    Findings

    • Warn

      The server marks "get_order_status" as not read-only (readOnlyHint: false), and its words say it reads.

      Matched text

      annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "get_order_status" says "get": a word for reading.

      What this check looks for
    Description, as the server wrote it
    Check an order. Call this after the user says they've paid. Not read-only: an order still in progress is advanced first — payment is confirmed and the provider order placed or collected — so the status can change as a result of calling this.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
Only reads 5Claude Code: allow
  • get_esim_usageHow much data an active eSIM has used, and how much is left.No findings

    Why it is in this group

    • The name "get_esim_usage" says "get": a word for reading.
    Description, as the server wrote it
    How much data an active eSIM has used, and how much is left.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
  • get_plan_detailsFull details of one eSIM plan, including current price.No findings

    Why it is in this group

    • The name "get_plan_details" says "get": a word for reading.
    Description, as the server wrote it
    Full details of one eSIM plan, including current price.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
  • list_my_ordersList this account's eSIM orders, newest first.No findings

    Why it is in this group

    • The name "list_my_orders" says "list": a word for reading.
    Description, as the server wrote it
    List this account's eSIM orders, newest first.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
  • list_topup_optionsData top-ups that can be added to an eSIM the user already has.No findings

    Why it is in this group

    • The name "list_topup_options" says "list": a word for reading.
    Description, as the server wrote it
    Data top-ups that can be added to an eSIM the user already has. A top-up extends the existing eSIM — same QR code, nothing to re-install. Not every plan is reloadable; this returns an empty list when none apply.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
  • search_esim_plansFind travel eSIM data plans available for a destination.No findings

    Why it is in this group

    • The name "search_esim_plans" says "search": a word for reading.
    Description, as the server wrote it
    Find travel eSIM data plans available for a destination.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 0.1.3. Values in angle brackets are yours to fill in.

claude mcp add --transport http esimtabby https://esimtabby.com/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__esimtabby__search_esim_plans",
      "mcp__esimtabby__get_plan_details",
      "mcp__esimtabby__list_topup_options",
      "mcp__esimtabby__get_esim_usage",
      "mcp__esimtabby__list_my_orders"
    ],
    "ask": [
      "mcp__esimtabby__create_checkout",
      "mcp__esimtabby__pay_order",
      "mcp__esimtabby__get_order_status",
      "mcp__esimtabby__get_esim_activation",
      "mcp__esimtabby__create_topup_checkout"
    ],
    "deny": [
      "mcp__esimtabby__cancel_order"
    ]
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as esimtabby. Review it before you use it.