CitedTravel
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
Cited travel facts for 195 countries: plugs, currency, emergency numbers, holidays, visa pilot.
| Author | com.citedtravel |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 1936 ms |
| Last measured | 2026-10-26 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"CitedTravel": {
"url": "https://citedtravel.com/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (9)
resolve_countryread-onlyTurns a country name, alias or code (English, Japanese, Chinese) into ISO codes: matches[] {iso2, iso3, name, score}, best first, max 5, empty if none. Call it first when you only have a name: get_country_facts, check_entry_requirements, get_trip_brief and the other tools take ISO codes. Exact, prefix (3+ chars) or substring (4+) match, ignoring case and punctuation; no spelling correction. Names only (CLDR): no sources or confidence. Parameters: pass query as the user wrote it; if nothing matches, retry with the official or local name. lang only localizes the returned names. Examples: {"query":"日本"}, {"query":"South Korea","lang":"ja"}. Read-only; free and keyless, no quota.
Parameters:
query(required) — string — Country name, alias or code, in English, Japanese or Chinese. Case-, space- and punctuation-insensitive (a leading "the" is ignored); matches exactly, by prefix (3+ characters) or by substring (4+ characters); not a spelling corrector.lang— string — Language for localized names (BCP 47). Supported: en, ja, zh-Hans, zh-Hant; aliases such as zh, zh-CN, zh-TW and zh-HK are mapped, and anything else falls back to English. Only names are localized; verbatim official quotes stay in their original language.
Hints: read-only yes · destructive no · idempotent yes · open-world no
get_country_factsread-onlySeveral cited facts for one country in one call: power, currency, emergency numbers, driving side, this year's public holidays, tipping (data.<category>.<field>; a category without data is {}). Use it for a country overview. For one topic use get_emergency_numbers, get_tipping_norms, get_public_holidays (any dates) or check_power_compatibility (adapter verdict); for a whole trip get_trip_brief; for visas check_entry_requirements. Each fact is cited: sources[] (url, license), last_verified, confidence. Parameters: alpha-2 country codes work best (alpha-3 too; names via resolve_country). Request only the categories you need to keep the answer small. Examples: {"country":"JP"}, {"country":"FRA","categories":["power","currency"]}. Read-only; keyless (free key or x402 lifts limits: https://citedtravel.com/pricing/); errors RFC 9457.
Parameters:
country(required) — string — Country as an ISO 3166-1 alpha-2 or alpha-3 code, case-insensitive (e.g. JP, jp or JPN). Names are not accepted: resolve them with resolve_country first.lang— string — Language for localized names (BCP 47). Supported: en, ja, zh-Hans, zh-Hant; aliases such as zh, zh-CN, zh-TW and zh-HK are mapped, and anything else falls back to English. Only names are localized; verbatim official quotes stay in their original language.categories— array — Categories to return; omit for all six.
Hints: read-only yes · destructive no · idempotent yes · open-world no
check_power_compatibilityread-onlyDoes a traveller need a plug adapter or voltage converter? verdict {adapter: not_needed | needed | depends_on_plug, converter: not_needed | usually_not_needed | needed_for_single_voltage_devices | unknown, plug_fit[], frequency_note, guidance}, computed from cited plug, voltage and frequency facts (inputs[], with sources and confidence; top-level confidence is their lowest). Plug fit is conservative. For raw power facts use get_country_facts; for a whole trip get_trip_brief (includes this verdict per destination). Parameters: home_country is where the devices were bought (their plugs and rating), not nationality; destination is where they will be plugged in. Example: {"home_country":"GB","destination":"US"}. Read-only; keyless (free key or x402 lifts limits: https://citedtravel.com/pricing/); errors RFC 9457.
Parameters:
home_country(required) — string — Country where the traveller's devices come from as an ISO 3166-1 alpha-2 or alpha-3 code, case-insensitive (e.g. JP, jp or JPN). Names are not accepted: resolve them with resolve_country first.destination(required) — string — Destination country as an ISO 3166-1 alpha-2 or alpha-3 code, case-insensitive (e.g. JP, jp or JPN). Names are not accepted: resolve them with resolve_country first.lang— string — Language for localized names (BCP 47). Supported: en, ja, zh-Hans, zh-Hant; aliases such as zh, zh-CN, zh-TW and zh-HK are mapped, and anything else falls back to English. Only names are localized; verbatim official quotes stay in their original language.
Hints: read-only yes · destructive no · idempotent yes · open-world no
get_emergency_numbersread-onlyEmergency numbers for one country: data.numbers.value {police, ambulance, fire, general, all_numbers}. A role without its own number is null: then use general, else all_numbers (in 58 countries only all_numbers is filled). Use it when only these numbers are needed; get_country_facts for several facts, get_trip_brief for a whole trip. No data for the country is a not-found error. Each fact is cited: sources[] (url, license), last_verified, confidence. Parameters: country is where the call will be made (the traveller's location, not home); alpha-2 works best. Example: {"country":"JP"}. Read-only; keyless (free key or x402 lifts limits: https://citedtravel.com/pricing/); errors RFC 9457.
Parameters:
country(required) — string — Country as an ISO 3166-1 alpha-2 or alpha-3 code, case-insensitive (e.g. JP, jp or JPN). Names are not accepted: resolve them with resolve_country first.lang— string — Language for localized names (BCP 47). Supported: en, ja, zh-Hans, zh-Hant; aliases such as zh, zh-CN, zh-TW and zh-HK are mapped, and anything else falls back to English. Only names are localized; verbatim official quotes stay in their original language.
Hints: read-only yes · destructive no · idempotent yes · open-world no
get_tipping_normsread-onlyTipping customs for one country: data.norms.value {overall_context, situations {<situation>: {expectation, guidance_type, percent_min, percent_max}}}; percentages only where a source states them. Use it for "should I tip, and how much?"; get_country_facts for several facts, get_trip_brief for a whole trip. Custom, not law: confidence reflects that. Each fact is cited: sources[] (url, license), last_verified, confidence. Parameters: omit situation for all; one situation returns only that (no data gives empty situations, not an error). Examples: {"country":"US"}, {"country":"JP","situation":"taxi"}. Read-only; keyless (free key or x402 lifts limits: https://citedtravel.com/pricing/); errors RFC 9457.
Parameters:
country(required) — string — Country as an ISO 3166-1 alpha-2 or alpha-3 code, case-insensitive (e.g. JP, jp or JPN). Names are not accepted: resolve them with resolve_country first.lang— string — Language for localized names (BCP 47). Supported: en, ja, zh-Hans, zh-Hant; aliases such as zh, zh-CN, zh-TW and zh-HK are mapped, and anything else falls back to English. Only names are localized; verbatim official quotes stay in their original language.situation— string — Return only this situation. A situation with no data gives an empty situations object (not an error). Omit for all situations.
Hints: read-only yes · destructive no · idempotent yes · open-world no
get_public_holidaysread-onlyNational public holidays between two dates: data.holidays[] {date, name} by date, plus one citation per year in data.facts[]. Use it to check travel dates for closures and crowds; get_country_facts has this year's list with other facts, get_trip_brief covers a whole trip. Data spans the current year and the next two (outside: empty list plus coverage_note); no regional holidays. Each fact is cited: sources[] (url, license), last_verified, confidence. Parameters: from and to are inclusive: pass the travel dates, or YYYY-01-01 to YYYY-12-31 for a year. Over two years, or to before from, is an error. Example: {"country":"JP","from":"2026-12-28","to":"2027-01-05"}. Read-only; keyless (free key or x402 lifts limits: https://citedtravel.com/pricing/); errors RFC 9457.
Parameters:
country(required) — string — Country as an ISO 3166-1 alpha-2 or alpha-3 code, case-insensitive (e.g. JP, jp or JPN). Names are not accepted: resolve them with resolve_country first.from(required) — string — First day of the range (inclusive). Calendar date, YYYY-MM-DD.to(required) — string — Last day of the range (inclusive), on or after from and at most two years later. Calendar date, YYYY-MM-DD.lang— string — Language for localized names (BCP 47). Supported: en, ja, zh-Hans, zh-Hant; aliases such as zh, zh-CN, zh-TW and zh-HK are mapped, and anything else falls back to English. Only names are localized; verbatim official quotes stay in their original language.
Hints: read-only yes · destructive no · idempotent yes · open-world no
check_entry_requirementsread-onlyVisa/entry information for a short tourist stay, for a pilot set of passports, from official government sources, with verbatim quotes, official links and a mandatory advisory. Decision support only: never a go/no-go verdict. Returns status (visa_free, visa_free_with_requirements, visa_on_arrival, eta_required, evisa_required, visa_required, unclear), max_stay_days, additional_requirements[], quotes[] (authoritative), official_links, advisory, sources[], confidence, last_verified. One passport, one destination; for a full trip use get_trip_brief, which embeds this per destination. Coverage: pilot passports (the error for others lists them), tourism only. Based on the passport country's official travel advice; the destination's own rules are covered only as far as the official pages quoted in quotes[]. Transit, other visa types and special cases are not covered: point users to official_links, and always show the advisory. Parameters: passport is the nationality of the passport used (dual nationals: one call each); destination is the country entered, not transit stops. Example: {"passport":"GB","destination":"JP"}. Read-only; free API key or x402 per call (https://citedtravel.com/pricing/); errors RFC 9457.
Parameters:
passport(required) — string — Passport (nationality) country as an ISO 3166-1 alpha-2 or alpha-3 code, case-insensitive (e.g. JP, jp or JPN). Names are not accepted: resolve them with resolve_country first.destination(required) — string — Destination country; must differ from passport as an ISO 3166-1 alpha-2 or alpha-3 code, case-insensitive (e.g. JP, jp or JPN). Names are not accepted: resolve them with resolve_country first.lang— string — Language for localized names (BCP 47). Supported: en, ja, zh-Hans, zh-Hant; aliases such as zh, zh-CN, zh-TW and zh-HK are mapped, and anything else falls back to English. Only names are localized; verbatim official quotes stay in their original language.purpose— string — Trip purpose. Only short tourist stays are covered ("tourism"; "tourism_short_stay" is an accepted alias); anything else returns an error.
Hints: read-only yes · destructive no · idempotent yes · open-world no
get_trip_briefread-onlyWhole-trip brief for 1-5 destinations: per destination, in order, entry (as check_entry_requirements, if passport given), power verdict from home_country, currency, emergency numbers, driving side, tipping and holidays between from and to. Use it to summarise a trip; for one fact use check_entry_requirements, check_power_compatibility, get_emergency_numbers, get_tipping_norms or get_public_holidays, and get_country_facts for one country without dates. No passport: entry null, no advisory. If one destination's entry can't be answered (outside pilot, no data, same country) it is {unavailable: reason} and the rest still returns. power is null at home or without plug data; a category without data is {}. An unknown home or destination code, over 5 destinations or a bad date range fails the call. Each fact is cited: sources[] (url, license), last_verified, confidence. Show the advisory. Parameters: passport = nationality (optional); home_country = where traveller and devices come from; destinations in travel order, home only if it is a stop; from/to = whole trip, inclusive. Example: {"passport":"US","home_country":"US","destinations":["JP","KR"],"from":"2026-12-28","to":"2027-01-05"}. Read-only; free API key or x402, charged per call, not per destination (https://citedtravel.com/pricing/); errors RFC 9457.
Parameters:
home_country(required) — string — Country the traveller starts from; used for the adapter/converter verdict as an ISO 3166-1 alpha-2 or alpha-3 code, case-insensitive (e.g. JP, jp or JPN). Names are not accepted: resolve them with resolve_country first.destinations(required) — array — Destination countries, in travel order.from(required) — string — Trip start (inclusive). Calendar date, YYYY-MM-DD.to(required) — string — Trip end (inclusive), on or after from and at most two years later. Calendar date, YYYY-MM-DD.lang— string — Language for localized names (BCP 47). Supported: en, ja, zh-Hans, zh-Hant; aliases such as zh, zh-CN, zh-TW and zh-HK are mapped, and anything else falls back to English. Only names are localized; verbatim official quotes stay in their original language.passport— string — Passport (nationality) country as an ISO 3166-1 alpha-2 or alpha-3 code. Optional: omit to skip entry requirements.
Hints: read-only yes · destructive no · idempotent yes · open-world no
list_recent_changesread-onlyDataset change feed, newest first: data[] {changed_on, fact_id, country, category, change: added | updated | removed, old_value, new_value, source_url}. Use it to refresh caches or alert users when a fact changes, then fetch the current cited value (sources, license, confidence) with the matching tool, e.g. get_country_facts or check_entry_requirements. Entry rows: country is the destination, fact_id is entry:<passport>-><destination>. Parameters: set since to the last changed_on you processed (inclusive: that day repeats). Filter by category and/or country; exactly limit rows means older ones were cut, so raise limit or narrow. Examples: {"since":"2026-10-01"}, {"since":"2026-10-01","category":"entry","country":"JP"}. Read-only; keyless (free key or x402 lifts limits: https://citedtravel.com/pricing/); errors RFC 9457.
Parameters:
since(required) — string — Return changes on or after this date. Calendar date, YYYY-MM-DD.limit— ['integer', 'string'] — Maximum rows, newest first. Default 100; values are clamped to 1-500 (numeric strings are accepted).country— string — Only changes for this country (for entry facts, the destination) as an ISO 3166-1 alpha-2 or alpha-3 code, case-insensitive (e.g. JP, jp or JPN). Names are not accepted: resolve them with resolve_country first.category— string — Only changes in this category (entry = visa/entry pilot). Omit for all.
Hints: read-only yes · destructive no · idempotent yes · open-world no
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.