Skip to main content
Glama

varioroam eSIM configurator

Server Details

Build-your-own travel eSIM: live quotes by country, GB, days and networks, plus a buy link.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
99.8% over 23 days
Last Tested
Transport
Streamable HTTP · MCP 2025-06-18
URL
ChatGPT
–
Claude
–

TDQS

A4/5.0

Scored across 8 tools

Disambiguation4/5

The tools mostly have distinct roles, with clear guidance separating quote_esim, price_grid, plan_trip, and recommend_config by single vs. multi-country and by explicit size vs. usage-based sizing. There is still some conceptual overlap among the four pricing/configuration tools, but the descriptions provide usable boundaries.

Naming Consistency4/5

All names use snake_case and are readable, with a mostly consistent verb_noun pattern such as get_networks, list_destinations, plan_trip, quote_esim, and start_checkout. price_grid is a minor deviation as a noun phrase rather than a verb-led action.

Tool Count5/5

Eight tools is well-scoped for an eSIM configurator: coverage lookup, network details, pricing, multi-country planning, recommendations, shop facts, and checkout each justify their place. The set is neither thin nor bloated.

Completeness4/5

The surface covers the main pre-purchase journey from destination discovery through quoting, recommendation, and checkout, including multi-country trips and budget checks. Gaps remain around post-purchase flows such as top-up purchase, activation, or order tracking, though some of these may be intentionally informational only.

Available Tools

8 tools
get_networksNetworks of a countryA
Read-onlyIdempotent
Inspect

The mobile networks the customer can tick for one country (operator name, 4G/5G) with the price of a reference eSIM on each network alone (1 GB · 7 days), so you can say which network is the cheapest and what the others add.

NameRequiredDescriptionDefault
bucketNoOptional language-region bucket the customer shops in, e.g. en-gb, de-de (sets currency and link locale). Defaults from language.
currencyNo
languageNoISO language of the conversation, e.g. en, de, ja. Localizes country names and sets the language/currency of links and prices.
destinationYesCountry in ANY language or its ISO code, e.g. "Japan", "Japon", "jp". Map a city to its country first. One country per eSIM.

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish that this is a safe, read-only, idempotent, non-destructive operation. The description adds useful context by specifying the pricing basis (1 GB · 7 days) and that the tool returns network-level details, but it does not discuss rate limits, freshness, or result shape.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single dense sentence with no filler. It front-loads the resource and scopes the returned data efficiently, though the parenthetical pricing detail makes it slightly hard to parse at first read.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only tool with no output schema, the description sufficiently covers the returned fields and the pricing reference. It does not describe the return container or pagination, but annotations and the schema handle most remaining safety and parameter concerns.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 75%, leaving mainly currency undocumented. The description reinforces that only one country is queried but adds no syntax or format guidance for bucket, currency, language, or destination beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the resource (mobile networks available per country) and the exact data returned: operator name, 4G/5G, and a reference eSIM price per network. It does not explicitly name or contrast with sibling tools, so it falls short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It implies the tool is used to determine which network is cheapest and what others add, but it does not state when to use it instead of alternatives such as price_grid or recommend_config. Usage is inferable but not explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_shop_factsShop factsA
Read-onlyIdempotent
Inspect

What varioroam is and how it works, in the shop’s own words: the configurable eSIM, ranges, delivery, payment, hotspot, activation, top-ups (add data or days), e-mails, support. Use for any question that is not a price.

