MCP App Store

Overview

eSIM Copilot helps users find mobile plans for home and abroad. Use ChatGPT to help you create an account, buy and install eSIMs that save you money, manage plans, troubleshoot your network connect and analyse your account activity.

Tools

account_history

ChatGPT
List the account's recent orders or payment history. Pass kind: "orders" for placed orders, kind: "payments" for the payment ledger. The account scope is resolved server-side.

account_insights

ChatGPT
Show a digest of account activity — KPI tiles (spend, orders, eSIMs, plans), a spend-over-time chart, top destination countries, eSIM status breakdown, and top plans. Uses the active account. Optional days (default 30) controls the window. Admins only on the platform — non-admins see an error in the response.

branding_set_image

ChatGPT
Widget-only tool. Stages an image upload for the branding proposal — receives a slot and a data:image/<type>;base64,… data URL produced by the branding widget's file picker, uploads to portal storage, and merges the resulting persistent URL into the staged proposal. Not callable by the model.

browse_plans

ChatGPT
Browse the eSIM plan catalogue. Use when the user asks "what plans are available?" or "show me data plans for Japan". The account context (currency, country) is resolved server-side from the signed-in user — do not pass identifiers in args. Always pass ISO 3166-1 alpha-2 country codes — never country names. "Japan" → "JP", "United States" → "US", "United Kingdom" → "GB", "United Arab Emirates" → "AE". Passing a country name (e.g. "Japan") returns no matches because the portal looks up codes. Translate before calling. Always scope the search. Calling this with no filters returns hundreds of plans, which is not useful. If the user named a destination, pass country (single ISO-2 code) or a multi-country list via countries (array of ISO-2 codes). If they didn't name one but their request implies travel ("I'm going to Europe", "trips to Asia"), pass region. Otherwise default to a small list of popular travel destinations — pass countries: ["US","GB","FR","ES","IT","JP","TH","AE","TR","MX"] (pick ~6–10 relevant to the user's stated context, language, or account country) so the response is browseable. Only call without filters when the user has explicitly asked for the entire catalogue.

complete_order

ChatGPT
Place the order — authorises payment with the chosen card and provisions the eSIM(s). If the account has approval rules, the order is submitted for approval instead. Always confirm with the user before calling.

create_account

ChatGPT
Create the user's first account. Use this only during onboarding — when get_me returns no accounts. Required: name, country (ISO alpha-2), currency (ISO 4217), type ("personal" or "business"). After creation the response advances the onboarding widget to the payment step. The widget normally drives this from its form; the model can also call it if the user has supplied all the inputs in chat.

get_me

ChatGPT
Identify the current user. Returns the authenticated user profile and the list of accounts they belong to. Always call this first if the user has not been identified yet. If `account_context.accounts` is empty, call `start_onboarding` next — the user has no account yet and needs to go through the welcome flow before any other tool will work.

get_my_esim

ChatGPT
Get details for one of the user's eSIMs — status, ICCID, MSISDN, the activation QR (LPA string), and any plans currently on it. Use after list_my_esims when the user picks a specific eSIM, or when they ask "show me my QR" / "details on my Vodafone eSIM".

get_plan

ChatGPT
Get full details for a single plan — allowances, duration, pricing, included features. Use after the user picks one from browse_plans, or when they ask "tell me more about <plan>".

install_help

ChatGPT
Open a step-by-step install guide for one of the user's eSIMs. Use when the user asks "how do I install this?", "I can't scan the QR", "help me set up my eSIM", or has just received a new eSIM. The widget shows the QR code, a one-tap install link on mobile, manual SM-DP+ / activation code details, and platform-specific instructions for iOS and Android. Pass service_id from list_my_esims or any earlier eSIM detail.

list_my_esims

ChatGPT
List the current user's eSIMs. Each entry includes ICCID, status (Ready to Install / Installed / Enabled / Disabled), label, and the account it belongs to. Use when the user asks about "my eSIMs", "my SIMs", or wants to see their lines. The account is resolved server-side from the signed-in user.

list_my_subscriptions

ChatGPT
List the user's plans (subscriptions) — data usage, renewal dates, and status. Use when the user asks "show my plans", "what data do I have left?", or "how many plans do I have?". The account scope is resolved server-side.

manage_payment_methods

ChatGPT
List saved cards on the account, set the default, or delete one. Adding a new card from inside ChatGPT is not yet supported — point the user to the portal for that. Always pass account_id from get_me. Deleting a card requires confirm: true — without it the tool returns the card list with the chosen card flagged as pending_delete so the user can confirm.

manage_subscription

ChatGPT
Take an action on a plan: cancel, renew, resume (after cancel), terminate (immediate, irreversible), or set_auto_renew (toggle auto-renewal). Mutating actions (cancel, renew, terminate) require confirm: true — call again with confirm: true after the user agrees. resume and set_auto_renew run immediately. The response is the refreshed plans list so the widget always reflects the new state.

refresh_my_esim

ChatGPT
Refresh an eSIM's status from the carrier. Use when the user just installed an eSIM and wants to see if it shows as Enabled, or after toggling it on the device.

set_active_account

ChatGPT
Set the account to use for subsequent actions. Call this when the user has multiple accounts and tells you which one they want to work in (e.g. "use my Personal account" / clicks an account chip in a widget). The choice persists for the rest of the conversation.

start_onboarding

ChatGPT
Open the onboarding widget for users with no account yet. Call this immediately after get_me returns an empty account_context.accounts list. The widget steps through welcome → account details → payment method → done. If the user already has an account, this returns the current step (typically payment or done).

start_order

ChatGPT
Start (or fetch) an order. If cart_id is provided, fetches that cart. Otherwise creates a new cart for the account, pre-loaded with a plan (and optionally attached to an existing eSIM). Use when the user says "I want to buy", "order the X plan", or "start a new order".

update_branding

ChatGPT
View or update the account's storefront branding — colours, theme, font, legal name, support email. Image assets (logo / favicon / hero / background) are NOT settable from this tool; the user must upload them via the file-picker tiles in the branding widget. If the user asks you to change a logo or any image, tell them to click the corresponding tile in the branding widget and pick a file. Do not attempt to send image data through this tool. Two-step confirm: a call with any of the supported fields stages a proposal and returns a preview without persisting. Call again with action: "apply_proposed", confirm: true to save. Use action: "view" to inspect current branding, action: "discard" to clear a pending proposal.

update_order

ChatGPT
Modify an in-progress order. add_plan adds a plan, set_qty changes a line item's quantity (0 removes), remove removes a line item, update_meta updates email/phone on the cart, apply_discount adds a discount code, remove_discount clears it.

wallet

ChatGPT
View the wallet balance or top it up. Pass action: "balance" to view, action: "topup" with amount_cents and confirm: true to charge the default card. Always confirm with the user before topping up — it charges money.

Capabilities

WritesInteractive

App Stats

21

Tools

ChatGPT

Platforms

Works with

ChatGPT

Data refreshed daily