protogrid

Search / com.citedtravel/citedtravel

CitedTravel

R0· no sign-in

Cited travel facts for 195 countries: plugs, currency, emergency numbers, holidays, visa pilot.

v0.2.0 · active · website · descriptor JSON · versions

An agent can connect right now, no human step.Remote endpoint, no authentication, reachable on the last probe.
Quality85new
Trust83of 100
Uptime, 30 days100%
Latency p50195 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "citedtravel": {
      "type": "http",
      "url": "https://citedtravel.com/mcp",
      "headers": {
        "Authorization": "Bearer ${CITEDTRAVEL_TOKEN}"
      }
    }
  }
}
claude mcp add --transport http citedtravel https://citedtravel.com/mcp --header "Authorization: Bearer ${CITEDTRAVEL_TOKEN}"
[mcp_servers.citedtravel]
url = "https://citedtravel.com/mcp"
bearer_token_env_var = "CITEDTRAVEL_TOKEN"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "citedtravel": {
      "type": "remote",
      "url": "https://citedtravel.com/mcp",
      "enabled": true,
      "headers": {
        "Authorization": "Bearer {env:CITEDTRAVEL_TOKEN}"
      }
    }
  }
}
{
  "mcpServers": {
    "citedtravel": {
      "type": "http",
      "url": "https://citedtravel.com/mcp",
      "headers": {
        "Authorization": "Bearer ${CITEDTRAVEL_TOKEN}"
      }
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=citedtravel&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vY2l0ZWR0cmF2ZWwuY29tL21jcCIsImhlYWRlcnMiOnsiQXV0aG9yaXphdGlvbiI6IkJlYXJlciAke0NJVEVEVFJBVkVMX1RPS0VOfSJ9fQ%3D%3D"
}
{
  "servers": {
    "citedtravel": {
      "type": "http",
      "url": "https://citedtravel.com/mcp",
      "headers": {
        "Authorization": "Bearer ${CITEDTRAVEL_TOKEN}"
      }
    }
  }
}
{
  "mcpServers": {
    "citedtravel": {
      "httpUrl": "https://citedtravel.com/mcp",
      "headers": {
        "Authorization": "Bearer ${CITEDTRAVEL_TOKEN}"
      }
    }
  }
}
extensions:
  "citedtravel":
    enabled: true
    name: "citedtravel"
    type: streamable_http
    uri: "https://citedtravel.com/mcp"
    headers:
      "Authorization": "Bearer ${CITEDTRAVEL_TOKEN}"
    timeout: 300

Placeholders to fill from your own secret store: ${CITEDTRAVEL_TOKEN}. The registry never accepts secret values.

Quality 85 / 100new

protocol75 · weight 25
  • warn
    protocol.modernnewest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
  • n/a
    protocol.statelessonly applies to 2026-07-28 servers
  • pass
    protocol.transportstreamable HTTP
  • n/a
    protocol.list_ttlonly applies to 2026-07-28 servers
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene93 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • warn
    tools.description_length2 tools have descriptions over 1,024 characters, which crowds the context
  • pass
    tools.schemasevery tool has an object input schema
  • pass
    tools.annotations9 of 9 tools declare readOnlyHint or destructiveHint
  • pass
    tools.directory_hintsevery tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
  • pass
    tools.token_costabout 4,599 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stabilityn/a · weight 15
  • n/a
    stability.changes, stability.rug_pulltool history recorded for 5 of the 7 days needed
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

9 tools, about 4,599 tokens to load them all · tool set 0565f7cda922 · tools last changed 2026-10-19 · checked 2026-10-20 23:59 UTC

Tool changes

  • list_recent_changeschangeddescription, input schema
    before

    Feed of dataset changes (added, updated, removed), newest first. Use it to refresh caches or alert users when a fact changes. Then fetch the current cited value with the matching tool, e.g. get_country_facts, get_public_holidays or check_entry_requirements. since is inclusive: rows with changed_on on or after it, so the last day you processed comes back again. old_value is null for added rows, new_value for removed ones. No match is an empty list, not an error; an unknown country code is a not-found error. Exactly limit rows means older rows may have been cut: raise limit (max 500) or narrow the filters. For entry facts, country is the destination. Keyless; a free key or x402 lifts the limits (https://citedtravel.com/pricing/). Parameters: since = the last changed_on you processed; filter by category and/or country. Examples: {"since":"2026-10-01"}, {"since":"2026-10-01","category":"entry","country":"JP"}.

    after · 65% of words in common

    Dataset 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.

  • get_trip_briefchangeddescription
    before

    One brief for a trip of 1-5 destinations: per stop, in order, entry (if passport is given), adapter/converter verdict, currency, emergency numbers, driving side, tipping and holidays during the trip. Use it to plan or summarise a trip. For one topic use check_entry_requirements, check_power_compatibility, get_emergency_numbers, get_tipping_norms or get_public_holidays; for one country without dates, get_country_facts. No passport: entry is null. A stop whose entry can't be answered (passport unknown or outside the pilot, no data, same country) gets {unavailable: reason}; the rest still returns. power is null at home or without plug data; a category without data is {}. An unknown home or destination code, or a bad date range, fails the call. Show the advisory. Needs a free API key or x402, charged per call, not per destination (https://citedtravel.com/pricing/). Parameters: passport = nationality (optional); home_country = where traveller and devices come from; destinations in travel order (home only if a stop); from/to = whole trip, inclusive. Example: {"passport":"US","home_country":"US","destinations":["JP","KR"],"from":"2026-12-28","to":"2027-01-05"}.

    after · 80% of words in common

    Whole-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.

  • check_entry_requirementschangeddescription
    before

    Visa and entry information for a short tourist stay, for a pilot set of passports, quoted from official government sources. Decision support only, never a go/no-go verdict: always show the advisory and official links. One passport, one destination; for a full trip use get_trip_brief, which embeds this answer per destination. Based on the passport country's official travel advice; the destination's own rules are covered only as far as the official pages quoted. A passport outside the pilot is an error that lists the covered passports; a pair without data is a not-found error; the same country twice is an error. Transit, other visa types and special cases are not covered: point users to the official links. Needs a free API key or x402 per call (https://citedtravel.com/pricing/). Parameters: passport is the nationality of the passport used (dual nationals: one call per passport); destination is the country entered, not a transit stop. Example: {"passport":"GB","destination":"JP"}.

    after · 67% of words in common

    Visa/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.

  • get_public_holidayschangeddescription, input schema
    before

    Cited national public holidays in one country between two dates. Use it to check travel dates for closures and crowds. get_country_facts has only this year's list (with other facts); get_trip_brief gives the holidays for every stop of a trip. Data covers the current year and the next two; a range outside that returns an empty list with a coverage_note, not an error. National holidays only, no regional ones. An unknown country code is a not-found error. Keyless; a free key or x402 lifts the limits (https://citedtravel.com/pricing/). Parameters: from and to are inclusive; pass the travel dates, or YYYY-01-01 to YYYY-12-31 for a year. to before from, or a range over two years, is an error. Example: {"country":"JP","from":"2026-12-28","to":"2027-01-05"}.

    after · 70% of words in common

    National 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.

  • get_tipping_normschangeddescription, input schema
    before

    Cited tipping customs for one country, overall and per situation. Use it for "should I tip, and how much?". For several facts about the country use get_country_facts; for a whole trip get_trip_brief. Percentages are null unless a source states them; customs, not law, and confidence reflects that. No tipping data for the country, or an unknown code, is a not-found error. Keyless; a free key or x402 lifts the limits (https://citedtravel.com/pricing/). Parameters: omit situation for all situations; with situation, only that one is returned, and a situation without data gives empty situations, not an error. Examples: {"country":"US"}, {"country":"JP","situation":"taxi"}.

    after · 63% of words in common

    Tipping 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.

  • get_emergency_numberschangeddescription, input schema
    before

    Cited emergency phone numbers (police, ambulance, fire, general) for one country. Use it when only these numbers are needed. For several facts about the country use get_country_facts; for a whole trip get_trip_brief, which includes these numbers per destination. A role is null when the source assigns it no number of its own; often all four are null and only all_numbers lists the numbers. So use the role, else general, else all_numbers; never guess. A country with no emergency data, or an unknown code, is a not-found error, not an empty result. Keyless; a free key or x402 lifts the limits (https://citedtravel.com/pricing/). Parameters: country is where the call will be made (the traveller's current location, not home). Example: {"country":"JP"}.

    after · 57% of words in common

    Emergency 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.

  • check_power_compatibilitychangeddescription, input schema
    before

    Tells a traveller whether they need a plug adapter and/or a voltage converter in another country. Use it for "will my charger work there?". For the raw plug, voltage and frequency facts use get_country_facts; for a whole trip use get_trip_brief, which includes this verdict per destination. Computed from cited plug, voltage and frequency facts; confidence is the lowest of those inputs. Plug fit is conservative. Without voltage data the converter verdict is unknown; missing plug data for either country, or an unknown code, is a not-found error. Keyless; a free key or x402 lifts the limits (https://citedtravel.com/pricing/). Parameters: home_country is where the devices were bought (their plugs and voltage rating), not nationality; destination is where they will be plugged in. Example: {"home_country":"GB","destination":"US"}.

    after · 63% of words in common

    Does 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.

  • get_country_factschangeddescription, input schema
    before

    Cited facts for one country in a single call: power, currency, emergency numbers, driving side, this year's public holidays and tipping. 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. A category with no data for the country comes back as an empty object; an unknown country code is a not-found error. Keyless; a free key or x402 lifts the limits (https://citedtravel.com/pricing/). Parameters: country as alpha-2 (alpha-3 works; names via resolve_country). Ask only for the categories you need; omitted or [] means all six. Examples: {"country":"JP"}, {"country":"FRA","categories":["power","currency"]}.

    after · 60% of words in common

    Several 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.

  • resolve_countrychangeddescription
    before

    Finds the ISO codes for a country name, alias or code written in English, Japanese or Chinese. Call it first whenever you only have a name. The other tools (get_country_facts, check_entry_requirements, get_trip_brief, ...) take ISO codes; pass on the best match. Ignores case, spaces and punctuation; matches exactly, by prefix (3+ characters) or by substring (4+); up to 5 matches, best first. No spelling correction: no match is an empty list, not an error. Free and keyless, no quota. Parameters: pass query as the user wrote it; if nothing matches, retry with the official or local name. lang only changes the language of the returned names. Examples: {"query":"日本"}, {"query":"South Korea","lang":"ja"}.

    after · 64% of words in common

    Turns 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.

  • list_recent_changeschangeddescription, input schema
    before

    Dataset 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.

    after · 65% of words in common

    Feed of dataset changes (added, updated, removed), newest first. Use it to refresh caches or alert users when a fact changes. Then fetch the current cited value with the matching tool, e.g. get_country_facts, get_public_holidays or check_entry_requirements. since is inclusive: rows with changed_on on or after it, so the last day you processed comes back again. old_value is null for added rows, new_value for removed ones. No match is an empty list, not an error; an unknown country code is a not-found error. Exactly limit rows means older rows may have been cut: raise limit (max 500) or narrow the filters. For entry facts, country is the destination. Keyless; a free key or x402 lifts the limits (https://citedtravel.com/pricing/). Parameters: since = the last changed_on you processed; filter by category and/or country. Examples: {"since":"2026-10-01"}, {"since":"2026-10-01","category":"entry","country":"JP"}.

Showing the latest 10. Full history: list_changes · trend: quality JSON.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 83 / 100

no-repository
provenance55
liveness100
freshness100
hygiene80

+dns-namespace +website +reachable +uptime-100% +updated-5d-ago -no-repository

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://citedtravel.com/mcp streamable-httpnoneyes100%195 ms2025-11-252026-10-20

Tools (9)

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.
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.
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.
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.
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.
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.
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.
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.
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.

Schemas: list_tools.

Similar MCP servers

Official server.json
{
  "name": "com.citedtravel/citedtravel",
  "icons": [
    {
      "src": "https://citedtravel.com/logo-512.png",
      "sizes": [
        "512x512"
      ],
      "mimeType": "image/png"
    },
    {
      "src": "https://citedtravel.com/favicon.svg",
      "sizes": [
        "any"
      ],
      "mimeType": "image/svg+xml"
    }
  ],
  "title": "CitedTravel",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://citedtravel.com/mcp",
      "type": "streamable-http",
      "headers": [
        {
          "name": "Authorization",
          "isSecret": true,
          "description": "Optional: 'Bearer ct_live_…' free API key (POST https://citedtravel.com/v1/keys). Without it, static tools work keyless and entry/trip tools ask for an x402 payment (USDC on Base)."
        }
      ]
    }
  ],
  "version": "0.2.0",
  "websiteUrl": "https://citedtravel.com/docs/#mcp",
  "description": "Cited travel facts for 195 countries: plugs, currency, emergency numbers, holidays, visa pilot."
}