NameRequiredDescriptionDefault
bucketNoOptional language-region bucket the customer shops in, e.g. en-gb, de-de (sets currency and link locale). Defaults from language.
languageNoISO language of the conversation, e.g. en, de, ja. Localizes country names and sets the language/currency of links and prices.

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so the safety profile is covered. The description adds the useful nuance that content is presented 'in the shop's own words' (i.e. shop-authored copy rather than neutral data), but says nothing about return format, freshness, or that results are localized by the bucket param.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two front-loaded sentences with no filler; the topic list is dense but each item maps to a real question an agent might get. The enumeration is long but earns its place by signalling coverage boundaries.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only FAQ-style retrieval tool with no output schema and two optional, fully documented parameters, the description gives enough to know what content will come back and when to call it. Return shape and localization effects are the only remaining gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description mentions no behaviour for bucket or language even though these control currency, locale and link language, so it adds no meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific resource (shop facts) and enumerates the topical coverage: configurable eSIM, ranges, delivery, payment, hotspot, activation, top-ups, e-mails, support. It is distinguishable from the price-oriented siblings via the closing clause, though it does not name them directly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Use for any question that is not a price' gives a clear use condition plus an explicit exclusion that routes pricing questions away from this tool. It stops short of naming the alternative tools (price_grid, quote_esim), which keeps it from a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_destinationsList destinationsA
Read-onlyIdempotent
Inspect

Every country varioroam can build an eSIM for, with the number of selectable networks and the starting price (1 GB, 1 day, cheapest network). Use to check coverage or to compare many countries at once.

NameRequiredDescriptionDefault
bucketNoOptional language-region bucket the customer shops in, e.g. en-gb, de-de (sets currency and link locale). Defaults from language.
currencyNoOptional ISO 4217 override for prices.
languageNoISO language of the conversation, e.g. en, de, ja. Localizes country names and sets the language/currency of links and prices.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive and closed-world, so safety is covered. The description adds genuinely useful behavioral context by defining the price basis (1 GB, 1 day, cheapest network), which prevents misreading the 'starting price'. It omits pagination/size limits, which keeps it below 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One sentence describing contents plus one sentence on usage; zero filler and the price-basis qualifier is included exactly where it prevents ambiguity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description usefully sketches the return shape (country, network count, starting price basis), and the schema handles the inputs. Only the absence of result-size or freshness details keeps it from being fully complete for a list tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so bucket, currency and language are fully documented in the schema, including the default-from-language behavior. The description adds no parameter meaning beyond that, making the baseline 3 correct.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('List destinations') and what each row contains (countries, selectable network count, starting price with its 1 GB / 1 day / cheapest-network basis). It distinguishes itself functionally from single-country pricing siblings, but never names a sibling to route against.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear usage context: 'check coverage or compare many countries at once,' which implies a survey/browse intent versus the per-country quoting tools. No explicit when-not-to-use or named alternative (e.g. price_grid, quote_esim) is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

plan_tripPlan a multi-country tripA
Read-onlyIdempotent
Inspect

A trip through several countries (max 5): one eSIM per country, each quoted with the same data pool and days unless given per country (gb omitted = sized for normal use from the days). days is PER COUNTRY, never the whole trip: for a 12-day trip through Japan and Thailand pass per_country days that add up to 12 (e.g. 7 + 5). Returns one line per country with price and buy_url, plus the total. Use when the customer names two or more countries and a size (2–5 destinations); for one country call quote_esim; use recommend_config when they describe usage instead.

NameRequiredDescriptionDefault
gbNoData pool per country in whole GB (1–100). Omit = sized for normal use from the days (1.5 GB/day).
daysNoValidity days in EACH country (1–90, default 7) — NOT the length of the whole trip. A 12-day trip through 3 countries is about 4 days per country: split the trip with per_country days that add up to the trip length.
bucketNoOptional language-region bucket the customer shops in, e.g. en-gb, de-de (sets currency and link locale). Defaults from language.
currencyNo
languageNoISO language of the conversation, e.g. en, de, ja. Localizes country names and sets the language/currency of links and prices.
per_countryNoOptional overrides per country (gb and/or days, same ranges as above). Use it to split the trip: the days of all countries together should add up to the trip length.
destinationsYesCountries of the trip (2–5), any language or ISO codes, in travel order.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/closed-world, so the safety profile is covered. The description adds real behavior beyond them: the 5-country cap, the default sizing rule (gb omitted = 1.5 GB/day from days), and the per-country output format with total. It doesn't discuss failures (e.g. an unsupported destination) or fallback when a country has no eSIM, which is why it isn't a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One dense paragraph, front-loaded with purpose, then the per-country day rule, then return shape, then routing to alternatives — a sensible order. Slightly redundant with the schema's own days description, and the parenthetical explanations stack up, but no sentence is filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 7-param, 1-required tool with no output schema, the description covers the destinations, days, gb, per_country and return values adequately. The minor gaps are the locale params (bucket, currency, language) and no guidance on what happens when a destination in the list isn't sold — small omissions for a read-only quoting tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 86%, so the baseline is 3, but the description earns more by hammering the most error-prone semantic: days is PER COUNTRY, never trip length, with a concrete worked example (12-day Japan+Thailand trip = 7 + 5). That's the exact misreading an agent would make from the schema alone. bucket and currency get no description treatment, capping it at 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('a trip through several countries (max 5)'), the per-country quoting model, and the exact return shape (one line per country with price and buy_url, plus total). It explicitly separates itself from quote_esim (single country) and recommend_config (usage descriptions), so an agent can pick it without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit trigger ('when the customer names two or more countries and a size, 2–5 destinations') plus named alternatives with their selecting conditions: quote_esim for one country, recommend_config when they describe usage. Both when-to-use and when-not-to-use are covered.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

