MCP server for travel eSIM plan discovery. Compare regional and local eSIM plans across countries.
git clone https://github.com/kakha13/esim-mcp{
"mcpServers": {
"esim-mcp": {
"command": "node",
"args": ["/path/to/esim-mcp/dist/index.js"]
}
}
}MCP Servers overview
# esim-mcp
[](https://www.npmjs.com/package/esim-mcp)
[](https://www.npmjs.com/package/esim-mcp)
[](https://github.com/kakha13/esim-mcp/actions/workflows/ci.yml)
[](https://registry.modelcontextprotocol.io/)
[](LICENSE)
**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.
Ask "what is the cheapest eSIM for two weeks in Japan and South Korea?" and get real plans with real prices, not a guess.
esim-mcp is built and maintained by [CheapereSIM](https://cheaperesim.com), and returns CheapereSIM pricing. It covers 190+ destinations across 8 regions.
## What you can ask
Once installed, these all work in plain language:
- "What is the cheapest eSIM for Japan?"
- "I am travelling to Japan, South Korea and Taiwan for three weeks. What should I buy?"
- "Is there a single eSIM that covers all of Southeast Asia?"
- "Which countries does that regional plan actually cover?"
- "Show me unlimited data eSIM plans for Turkey."
- "How much data is left on my eSIM?" (needs a token)
The 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.
## Setup
Add this to your MCP client configuration:
```json
{
"mcpServers": {
"esim": {
"command": "npx",
"args": ["-y", "esim-mcp"]
}
}
}
```
No 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.
## Example: planning a multi-country trip
Asking `plan_trip` for three weeks across Japan, South Korea and Taiwan, with at least 10GB:
```
Option 1 - one plan covering everything, $34.58:
Asia (12 areas) 10GB 30Days: 10 GB for 30 days - $34.58 - covers 12 countries
https://cheaperesim.com/multi-country-esim?package=2488&utm_source=mcp&utm_medium=ai&utm_campaign=esim-mcp
Option 2 - one local plan per country, $17.52 total:
Japan 10GB 30Days: 10 GB for 30 days - $8.76
https://cheaperesim.com/esim/japan?package=339&utm_source=mcp&utm_medium=ai&utm_campaign=esim-mcp
South Korea 10GB 30Days: 10 GB for 30 days - $8.76
https://cheaperesim.com/esim/south-korea?package=345&utm_source=mcp&utm_medium=ai&utm_campaign=esim-mcp
No local plan available for: TW.
Recommended: option 1, since option 2 does not cover: TW.
```
That 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.
The server prints each `buy_url` exactly as the API returns it, so the links above are the ones you would get.
## Tools
| Tool | Description | Requires token |
|---|---|---|
| `search_destinations` | Find countries CheapereSIM sells eSIM plans for, by full or partial name. | No |
| `list_plans` | List eSIM plans for one country, cheapest first. | No |
| `plan_trip` | Work out the cheapest way to stay connected across several countries. | No |
| `get_plan_coverage` | List every country a regional or global plan covers. | No |
| `list_popular_destinations` | List the destinations travellers buy eSIMs for most often. | No |
| `list_my_esims` | List the eSIMs on the configured CheapereSIM account. | Yes |
| `get_esim_usage` | Show how much data is left on one eSIM. | Yes |
`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.
## Environment variables
| Variable | Default | Purpose |
|---|---|---|
| `CHEAPERESIM_API_BASE` | `https://cheaperesim.com` | Base URL of the CheapereSIM API |
| `CHEAPERESIM_API_TOKEN` | unset | API token for the two account tools; omit to run in read-only lookup mode |
| `CHEAPERESIM_TIMEOUT_MS` | `10000` | Request timeout in milliseconds |
Keep `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.
## Getting a token
Create 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.
## FAQ
**What is an eSIM?**
A 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.
**Which countries can I search?**
190+ 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.
**Does this cost anything to install?**
No. 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.
**Is a regional eSIM cheaper than buying one per country?**
It 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.
**Does it work with anything other than Claude?**
Yes. 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.
**Can it buy a plan for me?**
No, by design. Every tool is read-only. Plans come back with a link, and the purchase happens in your browser on cheaperesim.com.
## Development
```bash
npm install
npm test
npm run build
```
`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.
## License
MIT. See [LICENSE](LICENSE).
What people ask about esim-mcp
What is kakha13/esim-mcp?
+
kakha13/esim-mcp is mcp servers for the Claude AI ecosystem. MCP server for travel eSIM plan discovery. Compare regional and local eSIM plans across countries. It has 0 GitHub stars and was last updated today.
How do I install esim-mcp?
+
You can install esim-mcp by cloning the repository (https://github.com/kakha13/esim-mcp) or following the README instructions on GitHub. ClaudeWave also provides quick install blocks on this page.
Is kakha13/esim-mcp safe to use?
+
kakha13/esim-mcp has not been audited yet by our security agent. Review the original repository on GitHub before using it in production.
Who maintains kakha13/esim-mcp?
+
kakha13/esim-mcp is maintained by kakha13. The last recorded GitHub activity is from today, with 0 open issues.
Are there alternatives to esim-mcp?
+
Yes. On ClaudeWave you can browse similar mcp servers at /categories/mcp, sorted by popularity or recent activity.
Deploy esim-mcp to your cloud
Ship this repo to production in minutes. Each platform spins up its own environment with editable env vars.
Maintain this repo? Add a badge to your README
Drop the badge into your GitHub README to show it's tracked on ClaudeWave. Each badge links back to this page and reflects the live Trust Score.
[](https://claudewave.com/repo/kakha13-esim-mcp)<a href="https://claudewave.com/repo/kakha13-esim-mcp"><img src="https://claudewave.com/api/badge/kakha13-esim-mcp" alt="Featured on ClaudeWave: kakha13/esim-mcp" width="320" height="64" /></a>More MCP Servers
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.
User-friendly AI Interface (Supports Ollama, OpenAI API, ...)
An open-source AI agent that brings the power of Gemini directly into your terminal.
The fastest path to AI-powered full stack observability, even for lean teams.
Real-time global intelligence dashboard. AI-powered news aggregation, geopolitical monitoring, and infrastructure tracking in a unified situational awareness interface
🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl!