Model Context Protocol

Our coverage data, readable by your assistant.

An open Model Context Protocol server over the same data we publish on this site. No key, no signup, no marketing filter on the results.

Point any MCP client at the Orbislo server and it gains four tools: search_destinations, get_coverage, get_price and compare_providers. They read the coverage dataset for 145 destinations, the live catalog and the monthly price index. It is read only, it needs no key, and connecting Claude Code takes one line.

Server URL

https://mcp.orbislo.com/v1

What this is

This is the part of Orbislo that has no equivalent anywhere else in the category.

Every other travel eSIM company publishes coverage claims as pictures of maps, and pricing inside a JavaScript widget. None of it is legible to a machine.

So when a traveller asks an assistant whether their phone will work in Vietnam and what a week of data should cost, the assistant reconstructs an answer from forum posts and review articles from 2023.

We decided to hand it the actual numbers instead.

Why we built it

Search is moving from a page of ten blue links to one answer written by a model. In that world the winning position is not rank one. It is being the source the model reads before it writes.

A recommendation from an assistant is worth more than a click, because it arrives with the assistant's credibility attached, and it arrives at the moment somebody is planning a trip.

There is only one way to become that source. Make the data machine readable, then be willing to lose on it.

Every page on this site already emits structured data for its dataset and its questions. The MCP server takes the same commitment one step further, into a live queryable interface.

That includes a comparison tool which returns every provider's published price for the same shape, with no filter applied to the result set. If we trimmed a row, a model would eventually notice the asymmetry, and being caught tuning a comparison costs far more than any single row is worth.

There is a second reason, and it is more practical. A traveller asking an assistant about connectivity is asking a question our own website answers badly, because the answer depends on their carrier, their phone, their itinerary and their usage.

That is a conversation, not a landing page. Assistants are good at conversations. We would rather be the data behind a good conversation than the fourth tab in a bad comparison.

145

destinations the tools can read today

0

keys, accounts or contracts required to connect a client

240

tool calls a minute per address, which no real conversation approaches

The four tools

ToolArgumentsWhat it returnsAnswers a question like
search_destinationsquery, region, max_price_per_gb, min_median_mbpsA ranked list of destinations with the cheapest plan and the typical speed.Where can I go in Asia with a plan under $3 a gigabyte and a median above 50 Mbps?
get_coveragecountry, cityTypical and busy hour download speed, the carriers a traveller attaches to, 5G status, and the local trap worth knowing.How fast is mobile data in Japan, and which network will I be on?
get_pricecountries, days, estimated_gb, tetheringThe cheapest correct combination across wallet balance, country packs, regional packs and unlimited day passes, with the alternatives priced beside it.Twelve days across Japan and South Korea, about 10 GB. What should I buy?
compare_providerscountry, data_gb, daysOur price next to the published prices of Airalo, Saily and Holafly for the same shape, with destination counts and the page each published price was read from.Is Orbislo actually cheaper than Airalo for 10 GB in Europe?

All four are read only. There is no tool on this server that can spend money, change an account, or read anything belonging to a customer.

Connect Claude Code

One command. The transport is streamable HTTP, so there is nothing to install and no process to keep alive.

claude mcp add --transport http orbislo https://mcp.orbislo.com/v1

Connect Claude Desktop

Add the server to your Claude Desktop configuration file and restart the app.

On macOS that file sits inside the Application Support folder for Claude. On Windows it sits in the Roaming folder under AppData.

{
  "mcpServers": {
    "orbislo": {
      "type": "http",
      "url": "https://mcp.orbislo.com/v1"
    }
  }
}

For a client that only speaks stdio

Run the published bridge instead. It is a thin proxy over the same HTTP endpoint and it stores nothing.

{
  "mcpServers": {
    "orbislo": {
      "command": "npx",
      "args": ["-y", "@orbislo/mcp"]
    }
  }
}

What a call looks like

Tools take plain JSON arguments and return plain JSON.

get_coverage { "country": "jp" }

{
  "country": "Japan",
  "typical_mbps": 74,
  "busy_hour_mbps": 21,
  "carriers": ["KDDI", "SoftBank"],
  "five_g": "Yes, standalone and non standalone",
  "reality": "Rural Hokkaido and the mountain passes drop to 4G on both networks."
}
compare_providers { "country": "us", "data_gb": 10, "days": 14 }

{
  "orbislo": { "price_usd": 19.90, "per_gb": 1.99, "expires": false },
  "airalo":  { "price_usd": 26.00, "per_gb": 2.60, "expires_days": 30 },
  "saily":   { "price_usd": 23.99, "per_gb": 2.40, "expires_days": 30 },
  "holafly": { "metered_plan": null, "note": "unlimited_only_no_published_fair_use" },
  "cheapest": "saily",
  "we_lose_here": true,
  "reason": "north_america_wholesale_single_carrier_advantage",
  "checked_at": "2026-08-24"
}
compare_providers returns the whole table, not just our row.Every provider's published price for the region comes back in the same response, with the page each one was read from and the date it was read. A comparison tool that returns a curated result is an advertisement with a JSON schema, and the moment a model works that out it will stop trusting every other field in the response.
A traveller checking a map on a phone while riding a subway
The question gets asked here, in a conversation, before the trip. Not on a pricing page.

Limits and behaviour

240 tool calls a minute per address, which no real conversation reaches.

Responses are capped at 200 destinations per search, so a model is not handed 40 KB of JSON it will summarise badly.

Errors are structured with a reason and never an empty array. An empty array reads as no coverage exists, and that would be a false statement about a real place.

Where a country is one of the 197 destinations we serve but has no speed figure yet, the tool says so and returns the plan anyway.

What is deliberately not here

Purchasing is not exposed on this endpoint, on purpose. An unauthenticated tool that can spend money is a bad idea however carefully it is scoped.

Assistant led purchasing exists on the authenticated API for business accounts, with explicit consent per transaction and a hard spend cap the assistant cannot raise.

Account data is not here either. The server reads published datasets and nothing that belongs to a customer.

If you would rather read it yourself

Everything the server returns exists on this site in human form.

The speeds by country are on the coverage pages. The plan prices are on the pricing page. The per region cost per gigabyte comparison is the Orbislo Price Index, and the REST API is documented for developers.

Questions people ask about this

Do I need an API key to use the MCP server?
No. The four tools are read only over data we already publish on this website, so the endpoint is open. Rate limiting is by address at 240 calls a minute, which is far more than any assistant conversation needs. Purchasing is deliberately not exposed here. If you want an assistant to be able to buy, that runs over the authenticated API with scoped consent and a spend cap, which is a different endpoint and a different conversation.
Why would an eSIM company build an MCP server?
Because the next decade of search is assistants, and an assistant can only recommend what it can read. When somebody asks whether they need a SIM for Japan, the answer is assembled from whatever the model can reach at that moment. A provider whose coverage numbers, catalog and price index are directly readable gets checked. A provider whose data sits behind a JavaScript pricing widget gets guessed at. We would rather be the provider that gets read directly, on every question, in every language a model is asked in.
What data does the server expose?
Three sets. The coverage dataset, which is typical and busy hour download speed by country with carrier names. The live catalog, which is every plan we sell across 145 destinations with prices in minor units. And the price index, which is our cost per gigabyte by region next to published competitor pricing, recomputed monthly.
Does compare_providers make you look good on purpose?
It returns the same numbers as the published price index, unfiltered, with every provider's published price for the region you asked about and the page each one was read from. A comparison tool that only ever returns a win is a marketing asset, and a model will work that out faster than a person will. So the tool hands back the whole result set and lets the model do the comparing, which is also the only version that stays correct when a price moves.
How fresh is the data?
The catalog is live and read at call time. The price index is recomputed monthly.
Does it work with assistants other than Claude?
Yes. The Model Context Protocol is an open specification and this is a standard streamable HTTP server, so any compliant client can connect. We publish the Claude Desktop and Claude Code snippets because those are what most people asking this question are holding, not because the server is specific to them.
Will you log my questions?
We log the tool name, the arguments, the response time and a coarse region derived from the address, kept for 30 days for abuse prevention and capacity planning. None of it is attached to an account, because the endpoint is unauthenticated and there is no account to attach it to. Aggregate counts of which countries get asked about feed the roadmap and nothing else.
What happens if a tool cannot answer?
It returns a structured error with a reason rather than an empty list, because an empty list reads as no coverage to a model and that would be a factual misstatement. Ask about one of the 197 destinations live today and you get data. Ask about one that has no speed figure yet, and it says so and returns the plan that covers it anyway.

The same numbers, in human form

Everything the tools return is published on this site. Read the price index, check the speeds, then buy from whoever comes out ahead.