Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,071Paid calls: 1,542Letters: 14Defects: 1,324counted 2 min ago
teppi

Server definition

Hash
sha256:a7b9b76341f0a79d8de0d19b990cd89ef74328a9bb112767b5889be4d83f0f72
What it is
What a remote MCP server returned when asked what it offers: 12 tools

The blob, as servednamed by its sha256

{ "instructions": "esimker sells prepaid travel data eSIMs: data only, no phone numbers, no SMS, no voice. Prices are USD strings, from $1.00. No account is needed: an order is addressed by a secret token, a wallet by a secret code.\n\nTwo ways to buy:\n1. For a person who pays: search_destinations → get_plans → create_checkout → hand checkout_url to the person → get_order(token) until status is ready.\n2. Autonomously from a prepaid wallet: create_wallet once and save its code → send it as `Authorization: Bearer <code>` on every wallet call → create_deposit and pay the address it returns → get_deposit until paid → purchase_esim(plan_id, client_ref) → get_order(token) until ready.\n\nRules:\n- Confirm the destination, the plan and the price with the person before create_checkout or purchase_esim. An installed eSIM cannot be refunded; a wallet balance is spent on eSIMs and never paid back out.\n- The wallet code, the order token and the activation code are secrets: keep the code where you keep credentials, show order_url to the buyer only, never log or repeat them elsewhere. A lost wallet code cannot be recovered.\n- Reuse client_ref when retrying purchase_esim; never create a second checkout while one is open.\n- daily_unlimited plans are priced per day: pass period_num (1–365, default 7), the amount is price × days.\n- Regional plans list the countries they cover in location_codes.\n- A 403 means the caller's jurisdiction is embargoed: tell the person, do not retry.", "tools": [ { "description": "Create an order for a person to pay. Returns token, checkout_url (the\n gateway's page: hand it to the person) and order_url (the order page in `lang`,\n with the QR code once paid: show it to the buyer only, the token is a secret).\n Confirm the plan and the price first: every call creates a new unpaid order,\n so do not retry while a checkout is open. `email` (optional) also gets the eSIM\n by mail. `period_num` (1–365) only for daily_unlimited plans. `topup_iccid`\n with a plan_id from list_topups tops up an existing eSIM. A 403 means the\n caller's jurisdiction is embargoed. To pay from a wallet use purchase_esim.", "inputSchema": { "properties": { "email": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Email" }, "lang": { "default": "en", "title": "Lang", "type": "string" }, "payment_method": { "default": "crypto", "enum": [ "crypto", "card" ], "title": "Payment Method", "type": "string" }, "period_num": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Period Num" }, "plan_id": { "maximum": 2147483647, "minimum": 1, "title": "Plan Id", "type": "integer" }, "topup_iccid": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Topup Iccid" } }, "required": [ "plan_id" ], "title": "create_checkoutArguments", "type": "object" }, "name": "create_checkout", "outputSchema": { "additionalProperties": true, "title": "create_checkoutDictOutput", "type": "object" } }, { "description": "Open a top-up of the wallet and get what is needed to pay it. Floors: $10 for a wallet's first deposit, $1 after that; cap $1000 per deposit. Crypto deposits earn a bonus (+2% from $25, +3% from $50, +5% from $100, capped at $25); every purchase returns 3% cashback. With payment_method \"crypto\" pass a currency from: BTC, ETH, TRX, USDTTRC, USDTETH, USDTBSC — the answer then carries `pay`: the address, the exact amount in the coin (network fee included) and expires_at (about 15 minutes; after that open a new deposit). Send exactly `pay.amount` to `pay.address` on `pay.network`, then poll get_deposit(token) until status is paid. checkout_url is the hosted pay page for a person; card deposits have only that. Needs the wallet code.", "inputSchema": { "properties": { "amount_usd": { "anyOf": [ { "type": "number" }, { "type": "string" } ], "title": "Amount Usd" }, "currency": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Currency" }, "lang": { "default": "en", "title": "Lang", "type": "string" }, "payment_method": { "default": "crypto", "enum": [ "crypto", "card" ], "title": "Payment Method", "type": "string" } }, "required": [ "amount_usd" ], "title": "create_depositArguments", "type": "object" }, "name": "create_deposit", "outputSchema": { "additionalProperties": true, "title": "create_depositDictOutput", "type": "object" } }, { "description": "Mint a prepaid wallet with no account behind it and get its secret ONCE:\n `code` (32 hex characters) and the same secret as a 12-word `phrase`. Save the\n code before doing anything else and send it as `Authorization: Bearer <code>`\n on every wallet call; there is no recovery and no identity to prove. The\n balance is spent on eSIMs (retail price, cashback on every purchase) and never\n paid back out. accept_terms must be true (https://esimker.com/terms). Then\n create_deposit to fund it. Rate-limited and geo-blocked like checkout.", "inputSchema": { "properties": { "accept_terms": { "title": "Accept Terms", "type": "boolean" } }, "required": [ "accept_terms" ], "title": "create_walletArguments", "type": "object" }, "name": "create_wallet", "outputSchema": { "additionalProperties": true, "title": "create_walletDictOutput", "type": "object" } }, { "description": "One deposit of the wallet by its token: status pending → paid (credited,\n bonus included) | underpaid (nothing credited yet, the rest can still arrive) |\n expired. Poll every ~30 s after sending; crypto needs the network's\n confirmations. Needs the wallet code.", "inputSchema": { "properties": { "token": { "title": "Token", "type": "string" } }, "required": [ "token" ], "title": "get_depositArguments", "type": "object" }, "name": "get_deposit", "outputSchema": { "additionalProperties": true, "title": "get_depositDictOutput", "type": "object" } }, { "description": "An order by its token. status goes pending (unpaid) → paid → provisioning →\n ready; also expired, underpaid, failed_provisioning, gift_waiting. When ready,\n esim.activation_code is the LPA string (render it as a QR code), with iccid,\n smdp and matching_id. After payment poll every ~10 s; delivery usually takes\n under a minute.", "inputSchema": { "properties": { "token": { "title": "Token", "type": "string" } }, "required": [ "token" ], "title": "get_orderArguments", "type": "object" }, "name": "get_order", "outputSchema": { "additionalProperties": true, "title": "get_orderDictOutput", "type": "object" } }, { "description": "Checkout methods open right now: \"crypto\" (a hosted invoice: BTC, ETH, TRX,\n USDT), \"card\", and \"wallet\" (a prepaid balance, see create_wallet).\n\n `gateways` names the providers behind each method; a checkout that does not\n ask for one by name goes to the first, which is what these tools do.", "inputSchema": { "properties": {}, "title": "get_payment_methodsArguments", "type": "object" }, "name": "get_payment_methods", "outputSchema": { "additionalProperties": true, "title": "get_payment_methodsDictOutput", "type": "object" } }, { "description": "The plans of one destination (slug from search_destinations). Each plan: id\n (the plan_id for an order), name, gb, days, retail (USD; per day when\n daily_unlimited is true), daily_unlimited, location_codes (the countries it\n covers), networks, speed, supports_topup. Also the published rating.", "inputSchema": { "properties": { "slug": { "title": "Slug", "type": "string" } }, "required": [ "slug" ], "title": "get_plansArguments", "type": "object" }, "name": "get_plans", "outputSchema": { "additionalProperties": true, "title": "get_plansDictOutput", "type": "object" } }, { "description": "Remaining data and status of an eSIM we issued.", "inputSchema": { "properties": { "iccid": { "title": "Iccid", "type": "string" } }, "required": [ "iccid" ], "title": "get_usageArguments", "type": "object" }, "name": "get_usage", "outputSchema": { "additionalProperties": true, "title": "get_usageDictOutput", "type": "object" } }, { "description": "The wallet behind the code: ref (a public handle for support), balance_usd,\n cashback_percent, the deposit rules that apply to it now (min_usd, max_usd,\n first, bonus tiers), the last 50 transactions, orders (with their tokens — the\n wallet is where a buyer's order links are kept) and deposits. Needs the wallet\n code.", "inputSchema": { "properties": {}, "title": "get_walletArguments", "type": "object" }, "name": "get_wallet", "outputSchema": { "additionalProperties": true, "title": "get_walletDictOutput", "type": "object" } }, { "description": "Top-up plans that fit an eSIM we issued: plan_id, name, gb, days, retail.\n Order one with create_checkout(plan_id, topup_iccid=iccid) or, from a wallet,\n purchase_esim(plan_id, client_ref, topup_iccid=iccid).", "inputSchema": { "properties": { "iccid": { "title": "Iccid", "type": "string" } }, "required": [ "iccid" ], "title": "list_topupsArguments", "type": "object" }, "name": "list_topups", "outputSchema": { "properties": { "result": { "items": { "additionalProperties": true, "type": "object" }, "title": "Result", "type": "array" } }, "required": [ "result" ], "title": "list_topupsOutput", "type": "object" } }, { "description": "Charge the wallet and issue an eSIM, no checkout. `client_ref` (1–64 chars) is your own reference for this purchase and makes the call idempotent: a retry with the same value returns the existing order without a second charge, so reuse it after a timeout and never invent a new one for the same purchase. `period_num` (1–365, default 7) only for daily_unlimited plans; the charge is price × days. `topup_iccid` with a plan_id from list_topups tops up an eSIM. Returns the order (status paid) with order_url; poll get_order(token) for ready and the activation code. A 402 is a short balance: create_deposit first. A wallet pays for at most 50 orders in 24 hours (429 beyond that; a retry answered from client_ref does not count). Needs the wallet code.", "inputSchema": { "properties": { "client_ref": { "title": "Client Ref", "type": "string" }, "email": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Email" }, "lang": { "default": "en", "title": "Lang", "type": "string" }, "period_num": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Period Num" }, "plan_id": { "maximum": 2147483647, "minimum": 1, "title": "Plan Id", "type": "integer" }, "topup_iccid": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Topup Iccid" } }, "required": [ "plan_id", "client_ref" ], "title": "purchase_esimArguments", "type": "object" }, "name": "purchase_esim", "outputSchema": { "additionalProperties": true, "title": "purchase_esimDictOutput", "type": "object" } }, { "description": "Destinations on sale. `query` matches the name in any of 18 languages, the\n slug or the ISO code; empty lists everything. Each item: dest_code, slug, name,\n min_retail (USD, the cheapest fixed plan), unlimited_from (USD per day of a\n Daily Unlimited pass, or null), plan_count. Continue with get_plans(slug).", "inputSchema": { "properties": { "query": { "default": "", "title": "Query", "type": "string" } }, "title": "search_destinationsArguments", "type": "object" }, "name": "search_destinations", "outputSchema": { "properties": { "result": { "items": { "additionalProperties": true, "type": "object" }, "title": "Result", "type": "array" } }, "required": [ "result" ], "title": "search_destinationsOutput", "type": "object" } } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:a7b9b76341f0a79d8de0d19b990cd89ef74328a9bb112767b5889be4d83f0f72 | sha256sum