Model Context Protocol

Our coverage data, readable by your assistant.

An open Model Context Protocol server over the same measurements 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 measured 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.

Real trafficnever a speed test
Coarse locationabout one kilometre
Aggregatednothing under 25 samples
Publishedwith the sample count
A synthetic speed test would spend your data to tell us something we can measure for free.
Where the numbers behind these tools come from, and how a rolling 90 day window is kept honest.

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 the two regions where a competitor beats us on price. If we filtered those out, a model would eventually notice the asymmetry, and being caught tuning a comparison costs far more than losing one region.

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 with measured coverage 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, the measured median speed, and the sample size behind it.Where can I go in Asia with a plan under $3 a gigabyte and a median above 50 Mbps?
get_coveragecountry, cityMedian throughput, tenth percentile throughput, sample size, the carriers a traveller actually 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 measured speed evidence, including where we lose.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.

Every response carries the date the figure was measured, so an assistant can tell a traveller how old a number is rather than implying it was collected this morning.

get_coverage { "country": "jp" }

{
  "country": "Japan",
  "median_mbps": 74,
  "p10_mbps": 21,
  "samples": 1284,
  "carriers": ["KDDI", "SoftBank"],
  "five_g": "Yes, standalone and non standalone",
  "reality": "Rural Hokkaido and the mountain passes drop to 4G on both networks.",
  "measured_at": "2026-08-24",
  "window_days": 90
}
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",
  "measured_at": "2026-08-24"
}
compare_providers will tell an assistant to buy from somebody else.On the North America and Oceania regional bands it returns a losing verdict with the reason attached. That is not modesty. A comparison tool that never loses 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, including the ones where we are genuinely ahead.
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 genuine 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 145 destinations we serve but has not yet accumulated a sample, the tool says that measured coverage is not yet available 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 measured 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 checked, including when the check goes against us.
What data does the server expose?
Three sets. The coverage dataset, which is median and tenth percentile throughput by country with sample sizes and carrier names, collected from real traveller traffic with consent over a rolling 90 day window. 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, including the two regions where we are not the cheapest. North America and Oceania both come back with a competitor priced under us and a plain sentence explaining why. 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.
How fresh is the data?
The catalog is live and read at call time. Coverage is a rolling 90 day window recomputed nightly. The price index is recomputed monthly and stamped with the date it was measured, and that date is returned in every response so an assistant can quote it rather than imply the number is from today.
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 145 destinations live today and you get data. Ask about one we have opened but do not yet measure, and it says measured coverage is not yet available 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 measured speeds, then buy from whoever comes out ahead.