{
  "markdown": "# esim-mcp\n\n[![npm version](https://img.shields.io/npm/v/esim-mcp)](https://www.npmjs.com/package/esim-mcp)\n[![npm downloads](https://img.shields.io/npm/dm/esim-mcp)](https://www.npmjs.com/package/esim-mcp)\n[![CI](https://github.com/kakha13/esim-mcp/actions/workflows/ci.yml/badge.svg)](https://github.com/kakha13/esim-mcp/actions/workflows/ci.yml)\n[![MCP Registry](https://img.shields.io/badge/MCP%20Registry-io.github.kakha13%2Fesim--mcp-blue)](https://registry.modelcontextprotocol.io/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE)\n\n**An MCP server for travel eSIM plans.** It lets Claude, Cursor, and any other Model Context Protocol client search travel eSIM data plans by country, compare prices, and work out the cheapest way to stay connected across a multi-country trip.\n\nAsk \"what is the cheapest eSIM for two weeks in Japan and South Korea?\" and get real plans with real prices, not a guess.\n\nesim-mcp is built and maintained by [CheapereSIM](https://cheaperesim.com), and returns CheapereSIM pricing. It covers 190+ destinations across 8 regions.\n\n## What you can ask\n\nOnce installed, these all work in plain language:\n\n- \"What is the cheapest eSIM for Japan?\"\n- \"I am travelling to Japan, South Korea and Taiwan for three weeks. What should I buy?\"\n- \"Is there a single eSIM that covers all of Southeast Asia?\"\n- \"Which countries does that regional plan actually cover?\"\n- \"Show me unlimited data eSIM plans for Turkey.\"\n- \"How much data is left on my eSIM?\" (needs a token)\n\nThe interesting one is the multi-country case. A regional eSIM that covers your whole trip is sometimes cheaper than buying a local eSIM in each country, and sometimes it is not. `plan_trip` prices both and tells you which wins.\n\n## Setup\n\nAdd this to your MCP client configuration:\n\n```json\n{\n  \"mcpServers\": {\n    \"esim\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"esim-mcp\"]\n    }\n  }\n}\n```\n\nNo API key, no account, and no configuration are required to search destinations and compare plans. Set `CHEAPERESIM_API_TOKEN` only if you also want the two account tools.\n\n## Example: planning a multi-country trip\n\nAsking `plan_trip` for three weeks across Japan, South Korea and Taiwan, with at least 10GB:\n\n```\nOption 1 - one plan covering everything, $34.58:\nAsia (12 areas) 10GB 30Days: 10 GB for 30 days - $34.58 - covers 12 countries\n  https://cheaperesim.com/multi-country-esim?package=2488&utm_source=mcp&utm_medium=ai&utm_campaign=esim-mcp\n\nOption 2 - one local plan per country, $17.52 total:\nJapan 10GB 30Days: 10 GB for 30 days - $8.76\n  https://cheaperesim.com/esim/japan?package=339&utm_source=mcp&utm_medium=ai&utm_campaign=esim-mcp\nSouth Korea 10GB 30Days: 10 GB for 30 days - $8.76\n  https://cheaperesim.com/esim/south-korea?package=345&utm_source=mcp&utm_medium=ai&utm_campaign=esim-mcp\nNo local plan available for: TW.\n\nRecommended: option 1, since option 2 does not cover: TW.\n```\n\nThat is real output against live pricing, not an illustration. It is also the case worth understanding: buying local is half the price, and it is still the wrong answer, because Taiwan is sold only inside regional plans. A price comparison that stopped at the cheaper number would leave you without service for a third of the trip.\n\nThe server prints each `buy_url` exactly as the API returns it, so the links above are the ones you would get.\n\n## Tools\n\n| Tool | Description | Requires token |\n|---|---|---|\n| `search_destinations` | Find countries CheapereSIM sells eSIM plans for, by full or partial name. | No |\n| `list_plans` | List eSIM plans for one country, cheapest first. | No |\n| `plan_trip` | Work out the cheapest way to stay connected across several countries. | No |\n| `get_plan_coverage` | List every country a regional or global plan covers. | No |\n| `list_popular_destinations` | List the destinations travellers buy eSIMs for most often. | No |\n| `list_my_esims` | List the eSIMs on the configured CheapereSIM account. | Yes |\n| `get_esim_usage` | Show how much data is left on one eSIM. | Yes |\n\n`list_my_esims` and `get_esim_usage` are only registered when `CHEAPERESIM_API_TOKEN` is set. Without a token, the server exposes the first five tools only, so a model never sees a tool it cannot call.\n\n## Environment variables\n\n| Variable | Default | Purpose |\n|---|---|---|\n| `CHEAPERESIM_API_BASE` | `https://cheaperesim.com` | Base URL of the CheapereSIM API |\n| `CHEAPERESIM_API_TOKEN` | unset | API token for the two account tools; omit to run in read-only lookup mode |\n| `CHEAPERESIM_TIMEOUT_MS` | `10000` | Request timeout in milliseconds |\n\nKeep `CHEAPERESIM_API_BASE` on `https`. The token is sent as a bearer header, so an `http` override would put it on the wire in cleartext.\n\n## Getting a token\n\nCreate a token at [cheaperesim.com/dashboard/api-tokens](https://cheaperesim.com/dashboard/api-tokens). Tokens are read-only: they can list your eSIMs and their usage, but they cannot buy a plan, change your profile, or delete your account. Treat one like a password and revoke it if it leaks.\n\n## FAQ\n\n**What is an eSIM?**\nA digital SIM your phone downloads instead of a plastic card you swap in. Most phones sold since about 2018 support one, so you can buy mobile data for a country before you land and skip roaming charges.\n\n**Which countries can I search?**\n190+ destinations across Europe, Asia, North and South America, Africa, Oceania and the Middle East, plus regional and global plans that span many countries at once. Use `search_destinations` to check a specific one.\n\n**Does this cost anything to install?**\nNo. The server and the five lookup tools are free and need no account. You only pay if you decide to buy a plan on cheaperesim.com.\n\n**Is a regional eSIM cheaper than buying one per country?**\nIt depends on the trip, which is the whole reason `plan_trip` exists. For two neighbouring countries a pair of local plans often wins; across four or five, a regional plan usually does. The tool prices both and shows the difference.\n\n**Does it work with anything other than Claude?**\nYes. It speaks the Model Context Protocol over stdio, so any MCP client can run it, including Cursor and custom agents built on the MCP SDKs.\n\n**Can it buy a plan for me?**\nNo, by design. Every tool is read-only. Plans come back with a link, and the purchase happens in your browser on cheaperesim.com.\n\n## Development\n\n```bash\nnpm install\nnpm test\nnpm run build\n```\n\n`npm run typecheck` type-checks the tests as well as the source. CI runs the build, the typecheck, and the suite on Node 20 and 22.\n\n## License\n\nMIT. See [LICENSE](LICENSE).\n",
  "bytes": 6594,
  "sha": "05d8d949226cd5d2fe2a663f6cd968500adbd150088f1c946ff7e014d3805b76",
  "repo_slug": "kakha13/esim-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_kakha13_esim_mcp_e93847fa/readme"
}