price_gridPrice gridA
Read-onlyIdempotent
Inspect

Prices for several GB × days combinations of one country in one call (max 8 × 8), e.g. to compare with other providers or to find the best fit for a trip. Same server prices as quote_esim.

NameRequiredDescriptionDefault
gbYesUp to 8 whole-GB values, e.g. [1,3,5,10,20].
daysYesUp to 8 day values, e.g. [3,7,15,30].
bucketNoOptional language-region bucket the customer shops in, e.g. en-gb, de-de (sets currency and link locale). Defaults from language.
currencyNo
languageNoISO language of the conversation, e.g. en, de, ja. Localizes country names and sets the language/currency of links and prices.
networksNoOptional: operator names (or codes) from get_networks to include. Omit = the cheapest network of the country. The dearest included network sets the data price and every network beyond the first adds a small fee.
destinationYesCountry in ANY language or its ISO code, e.g. "Japan", "Japon", "jp". Map a city to its country first. One country per eSIM.

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is fully covered. The description adds the 8 × 8 cap (also encoded in the schema) and the useful consistency note that prices match quote_esim, but discloses no pricing edge cases, currency behavior, or latency/cost traits beyond that.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences, front-loaded with the capability and its cardinality bound before the use case. The closing note on quote_esim pricing parity is short and earns its place by clarifying result consistency.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only pricing lookup with rich schema descriptions and no output schema, the description covers scope, limits and intended use adequately. It could be fuller on how the grid result is shaped or what currency/bucket defaults resolve to, but nothing critical to calling it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 86%, so the schema already documents gb, days, bucket, language, networks and destination in detail. The description adds only the aggregate 8 × 8 bound and 'one country per eSIM', which the schema largely repeats; baseline 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific resource (prices) with explicit scope: a grid of GB × days combinations for one country in a single call, capped at 8 × 8. It also names the sibling quote_esim and ties its pricing to it, so the agent can distinguish batch-grid pricing from a single quote without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete intent ('compare with other providers' or 'find the best fit for a trip') and implies the batch use case, which is clear guidance. It stops short of an explicit when-not rule (e.g. 'use quote_esim instead for a single combination'), so it lands at a strong 4 rather than a full 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

quote_esimQuote one configurationA
Read-onlyIdempotent
Inspect

Use while the customer is still deciding — "how much is …?": the exact price of one eSIM configuration (country, data GB 1–100, days 1–90, networks), the server price the customer would pay. Quote it as returned, never compute or scale it yourself. The result carries a buy_url for reference; when the customer says they want to buy, call start_checkout instead.

