Server definition
- Hash
- sha256:116ddf49fcfde52e5e9b18cc4d270d6bd7476c7015e3c9cd5cb6c497d678e9c1
- What it is
- What a remote MCP server returned when asked what it offers: 11 tools
The blob, as servednamed by its sha256
{
"instructions": "Buy and manage travel eSIM data plans in the conversation. Pay by card (Stripe) or USDC over x402.\n\nSearch, buy, and retrieve travel eSIM data plans. Never ask the user for card details.\n\nThere are two ways to pay, chosen with `pay_with` when the order is created:\n- `card` (the default) returns a hosted checkout link for a human to open in a browser. Payment happens out of band; poll get_order_status afterwards.\n- `x402` is for an agent that holds a wallet. It settles in USDC with no browser step, either by POSTing to the returned x402_url or by calling pay_order. Only choose it if you actually have a wallet — a human with a card cannot pay an x402 order.\n",
"tools": [
{
"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.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"order_id": {
"description": "order_id of the order to cancel",
"type": "string"
}
},
"required": [
"order_id"
],
"type": "object"
},
"name": "cancel_order",
"outputSchema": {
"additionalProperties": true,
"type": "object"
}
},
{
"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.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"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"
},
"plan_id": {
"description": "plan_id from search_esim_plans",
"type": "string"
}
},
"required": [
"plan_id"
],
"type": "object"
},
"name": "create_checkout",
"outputSchema": {
"additionalProperties": true,
"type": "object"
}
},
{
"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.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"order_id": {
"description": "order_id of the eSIM to add data to",
"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"
},
"plan_id": {
"description": "plan_id from list_topup_options",
"type": "string"
}
},
"required": [
"order_id",
"plan_id"
],
"type": "object"
},
"name": "create_topup_checkout",
"outputSchema": {
"additionalProperties": true,
"type": "object"
}
},
{
"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.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"order_id": {
"description": "order_id of a fulfilled order",
"type": "string"
}
},
"required": [
"order_id"
],
"type": "object"
},
"name": "get_esim_activation",
"outputSchema": {
"description": "What `get_esim_activation` returns.\n\nThe other tools annotate their return type and FastMCP derives the schema from it.\nThis one hands back a ToolResult — the QR has to reach the reply body as markdown —\nso the type goes here instead and the schema is derived from it below.",
"properties": {
"activation_code": {
"description": "LPA activation string, for manual install",
"title": "Activation Code",
"type": "string"
},
"expires_at": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "When the plan expires, in the provider's own format",
"title": "Expires At"
},
"iccid": {
"description": "The eSIM's ICCID",
"title": "Iccid",
"type": "string"
},
"instructions": {
"description": "How to install the eSIM",
"title": "Instructions",
"type": "string"
},
"order_id": {
"description": "The order this eSIM belongs to",
"title": "Order Id",
"type": "string"
},
"qr_code_url": {
"description": "Image URL of the activation QR code",
"title": "Qr Code Url",
"type": "string"
},
"smdp_address": {
"description": "SM-DP+ server address, for manual install",
"title": "Smdp Address",
"type": "string"
}
},
"required": [
"order_id",
"iccid",
"qr_code_url",
"activation_code",
"smdp_address",
"expires_at",
"instructions"
],
"title": "Activation",
"type": "object"
}
},
{
"description": "How much data an active eSIM has used, and how much is left.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"order_id": {
"description": "order_id of a fulfilled order",
"type": "string"
}
},
"required": [
"order_id"
],
"type": "object"
},
"name": "get_esim_usage",
"outputSchema": {
"additionalProperties": true,
"type": "object"
}
},
{
"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.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"order_id": {
"description": "order_id from create_checkout",
"type": "string"
}
},
"required": [
"order_id"
],
"type": "object"
},
"name": "get_order_status",
"outputSchema": {
"additionalProperties": true,
"type": "object"
}
},
{
"description": "Full details of one eSIM plan, including current price.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"plan_id": {
"description": "plan_id from search_esim_plans",
"type": "string"
}
},
"required": [
"plan_id"
],
"type": "object"
},
"name": "get_plan_details",
"outputSchema": {
"additionalProperties": true,
"type": "object"
}
},
{
"description": "List this account's eSIM orders, newest first.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "list_my_orders",
"outputSchema": {
"properties": {
"result": {
"items": {
"additionalProperties": true,
"type": "object"
},
"type": "array"
}
},
"required": [
"result"
],
"type": "object",
"x-fastmcp-wrap-result": true
}
},
{
"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.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"order_id": {
"description": "order_id of a fulfilled eSIM to add data to",
"type": "string"
}
},
"required": [
"order_id"
],
"type": "object"
},
"name": "list_topup_options",
"outputSchema": {
"properties": {
"result": {
"items": {
"additionalProperties": true,
"type": "object"
},
"type": "array"
}
},
"required": [
"result"
],
"type": "object",
"x-fastmcp-wrap-result": true
}
},
{
"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.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"order_id": {
"description": "order_id from create_checkout",
"type": "string"
}
},
"required": [
"order_id"
],
"type": "object"
},
"name": "pay_order",
"outputSchema": {
"additionalProperties": true,
"description": "Without a payment: the x402 payment requirements (accepts, error). With one: the settled order (transaction, next_step), or the unchanged order plus `result` when it was no longer awaiting payment.",
"properties": {
"accepts": {
"description": "x402 payment requirements to satisfy",
"items": {
"type": "object"
},
"type": "array"
},
"error": {
"description": "How to pay, for the 402 case",
"type": "string"
},
"next_step": {
"type": "string"
},
"order_id": {
"type": "string"
},
"paid_with": {
"type": "string"
},
"result": {
"type": "string"
},
"status": {
"type": "string"
},
"transaction": {
"description": "On-chain transaction hash",
"type": "string"
},
"x402Version": {
"type": "integer"
}
},
"type": "object"
}
},
{
"description": "Find travel eSIM data plans available for a destination.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"country": {
"description": "Country or region name, or ISO 3166-1 alpha-2 code",
"type": "string"
},
"max_duration_days": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Only plans lasting at most this many days"
},
"min_data_mb": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Only plans with at least this much data"
}
},
"required": [
"country"
],
"type": "object"
},
"name": "search_esim_plans",
"outputSchema": {
"properties": {
"result": {
"items": {
"additionalProperties": true,
"type": "object"
},
"type": "array"
}
},
"required": [
"result"
],
"type": "object",
"x-fastmcp-wrap-result": true
}
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:116ddf49fcfde52e5e9b18cc4d270d6bd7476c7015e3c9cd5cb6c497d678e9c1 | sha256sum