io.github.eSimfly-Official/esimfly-mcp

Official registry Search and web

eSIMfly Business API: search eSIM plans, check usage, diagnose eSIMs, optionally order (confirmed)

Install

Add this to your client's MCP configuration (Claude Desktop: claude_desktop_config.json; Cursor: .cursor/mcp.json; VS Code and others use the same "mcpServers" shape).

Remote (streamable-http)
Claude Code
claude mcp add --transport http esimfly-mcp 'https://mcp.esimfly.net/mcp'
JSON configuration (Claude Desktop, Cursor, VS Code)
{
    "mcpServers": {
        "esimfly-mcp": {
            "type": "http",
            "url": "https://mcp.esimfly.net/mcp"
        }
    }
}
NPM package @esimfly/mcp
Claude Code
claude mcp add esimfly-mcp -e 'ESIMFLY_ACCESS_CODE=<your esimfly_access_code>' -e 'ESIMFLY_SECRET_KEY=<your esimfly_secret_key>' -e 'ESIMFLY_MCP_ALLOW_WRITES=<ESIMFLY_MCP_ALLOW_WRITES>' -- npx -y @esimfly/mcp@0.1.3
JSON configuration (Claude Desktop, Cursor, VS Code)
{
    "mcpServers": {
        "esimfly-mcp": {
            "command": "npx",
            "args": [
                "-y",
                "@esimfly/mcp@0.1.3"
            ],
            "env": {
                "ESIMFLY_ACCESS_CODE": "<your esimfly_access_code>",
                "ESIMFLY_SECRET_KEY": "<your esimfly_secret_key>",
                "ESIMFLY_MCP_ALLOW_WRITES": "<ESIMFLY_MCP_ALLOW_WRITES>"
            }
        }
    }
}

Environment variables

  • ESIMFLY_ACCESS_CODE required secret eSIMfly API access code (esf_...)
  • ESIMFLY_SECRET_KEY required secret eSIMfly API secret key (sk_...)
  • ESIMFLY_MCP_ALLOW_WRITES Set to true to enable ordering, top-up, cancel, suspend, SMS and webhook tools

Documentation

From the project's README on GitHub, refreshed weekly. Links open on GitHub.

Contents
  1. @esimfly/mcp — eSIMfly MCP server
  2. Hosted server (no install)
  3. Local install
  4. Try it
  5. Tools
  6. Safety model
  7. Configuration
  8. Embedding
  9. Releasing (maintainers)
  10. Support

@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

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/mcp
Cursor / 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-mcp
Enable 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_esim prompt)
  • "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_guide prompt)

Tools

ToolWhat it doesMode
search_packagesCatalogue search by destination / type with your cost priceread
get_balanceAccount (or enterprise) balanceread
list_esimsYour eSIMs with status, data left, validityread
get_esim_usageStored usage for one eSIM (cheap)read
get_esim_live_statusLive status from the network: install state, last network, device, usageread (expensive)
get_network_eventsLast 7 days of attach / data-session events, wrong-network flagread
get_usage_reportDaily usage by country and operator (up to 90 days)read
list_orders / get_orderOrder history and one order with its eSIMread
get_topup_packagesTop-up options for one eSIMread
get_webhook_settingsWebhook URL, events, recent deliveriesread
create_orderBuy eSIMs — preview → confirm: true + idempotency keywrite
topup_esimAdd data to an eSIM — preview shows package and costwrite
cancel_esimCancel an unused eSIM and refund to balancewrite (destructive)
suspend_esim / activate_esimBlock / restore network accesswrite
send_smsText the device holding the eSIMwrite
set_webhookConfigure webhook URL and eventswrite

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 confirm returns a preview and makes no mutable API call; create_order additionally requires the idempotency_key from its own preview, so an agent cannot place the same order twice.
  • Tool annotations mark reads as readOnlyHint and cancel/suspend as destructiveHint, 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

VariableRequiredDescription
ESIMFLY_ACCESS_CODEyesAPI access code (esf_…)
ESIMFLY_SECRET_KEYyesAPI secret key (sk_…)
ESIMFLY_MCP_ALLOW_WRITESnotrue to register write tools
ESIMFLY_BASE_URLnoOverride the API base URL

Embedding

import { createEsimflyMcpServer } from '@esimfly/mcp';
const server = createEsimflyMcpServer({ config: { accessCode, secretKey }, allowWrites: false });
// connect it to any MCP transport

Releasing (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

support@esimfly.net · https://docs.esimfly.net

Frequently asked questions

What is io.github.eSimfly-Official/esimfly-mcp?

eSIMfly Business API: search eSIM plans, check usage, diagnose eSIMs, optionally order (confirmed)

How do I install io.github.eSimfly-Official/esimfly-mcp?

It runs as a remote server. In Claude Code: claude mcp add --transport http esimfly-mcp 'https://mcp.esimfly.net/mcp'. For other clients, paste the JSON configuration from this page into their MCP settings.

Does io.github.eSimfly-Official/esimfly-mcp need an API key?

Yes. It expects ESIMFLY_ACCESS_CODE, ESIMFLY_SECRET_KEY, which you set in its configuration.

Is io.github.eSimfly-Official/esimfly-mcp open source?

Yes. Its code is on GitHub under the MIT license.

Who maintains io.github.eSimfly-Official/esimfly-mcp?

It is published by eSimfly-Official. AI.tn lists it but does not maintain or endorse it.

From the official MCP Registry. Listing is not an endorsement: review a server's code and permissions before giving it access to your data.