NameRequiredDescriptionDefault
gbYesData pool in whole GB for the whole trip (1–100). One pool, not per day. Not sure how much? Call recommend_config.
daysYesValidity days (1–90).
bucketNoOptional language-region bucket the customer shops in, e.g. en-gb, de-de (sets currency and link locale). Defaults from language.
currencyNo
languageNoISO language of the conversation, e.g. en, de, ja. Localizes country names and sets the language/currency of links and prices.
networksNoOptional: operator names (or codes) from get_networks to include. Omit = the cheapest network of the country. The dearest included network sets the data price and every network beyond the first adds a small fee.
destinationYesCountry in ANY language or its ISO code, e.g. "Japan", "Japon", "jp". Map a city to its country first. One country per eSIM.

Output Schema

NameRequiredDescription
isoNoISO 3166-1 alpha-2, lower case.
daysNoValidity in days, counted from the first connection at the destination.
noteNoPresent when something about the request had to be adjusted — read it to the customer.
priceNoFULL price of this configuration in currency — the amount paid. Not per day, not per GB.
topupNoHow the customer adds data or days to this eSIM later (not through the tools).
buy_urlNoConfigurator pre-set to exactly this configuration. Use verbatim.
data_gbNoTotal data pool for the whole validity (whole GB). Not per day.
hotspotNo
currencyNo
networksNoOperator names included in this eSIM.
destinationNoResolved country name (localized).
price_basisNo
price_is_finalNo
activation_triggerNo
networks_unmatchedNoPresent when a requested network does not exist in this country: those names. The quote then uses the networks listed in networks.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish readOnly/idempotent/non-destructive, but the description adds real behavioral context: the price must be quoted verbatim ('never compute or scale it yourself') and the response carries a buy_url for reference only. It doesn't cover failure modes (unsupported destination, no matching config), so it falls just short of a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the usage trigger, then the behavioral constraint and the hand-off to start_checkout. Dense but every clause carries routing or behavior information; only mild crowding of three distinct instructions into one sentence.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return-value detail is unnecessary, and the description already covers when to use it, how to treat the result, and the next tool in the workflow. It omits any note about invalid or unavailable configurations, which is the one gap for a pricing tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 86%, so the schema already explains gb, days, destination, networks, bucket and language in detail. The description adds only a restatement of the GB/day ranges, not new syntax or defaults beyond the schema, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('the exact price of one eSIM configuration') with the key dimensions (country, GB 1–100, days 1–90, networks), which clearly separates it from price_grid (bulk grid) and recommend_config (sizing advice). An agent can route between quote_esim and its siblings without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly scopes timing ('Use while the customer is still deciding') and names the alternative plus the trigger that selects it ('when the customer says they want to buy, call start_checkout instead'). The schema also points to recommend_config for uncertain data amounts, so the when/when-not guidance is complete.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

recommend_configRecommend a configurationA
Read-onlyIdempotent
Inspect

Use when the customer describes a trip instead of a size: country (or up to 5), days and how they use data (usage light / normal / heavy, or gb_per_day). Sizes the data pool from the data guide and returns three server-quoted configurations per country — exact, comfortable (×1.5) and generous (×2) — each with its price, networks, a one-line reason and its buy_url, plus trip totals and an optional budget check. Prices are the same as quote_esim. Give destination (one country) or destinations (several) — one of the two is required; a call without a country fails with invalid_argument.

