esimdata for AI agents
A remote MCP server and a REST API over the same data as this site: 14,089 plans from 6 providers in 239 countries, checked daily. No key, read-only, free to use within fair limits.
MCP server
https://esimdata.app/mcp
Streamable HTTP, JSON responses, no sign-in. Protocol versions 2025-11-25, 2025-06-18, 2025-03-26 and 2024-11-05.
Claude
claude.ai or the desktop app: Settings → Connectors → Add custom connector, paste the URL above. Claude Code:
claude mcp add --transport http esimdata https://esimdata.app/mcp
ChatGPT
Settings → Apps & Connectors → Advanced → Developer mode, then Create, paste the URL, authentication "No authentication".
Cursor, VS Code, Windsurf and other clients
{
"mcpServers": {
"esimdata": {
"url": "https://esimdata.app/mcp"
}
}
} Tools
| Tool | What it does |
|---|---|
search_plans | Find travel eSIM data plans for a destination from every provider esimdata tracks, ranked neutrally by price (or price per GB, or validity). Filter by trip length, data, unlimited, needs (hotspot, 5G, phone number, top-up, no ID check) and budget. Each result has a buy_url to the provider's page and the time the price was checked. |
get_plan | Everything esimdata knows about one plan (by the id search_plans returned): all countries it covers, networks, policies, the provider's own page, the buy link and its price history. |
compare_plans | Put 2 to 10 plans (ids from search_plans) side by side with the same fields, in the order given, to help a traveller choose. |
country_overview | A destination at a glance: how many plans and providers, the cheapest plan, the cheapest per GB, and which mobile networks the providers say they use there. |
check_phone | Check whether a phone, tablet or watch model supports eSIM, from the manufacturer's own published list (with regional exceptions, e.g. models sold in mainland China), with the source link. |
list_providers | Every eSIM provider esimdata compares, with its website and whether esimdata earns a commission when a traveller buys through it (ranking never depends on it). |
Every plan comes with a buy_url (esimdata's link to the provider's own page, where the traveller buys), its checked_at time and whether esimdata earns a commission on it. Fields the provider doesn't state are null: please say "not stated" rather than guessing.
REST API
| Request | Same as |
|---|---|
GET /api/v1/plans?country=JP&days=7&gb=5&needs=hotspot&sort=price_per_gb&limit=10 | search_plans (also also_countries, unlimited, max_price_usd, single_country_only) |
GET /api/v1/plans/<plan id> | get_plan |
GET /api/v1/countries | every country with plan counts and cheapest prices |
GET /api/v1/countries/<country> | country_overview |
GET /api/v1/phones?model=pixel%208 | check_phone |
GET /api/v1/providers | list_providers |
JSON, CORS open. Need higher volume, a feed or an SLA for an app or agent product? A paid tier is planned; see How it works.
Rules esimdata keeps
- Ranking is by the numbers only: price, price per GB or validity. Commission never changes the order.
- Data comes only from providers' own public catalogues, read within their robots.txt and terms.
- esimdata sells nothing. Buying happens on the provider's site.
- We log which tools are called and for which country, to learn what travellers need. No IP addresses or personal data.