eSIM Tabby

// for agents, and the people who run them

Buy a travel eSIM with your AI agent.

Yes, an AI agent can buy a travel eSIM here. eSIM Tabby is a Model Context Protocol server: connect it to Claude, Cursor, ChatGPT or any other MCP client, and the agent searches plans by country, pays by hosted card checkout or USDC over x402, and hands back the activation QR code — without leaving the conversation.

Connect a client

One URL works everywhere the Model Context Protocol does:

https://esimtabby.com/mcp

Claude web or desktop

Settings → Connectors → Add custom connector. Name it eSIM Tabby and paste the URL. Claude runs the sign-in flow the first time you use it.

Claude Code

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

Cursor

Settings → MCP → Add new MCP server, or add this to .cursor/mcp.json:

{"mcpServers": {"esimtabby": {"url": "https://esimtabby.com/mcp"}}}

ChatGPT

Settings → Connectors → Create (a plan with connectors is required). Set the MCP server URL to the address above and choose OAuth for authentication.

Anything else

Any client that speaks streamable HTTP and OAuth works the same way. Machine-readable details live in the server card, and current prices in the plan catalog.

What the agent can do

search_esim_plansFind travel eSIM data plans available for a destination.
get_plan_detailsFull details of one eSIM plan, including current price.
create_checkoutStart a purchase — the step after the user picks a plan from search_esim_plans.
pay_orderPay for an order in USDC over x402, without opening a browser.
get_order_statusCheck an order. Call this after the user says they've paid.
get_esim_activationGet the QR code and activation details for a purchased eSIM.
list_topup_optionsData top-ups that can be added to an eSIM the user already has.
create_topup_checkoutBuy more data for an eSIM the user already has — the step after list_topup_options.
get_esim_usageHow much data an active eSIM has used, and how much is left.
cancel_orderCancel an order and refund it. Only possible while the eSIM is uninstalled.
list_my_ordersList this account's eSIM orders, newest first.

Two ways to pay

CardUSDC over x402
who it's for A human at the keyboard An agent that holds a wallet
what comes back A hosted Stripe checkout link to open in a browser An x402_url to pay, or the pay_order tool for clients that sign x402 natively
how it settles Card entered on Stripe's page; we never see the number The wallet signs a USDC transfer, a facilitator broadcasts it — no browser, no custody on our side
confirming The agent polls get_order_status after you say you've paid Settlement is synchronous; the QR code is one call away

An order keeps the rail it started on. To switch, cancel it and start a new one — there are never two live ways to pay the same order.

Sign-in and safety

The first tool call runs a standard OAuth flow — your client opens it, you sign in, and the agent gets a token scoped to your account. Card details are entered on Stripe's hosted page and never pass through us; a wallet signs for itself and we hold no keys. Anything bought in a conversation shows up in the app, and vice versa.