{"name":"com.esimtabby/esimtabby","slug":"esimtabby","title":"eSIM Tabby","description":"Buy and manage travel eSIM data plans in the conversation. Pay by card (Stripe) or USDC over x402.","url":"https://mcp.market/server/esimtabby","rating":null,"grade":"C","score":60,"certified":false,"status":"active","category":"ecommerce","tags":["ecommerce","maps"],"presence":{"score":8,"stars":null,"forks":null,"downloads_week":null,"last_push_at":null,"license":null},"uptime":{"percent":100,"checks":20,"ok":20,"last_checked_at":"2026-09-24T06:11:02.436Z","last_ok_at":"2026-09-24T06:11:02.436Z","latency_ms":71},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":null,"website":"https://esimtabby.com","version":"0.1.3","remotes":[{"type":"streamable-http","url":"https://esimtabby.com/mcp"}],"packages":[],"tools":[{"name":"cancel_order","description":"Cancel an order and refund it. Only possible while the eSIM is uninstalled.\n\nOnce the profile has been installed on a device the provider refuses to take it\nback, and this returns an error instead — send the user to support.\n\nCard payments refund automatically. A USDC payment has no on-chain refund rail, so\nthe order becomes `refund_pending` and support returns the money by hand.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"order_id":{"description":"order_id of the order to cancel","type":"string"}},"required":["order_id"],"additionalProperties":false}},{"name":"create_checkout","description":"Start a purchase — the step after the user picks a plan from search_esim_plans.\n\nCall it with that plan's plan_id (get_plan_details shows the current price first).\nReturns an order_id and where to pay, on the rail you asked for: 'card' (the\ndefault) returns a checkout_url — a hosted Stripe page for a human to open in a\nbrowser; once they say they've paid, call get_order_status to confirm and carry on\nto the QR code. 'x402' returns an x402_url for a wallet to settle in USDC, with no\nbrowser step — only choose it if you actually hold a wallet.\n\nNever accepts payment details — a card is entered on the hosted page, and a wallet\nsigns for itself. Calling it again for the same plan reuses the pending order\n(reused: true) instead of creating a duplicate.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"plan_id":{"description":"plan_id from search_esim_plans","type":"string"},"pay_with":{"default":"card","description":"How the buyer intends to pay. 'card' returns a hosted checkout link for a human to open in a browser. 'x402' returns an x402_url for a wallet tool to settle in USDC, with no browser step — only choose it if you have a wallet. An order keeps the rail it was first given: to pay an existing card order in USDC instead, cancel it and start a new one, so there are never two live ways to pay it.","enum":["card","x402"],"type":"string"}},"required":["plan_id"],"additionalProperties":false}},{"name":"create_topup_checkout","description":"Buy more data for an eSIM the user already has — the step after list_topup_options.\n\nCall it with the order_id of the fulfilled eSIM and a plan_id chosen from\nlist_topup_options. The top-up lands on the existing eSIM: same QR code, nothing to\nre-install. Returns a new order_id and where to pay, exactly like create_checkout:\n'card' returns a checkout_url for a human to open, confirmed via get_order_status;\n'x402' returns an x402_url for a wallet to settle in USDC.\n\nNever accepts payment details — a card is entered on the hosted page, and a wallet\nsigns for itself.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"order_id":{"description":"order_id of the eSIM to add data to","type":"string"},"plan_id":{"description":"plan_id from list_topup_options","type":"string"},"pay_with":{"default":"card","description":"How the buyer intends to pay. 'card' returns a hosted checkout link for a human to open in a browser. 'x402' returns an x402_url for a wallet tool to settle in USDC, with no browser step — only choose it if you have a wallet. An order keeps the rail it was first given: to pay an existing card order in USDC instead, cancel it and start a new one, so there are never two live ways to pay it.","enum":["card","x402"],"type":"string"}},"required":["order_id","plan_id"],"additionalProperties":false}},{"name":"get_esim_activation","description":"Get the QR code and activation details for a purchased eSIM.\n\nNot read-only: like get_order_status, an order that is not ready yet is advanced\nfirst, so this can change the order's state.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"order_id":{"description":"order_id of a fulfilled order","type":"string"}},"required":["order_id"],"additionalProperties":false}},{"name":"get_esim_usage","description":"How much data an active eSIM has used, and how much is left.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"order_id":{"description":"order_id of a fulfilled order","type":"string"}},"required":["order_id"],"additionalProperties":false}},{"name":"get_order_status","description":"Check an order. Call this after the user says they've paid.\n\nNot read-only: an order still in progress is advanced first — payment is confirmed\nand the provider order placed or collected — so the status can change as a result\nof calling this.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"order_id":{"description":"order_id from create_checkout","type":"string"}},"required":["order_id"],"additionalProperties":false}},{"name":"get_plan_details","description":"Full details of one eSIM plan, including current price.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"plan_id":{"description":"plan_id from search_esim_plans","type":"string"}},"required":["plan_id"],"additionalProperties":false}},{"name":"list_my_orders","description":"List this account's eSIM orders, newest first.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"additionalProperties":false}},{"name":"list_topup_options","description":"Data top-ups that can be added to an eSIM the user already has.\n\nA top-up extends the existing eSIM — same QR code, nothing to re-install. Not every\nplan is reloadable; this returns an empty list when none apply.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"order_id":{"description":"order_id of a fulfilled eSIM to add data to","type":"string"}},"required":["order_id"],"additionalProperties":false}},{"name":"pay_order","description":"Pay for an order in USDC over x402, without opening a browser.\n\nOnly for an MCP client that signs x402 payments itself: call it once for the\npayment requirements, then repeat the call carrying the signed payment in\n_meta['x402/payment'] and it settles and starts the eSIM. If your wallet is a\nseparate tool, make an x402 request to the order's x402_url instead — this tool\ncannot take a payment on a wallet tool's behalf.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"order_id":{"description":"order_id from create_checkout","type":"string"}},"required":["order_id"],"additionalProperties":false}},{"name":"search_esim_plans","description":"Find travel eSIM data plans available for a destination.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"country":{"description":"Country or region name, or ISO 3166-1 alpha-2 code","type":"string"},"min_data_mb":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Only plans with at least this much data"},"max_duration_days":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Only plans lasting at most this many days"}},"required":["country"],"additionalProperties":false}}],"scan":{"score":60,"grade":"C","scanned_at":"2026-09-22T11:50:58.375Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-22T11:50:58.369Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 1246ms"]},"poisoning":{"score":15,"max":15,"notes":["11 tool descriptions checked"]},"auth":{"score":3,"max":15,"notes":["open endpoint exposes 5 write-action tools with no auth"]},"maintenance":{"score":3,"max":15,"notes":["no repository listed"]},"identity":{"score":4,"max":10,"notes":["verified namespace with website, no repo"]}},"findings":[{"id":"auth.open-write","severity":"high","component":"auth","title":"Write-action tools reachable without authentication"},{"id":"maint.no-repo","severity":"low","component":"maintenance","title":"No source repository listed"}],"inputs":{"probes":[{"url":"https://esimtabby.com/mcp","reachable":true,"authRequired":false,"latencyMs":1246,"serverInfo":{"name":"esimtabby","version":"0.1.4"}}],"packages":[],"repo":{"found":false},"icon":{"url":"https://esimtabby.com/static/icon.svg","source":"site"},"presence":{"stars":null,"forks":null,"downloadsWeek":null,"license":null,"lastPushAt":null,"score":8}}}},"grade_history":[],"reviews":[]}