NameRequiredDescriptionDefault
daysYesDays of the trip (per country for a multi-country trip; 1–90).
usageNolight ≈ 0.5 GB/day, normal ≈ 1.5 GB/day (default), heavy ≈ 4 GB/day.
bucketNoOptional language-region bucket the customer shops in, e.g. en-gb, de-de (sets currency and link locale). Defaults from language.
budgetNoOptional budget for the whole trip in the quoted currency; options above it are marked.
currencyNo
languageNoISO language of the conversation, e.g. en, de, ja. Localizes country names and sets the language/currency of links and prices.
networksNoOptional: operator names (or codes) from get_networks to include. Omit = the cheapest network of the country. The dearest included network sets the data price and every network beyond the first adds a small fee.
gb_per_dayNoOptional: the customer's own estimate in GB per day (wins over usage).
destinationNoCountry in ANY language or its ISO code, e.g. "Japan", "Japon", "jp". Map a city to its country first. One country per eSIM. Required unless destinations is given.
per_countryNoOptional days per country for a multi-country trip.
destinationsNoSeveral countries (max 5), any language or ISO codes. Use instead of destination for a multi-country trip. Required unless destination is given.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/idempotent annotations, the description discloses the return shape (three tiers with ×1.5 and ×2 multipliers, each with price, networks, reason, buy_url), trip totals, an optional budget check, and the error behavior for a missing country. It also establishes pricing parity with quote_esim, which an agent needs for consistency of answers.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The trigger condition is front-loaded in the first clause, and the paragraph is dense with useful detail rather than filler. It is a single long run-on sentence-heavy block, however, so the return-shape and error details are harder to scan than a short structured breakdown would be.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 11-parameter tool with no output schema, the description covers the trigger, required inputs, the three-tier output, totals, budget check, pricing parity, and a failure mode — everything an agent needs to select and call it correctly. Nothing material is left unstated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is already 91%, so the baseline is 3, but the description adds meaning the schema lacks: the either/or requirement between destination and destinations (the schema marks only days as required), the gb_per_day-over-usage precedence, and the budget marking behavior. The remaining parameter detail is left to the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource — it sizes a data pool from the data guide and returns three server-quoted configurations per country — and frames the trigger precisely ('when the customer describes a trip instead of a size'). It is distinguishable from siblings like quote_esim (pricing parity noted) and get_networks (referenced for operator names).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear context ('country (or up to 5), days and how they use data') and explicitly states the required-input constraint ('one of the two is required; a call without a country fails with invalid_argument'). The contrast 'instead of a size' implicitly routes to the sibling that handles explicit sizes, but no alternative is named outright, so this falls short of a full when/when-not with named alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

start_checkoutStart secure checkoutA
Read-onlyIdempotent
Inspect

Use only once the customer has decided to buy ("I'll take it", "how do I buy?"): the checkout handoff. Returns the buy_url to give the customer, the final price and a ready-to-send checkout block (next_step, payment_methods, delivery) — on the page they press "Get it" and pay securely. No account needed; the eSIM is delivered on screen and by e-mail right after payment. No in-chat order tracking, no discount codes. For prices while the customer is still comparing, use quote_esim.

NameRequiredDescriptionDefault
gbYesData pool in whole GB (1–100).
daysYesValidity days (1–90).
bucketNoOptional language-region bucket the customer shops in, e.g. en-gb, de-de (sets currency and link locale). Defaults from language.
currencyNo
languageNoISO language of the conversation, e.g. en, de, ja. Localizes country names and sets the language/currency of links and prices.
networksNoOptional: operator names (or codes) from get_networks to include. Omit = the cheapest network of the country. The dearest included network sets the data price and every network beyond the first adds a small fee.
destinationYesCountry in ANY language or its ISO code, e.g. "Japan", "Japon", "jp". Map a city to its country first. One country per eSIM.

Output Schema

