esimfly-mcp
OfficialThis MCP server gives AI assistants read-only access to your eSIMfly business account (plans, balance, eSIMs, usage, orders, webhooks) and, if explicitly enabled, safe two-step write operations.
Search eSIM packages with your wholesale prices, filtered by destination, type, and pagination.
Check account/enterprise balance and currency.
List your eSIMs with status, data remaining, validity, and search/filter options.
Get stored or live network status for one eSIM (ICCID or order reference), including install state, last network, device, and usage.
Diagnose connectivity issues via network events and daily usage reports, flagging wrong-network attachment.
Browse orders and order details including eSIM ICCID and install links.
View top-up options and webhook settings.
Place orders, top up, cancel/suspend/activate eSIMs, send SMS, and configure webhooks — only when write mode is enabled, with previews and explicit confirmation before any charge or destructive action.
@esimfly/mcp — eSIMfly MCP server
Give your AI assistant hands on the eSIMfly Business API. With this Model Context Protocol server, Claude, Cursor, ChatGPT and other MCP clients can search eSIM plans with your wholesale prices, check balances and usage, diagnose "no data" problems from live network data — and, if you enable it, place orders and top-ups with an explicit confirmation step.
Read-only by default. Nothing can spend your balance unless you opt in.
Two-step writes. Every write tool returns a preview (what, cost, balance) until called with
confirm: true.Built on the official
@esimfly/sdk— signing, retries and error codes handled.Ships two prompts: the complete integration guide and an eSIM diagnosis workflow.
Docs: https://docs.esimfly.net · Credentials: Business Dashboard → Settings → API Keys.
Hosted server (no install)
Prefer not to run anything locally? eSIMfly hosts this same server at https://mcp.esimfly.net/mcp.
Add it as a remote MCP server in Claude.ai, ChatGPT, Claude Code (claude mcp add --transport http esimfly https://mcp.esimfly.net/mcp),
Cursor or VS Code and sign in with your eSIMfly business account — OAuth 2.1, no keys to paste, write
tools opt-in on the consent screen. Details: https://docs.esimfly.net/docs/mcp-server
Related MCP server: mcp-esim
Local install
The server runs locally over stdio; your API key never leaves your machine.
Claude Desktop
claude_desktop_config.json → mcpServers:
{
"mcpServers": {
"esimfly": {
"command": "npx",
"args": ["-y", "@esimfly/mcp"],
"env": {
"ESIMFLY_ACCESS_CODE": "esf_...",
"ESIMFLY_SECRET_KEY": "sk_..."
}
}
}
}Claude Code
claude mcp add esimfly -e ESIMFLY_ACCESS_CODE=esf_... -e ESIMFLY_SECRET_KEY=sk_... -- npx -y @esimfly/mcpCursor / Windsurf / other MCP clients
.cursor/mcp.json (or the client's equivalent):
{
"mcpServers": {
"esimfly": {
"command": "npx",
"args": ["-y", "@esimfly/mcp"],
"env": { "ESIMFLY_ACCESS_CODE": "esf_...", "ESIMFLY_SECRET_KEY": "sk_..." }
}
}
}Docker
docker build -t esimfly-mcp .
docker run -i --rm -e ESIMFLY_ACCESS_CODE=esf_... -e ESIMFLY_SECRET_KEY=sk_... esimfly-mcpEnable write tools
Add "ESIMFLY_MCP_ALLOW_WRITES": "true" to env. Without it the ordering, top-up, cancel,
suspend, SMS and webhook tools are not even registered.
Try it
"Find the cheapest 5 GB plan for Turkey and tell me my margin at €9.99."
"Which of my eSIMs are active and below 200 MB?"
"ICCID 8948010010036785060 says no data — diagnose it." (uses the
diagnose_esimprompt)"Set up webhooks for installed / status / low-data events at https://my.app/hooks." (write tool, previews first)
"Build me a Node.js integration." (uses the
esimfly_integration_guideprompt)
Tools
Tool | What it does | Mode |
| Catalogue search by destination / type with your cost price | read |
| Account (or enterprise) balance | read |
| Your eSIMs with status, data left, validity | read |
| Stored usage for one eSIM (cheap) | read |
| Live status from the network: install state, last network, device, usage | read (expensive) |
| Last 7 days of attach / data-session events, wrong-network flag | read |
| Daily usage by country and operator (up to 90 days) | read |
| Order history and one order with its eSIM | read |
| Top-up options for one eSIM | read |
| Webhook URL, events, recent deliveries | read |
| Buy eSIMs — preview → | write |
| Add data to an eSIM — preview shows package and cost | write |
| Cancel an unused eSIM and refund to balance | write (destructive) |
| Block / restore network access | write |
| Text the device holding the eSIM | write |
| Configure webhook URL and events | write |
Prompts: esimfly_integration_guide (optional stack), diagnose_esim (iccid).
Safety model
Read-only unless
ESIMFLY_MCP_ALLOW_WRITES=true.Write tools are two-step: a call without
confirmreturns a preview and makes no mutable API call;create_orderadditionally requires theidempotency_keyfrom its own preview, so an agent cannot place the same order twice.Tool annotations mark reads as
readOnlyHintand cancel/suspend asdestructiveHint, so hosts that ask for user approval on risky tools do so.The server never logs credentials and never writes to stdout except the MCP protocol.
Give the agent a dedicated API key with the smallest rate limits you are comfortable with, and rotate it from the dashboard if in doubt.
Configuration
Variable | Required | Description |
| yes | API access code ( |
| yes | API secret key ( |
| no |
|
| no | Override the API base URL |
Embedding
import { createEsimflyMcpServer } from '@esimfly/mcp';
const server = createEsimflyMcpServer({ config: { accessCode, secretKey }, allowWrites: false });
// connect it to any MCP transportReleasing (maintainers)
Bump version in package.json, server.json and MCP_VERSION in src/server.ts, add a
CHANGELOG entry, push, then publish a GitHub Release tagged vX.Y.Z — the workflow publishes to
npm with Trusted Publishing (OIDC), and the MCP Registry entry is republished
automatically afterwards (GitHub OIDC, no tokens).
Support
Available Tools
11 toolsget_balanceGet account balanceARead-onlyIdempotentInspect
Current prepaid balance (or enterprise balance) and currency.
Inputs: no named parameters.
get_esim_live_statusGet live eSIM status (network query)ARead-onlyIdempotentInspect
LIVE status straight from the mobile network: lifecycle status, profile install state, last network (operator, country, MCC/MNC, 4G/5G), device model and IMEI, activation and last-usage dates, data used. Expensive — use for diagnosis ("no data", "is it installed?"), not routinely.
Inputs: iccid (required).
get_esim_usageGet eSIM usageARead-onlyIdempotentInspect
Stored data usage and validity for one eSIM (cheap; fresh as of the last sync). Identify by ICCID or order reference.
Inputs: iccid, order_reference.
get_network_eventsGet network events (last 7 days)ARead-onlyIdempotentInspect
Attach and data-session events for one eSIM, newest first, each flagged is_allowed. wrong_network_count > 0 means the device latched onto a network outside the plan — the usual cause of "connected but no data" (fix: airplane-mode toggle or manual network selection).
Inputs: iccid (required).
get_orderGet orderARead-onlyIdempotentInspect
One order by reference, including its eSIM (ICCID, install links, pending state).
Inputs: order_reference (required).
get_topup_packagesGet top-up packages for an eSIMBRead-onlyIdempotentInspect
Top-up options for ONE eSIM (they depend on its provider and location), with your price. Returns ESIM_NOT_TOPPABLE when the eSIM state does not allow top-ups.
Inputs: iccid (required), limit.
get_usage_reportGet daily usage reportARead-onlyIdempotentInspect
Daily data usage for one eSIM over the last N days (default 7, max 90) with per-country and per-operator breakdown.
Inputs: iccid (required), days.
get_webhook_settingsGet webhook settingsBRead-onlyIdempotentInspect
Configured webhook URL, subscribed events, available events and the last deliveries.
Inputs: no named parameters.
list_esimsList eSIMsBRead-onlyIdempotentInspect
eSIMs on the account with status, data left and validity. Search by ICCID, package name or code; filter by status.
Inputs: page, limit, search, status.
list_ordersList ordersBRead-onlyIdempotentInspect
Order history with filters (status, date range ISO 8601, search by reference / package) and a revenue summary.
Inputs: page, limit, search, status, +2 more.
search_packagesSearch eSIM packagesARead-onlyIdempotentInspect
Find eSIM data packages you can sell, with your wholesale price. Filter by destination name (search), type (local / regional / global) and page. Returns compact rows; use limit up to 100.
Inputs: page, type, limit, search.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 11 tools
Tools are mostly distinct by resource and action. The main potential confusion is among usage-related tools (get_esim_usage, get_esim_live_status, get_usage_report), but their descriptions clearly differentiate stored summary, live network diagnosis, and daily reporting.
All tools use consistent snake_case with predictable verb_noun patterns: get_*, list_*, search_*. The convention is uniform throughout the set.
11 tools is well-scoped for an eSIM reseller management server. Each tool maps to a useful query or monitoring operation without excessive redundancy.
The server covers read/monitoring well: packages, top-ups, eSIMs, usage, orders, balance, and webhook settings. However, it lacks any write/mutation operations such as creating orders, purchasing top-ups, configuring webhooks, or activating eSIMs, which are notable gaps for the domain.
Maintenance
Related MCP Connectors
Search, order, and manage eSIM data packages for 190+ countries.
Travel eSIMs for travel businesses: quotes, checks, orders, top-ups, webhooks, developer docs.
Find travel eSIM plans, compare prices and create an order the user pays by link.
Travel eSIM plan catalog, coverage and trip-planning tools for agents and developers.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceBrowse, compare, and purchase eSIMs for 190+ countries via AI agents. 12 tools for searching 2,300+ data plans, checking coverage, and buying eSIMs with crypto or card. No account required for browsing.MIT
- AlicenseAqualityDmaintenanceTravel eSIMs for 193 countries. Stripe + Bitcoin checkout. QR by email in 30s. No API key.466 npmMIT
- AlicenseNot gradedqualityDmaintenanceSearch and buy travel eSIMs for 200+ countries, with specialized China plans that deliver uncensored internet without a VPN. Exposes five read-only tools to search plans, check device eSIM compatibility, get plan details, get help, and generate a secure on-site checkout link.MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to search, quote, and buy prepaid travel eSIM data plans within a human-set spending mandate and prepaid wallet, returning activation codes and verifiable signed receipts. Agents can also check machine-readable policies, manage post-sale actions like refunds and status, and operate without ever accessing card details or exceeding their limits.MIT