# CitedTravel

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

- name: com.citedtravel/citedtravel
- version: 0.2.0
- connection class: R0 (autonomous)
- trust: 83/100 flags: no-repository
- quality: 85/100 (new)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/com.citedtravel%2Fcitedtravel
- tools: https://api.protogrid.dev/v1/servers/com.citedtravel%2Fcitedtravel/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "citedtravel": {
      "type": "http",
      "url": "https://citedtravel.com/mcp",
      "headers": {
        "Authorization": "Bearer ${CITEDTRAVEL_TOKEN}"
      }
    }
  }
}
```

Placeholders to fill: `${CITEDTRAVEL_TOKEN}`.

## Trust

- hygiene: 80
- liveness: 100
- freshness: 100
- provenance: 55
- drivers: +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.

## Quality 85/100 (new)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 93 (weight 30)

- pass `tools.descriptions`: every tool has a description
- warn `tools.description_length`: 2 tools have descriptions over 1,024 characters, which crowds the context
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 9 of 9 tools declare readOnlyHint or destructiveHint
- pass `tools.directory_hints`: every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
- pass `tools.token_cost`: about 4,599 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: n/a (weight 15)

- n/a `stability.changes`, `stability.rug_pull`: tool history recorded for 5 of the 7 days needed

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 9, about 4,599 tokens to load them all
- tool set hash: 0565f7cda92286b014b349fb74a2ae46
- tools last changed: 2026-10-19T01:09:46.629Z
- badge: [![protogrid quality](https://protogrid.dev/badge/com.citedtravel/citedtravel.svg)](https://protogrid.dev/servers/com.citedtravel/citedtravel)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-10-19 `list_recent_changes` changed (description, inputSchema)
  - 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: 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.
- 2026-10-19 `get_trip_brief` changed (description)
  - 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: 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.
- 2026-10-19 `check_entry_requirements` changed (description)
  - 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: 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.
- 2026-10-19 `get_public_holidays` changed (description, inputSchema)
  - 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: 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.
- 2026-10-19 `get_tipping_norms` changed (description, inputSchema)
  - 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: 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.
- 2026-10-19 `get_emergency_numbers` changed (description, inputSchema)
  - 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: 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.
- 2026-10-19 `check_power_compatibility` changed (description, inputSchema)
  - 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: 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.
- 2026-10-19 `get_country_facts` changed (description, inputSchema)
  - 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: 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.
- 2026-10-19 `resolve_country` changed (description)
  - 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: 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.
- 2026-10-18 `list_recent_changes` changed (description, inputSchema)
  - 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: 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"}.

Full history: https://api.protogrid.dev/v1/servers/com.citedtravel%2Fcitedtravel/changes

## Remotes

- https://citedtravel.com/mcp (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

_none_

## Tools (9)

- `check_entry_requirements`: 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.
- `check_power_compatibility`: 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_facts`: 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.
- `get_emergency_numbers`: 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.
- `get_public_holidays`: 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_norms`: 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_trip_brief`: 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.
- `list_recent_changes`: 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.
- `resolve_country`: 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.