NameRequiredDescription
isoNoISO 3166-1 alpha-2, lower case.
daysNoValidity in days, counted from the first connection at the destination.
noteNoPresent when something about the request had to be adjusted — read it to the customer.
priceYesFULL price of this configuration in currency — the amount paid. Not per day, not per GB.
topupNoHow the customer adds data or days to this eSIM later (not through the tools).
buy_urlYesConfigurator pre-set to exactly this configuration. Use verbatim.
data_gbNoTotal data pool for the whole validity (whole GB). Not per day.
hotspotNo
messageNoA ready-to-send line for the customer.
currencyYes
deliveryNoHow and when the eSIM arrives.
networksNoOperator names included in this eSIM.
next_stepYesWhat the customer does now: open buy_url, press "Get it", pay.
destinationNoResolved country name (localized).
price_basisNo
price_is_finalNo
payment_methodsNo
activation_triggerNo
networks_unmatchedNoPresent when a requested network does not exist in this country: those names. The quote then uses the networks listed in networks.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive behavior, but the description adds important context: no account needed, the eSIM is delivered on screen and by e-mail after payment, and unsupported capabilities are ruled out. This is rich behavioral disclosure beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The trigger condition is front-loaded in the first sentence, and each subsequent clause adds usable context. It is dense with parenthetical details, but appropriate for a tool whose use must be tightly constrained.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has an output schema, seven parameters, and high schema coverage; the description still covers when to use it, what it returns, what happens after payment, and the relevant alternative. Nothing critical for correct invocation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 86%, so the schema already carries most parameter meaning. The description does not add parameter syntax, format, or pricing logic beyond what the schema provides, so it stays at the baseline for high-coverage schemas.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific action and resource: the checkout handoff that returns buy_url, final price, and a checkout block. It explicitly distinguishes itself from quote_esim for price comparisons, so an agent can route to it without opening the sibling schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit trigger phrases and the condition for use: only once the customer has decided to buy. It also names the alternative for the comparison stage and lists exclusions such as no in-chat order tracking and no discount codes.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool update
    • Changedplan_trip2 fields changed
      • changedInput schema / properties / days / description
        Previous value: -"Validity days per country (1–90). Default 7."New value: +"Validity days in EACH country (1–90, default 7) — NOT the length of the whole trip. A 12-day trip through 3 countries is about 4 days per country: split the trip with per_country days that add up to the trip length."
      • changedInput schema / properties / per_country / description
        Previous value: -"Optional overrides per country (gb and/or days, same ranges as above)."New value: +"Optional overrides per country (gb and/or days, same ranges as above). Use it to split the trip: the days of all countries together should add up to the trip length."
  2. 2 tool updates
    • Changedplan_trip12 fields changed
      • addedInput schema / properties / days / maximum
        Added value: +90
      • addedInput schema / properties / days / minimum
        Added value: +1
      • changedInput schema / properties / destinations / description
        Previous value: -"Countries of the trip, any language or ISO codes, in travel order."New value: +"Countries of the trip (2–5), any language or ISO codes, in travel order."
      • addedInput schema / properties / destinations / minItems
        Added value: +2
      • changedInput schema / properties / per_country / description
        Previous value: -"Optional overrides per country (gb and/or days)."New value: +"Optional overrides per country (gb and/or days, same ranges as above)."
      • addedInput schema / properties / per_country / items / properties / days / description
        Added value: +"Validity days (1–90) for this country."
      • addedInput schema / properties / per_country / items / properties / days / maximum
        Added value: +90
      • addedInput schema / properties / per_country / items / properties / days / minimum
        Added value: +1
      • addedInput schema / properties / per_country / items / properties / gb / description
        Added value: +"Whole GB (1–100) for this country."
      • addedInput schema / properties / per_country / items / properties / gb / maximum
        Added value: +100
      • addedInput schema / properties / per_country / items / properties / gb / minimum
        Added value: +1
      • changedInput schema / properties / per_country / items / properties / gb / type
        Previous value: -"number"New value: +"integer"
    • Changedrecommend_config2 fields changed
      • changedInput schema / properties / destination / description
        Previous value: -"Country in ANY language or its ISO code, e.g. \"Japan\", \"Japon\", \"jp\". Map a city to its country first. One country per eSIM."New value: +"Country in ANY language or its ISO code, e.g. \"Japan\", \"Japon\", \"jp\". Map a city to its country first. One country per eSIM. Required unless destinations is given."
      • changedInput schema / properties / destinations / description
        Previous value: -"Several countries (max 5), any language or ISO codes. Use instead of destination for a multi-country trip."New value: +"Several countries (max 5), any language or ISO codes. Use instead of destination for a multi-country trip. Required unless destination is given."
  3. 5 tool updates
    • Changedplan_trip4 fields changed
      • changedInput schema / properties / gb / description
        Previous value: -"Data pool per country in GB (1–100). Default 5."New value: +"Data pool per country in whole GB (1–100). Omit = sized for normal use from the days (1.5 GB/day)."
      • addedInput schema / properties / gb / maximum
        Added value: +100
      • addedInput schema / properties / gb / minimum
        Added value: +1
      • changedInput schema / properties / gb / type
        Previous value: -"number"New value: +"integer"
    • Changedprice_grid2 fields changed
      • changedInput schema / properties / gb / description
        Previous value: -"Up to 8 GB values, e.g. [1,3,5,10,20]."New value: +"Up to 8 whole-GB values, e.g. [1,3,5,10,20]."
      • changedInput schema / properties / gb / items / type
        Previous value: -"number"New value: +"integer"
    • Changedquote_esim11 fields changed
      • addedInput schema / properties / days / maximum
        Added value: +90
      • addedInput schema / properties / days / minimum
        Added value: +1
      • changedInput schema / properties / gb / description
        Previous value: -"Data pool in GB for the whole trip (1–100, whole numbers)."New value: +"Data pool in whole GB for the whole trip (1–100). One pool, not per day. Not sure how much? Call recommend_config."
      • addedInput schema / properties / gb / maximum
        Added value: +100
      • addedInput schema / properties / gb / minimum
        Added value: +1
      • changedInput schema / properties / gb / type
        Previous value: -"number"New value: +"integer"
      • changedOutput schema / properties / data_gb / description
        Previous value: -"Total data pool for the whole validity (GB). Not per day."New value: +"Total data pool for the whole validity (whole GB). Not per day."
      • changedOutput schema / properties / data_gb / type
        Previous value: -"number"New value: +"integer"
      • addedOutput schema / properties / networks_unmatched
        Added value: +{
        +  "description": "Present when a requested network does not exist in this country: those names. The quote then uses the networks listed in networks.",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / note
        Added value: +{
        +  "description": "Present when something about the request had to be adjusted — read it to the customer.",
        +  "type": "string"
        +}
      • addedOutput schema / properties / topup
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "How the customer adds data or days to this eSIM later (not through the tools).",
        +  "properties": {
        +    "how": {
        +      "type": "string"
        +    },
        +    "kind": {
        +      "enum": [
        +        "data_days"
        +      ],
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Addedrecommend_config
    • Changedstart_checkout9 fields changed
      • changedInput schema / properties / gb / description
        Previous value: -"Data pool in GB (1–100)."New value: +"Data pool in whole GB (1–100)."
      • addedInput schema / properties / gb / maximum
        Added value: +100
      • addedInput schema / properties / gb / minimum
        Added value: +1
      • changedInput schema / properties / gb / type
        Previous value: -"number"New value: +"integer"
      • changedOutput schema / properties / data_gb / description
        Previous value: -"Total data pool for the whole validity (GB). Not per day."New value: +"Total data pool for the whole validity (whole GB). Not per day."
      • changedOutput schema / properties / data_gb / type
        Previous value: -"number"New value: +"integer"
      • addedOutput schema / properties / networks_unmatched
        Added value: +{
        +  "description": "Present when a requested network does not exist in this country: those names. The quote then uses the networks listed in networks.",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / note
        Added value: +{
        +  "description": "Present when something about the request had to be adjusted — read it to the customer.",
        +  "type": "string"
        +}
      • addedOutput schema / properties / topup
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "How the customer adds data or days to this eSIM later (not through the tools).",
        +  "properties": {
        +    "how": {
        +      "type": "string"
        +    },
        +    "kind": {
        +      "enum": [
        +        "data_days"
        +      ],
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
  4. 7 tool updates
    • First observedget_networks
    • First observedget_shop_facts
    • First observedlist_destinations
    • First observedplan_trip
    • First observedprice_grid
    • First observedquote_esim
    • First observedstart_checkout

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables assistants to look up verified daily cheapest travel eSIM and physical SIM sellers and prices for 54 destination countries and 1–30 day trips, compare countries by cost, check recent price trends, and inspect seller price-change and sell-out histories. It is a free, no-auth, read-only remote MCP server whose results include a source citation and as-of date.
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI assistants to search and compare travel eSIM data plans by destination, trip length, data amount, unlimited/daily type, local phone number, local or roaming network, multi-country coverage, budget, hotspot and 5G, returning plan details plus a link to buy. Read-only with no sign-in or API key required.
    1
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources