[needs a free API key — this call will fail without one] THE default visa tool: full entry requirements for ONE passport travelling to ONE destination. Returns visa type (visa_free / visa_required / e_visa / visa_on_arrival / eta / no_admission), days allowed, description, required documents, application steps, visa types, cost, validity, max stay, processing time, country info, plus passport validity months, visa fees, processing days, photo specs, vaccinations, insurance, safety advisory, health requirements, overstay penalties, entry by mode (air/land/sea), transit visa hubs, remote-work visa, extension rules, minor rules, dual-nationality and passport-stamp warnings, and embassies. Answers in any of 15 languages (all plans, including free). Call this whenever the user asks whether they need a visa, what documents or vaccinations are needed, how much a visa costs, how long it takes, how long they can stay, or what happens if they overstay. Requires an API key (free one at https://visa.orizn.app/visa-api). On the free plan some deep fields come back as an {upgrade: ...} placeholder instead of data. Reading the reply: every deep field carries a `granularity` — "destination" means the value describes the destination country for all nationalities (fees, processing days, transit, overstay, safety), "passport" means it describes the passport for all destinations (reciprocity history, stamp and dual-nationality warnings). Only the top-level requirement, visa-free days, description and documents are pair-specific. A field that Orizn does not have comes back as {status: "unavailable"} — say so rather than filling the gap; and `as_of` is the reference date of that field, which is not live data. Get one at https://visa.orizn.app/visa-api?source=mcp (100 requests/month, no card), then set ORIZN_API_KEY in the env block of the MCP config.
One-line answer for ONE passport/destination pair: the requirement code, the number of visa-free days, and the date the pair was last verified. No documents, no process, no fees, and no translation — use check_visa_requirement when the user needs any detail at all. Prefer this only when the user wants a plain yes/no, or when checking many pairs and detail would be noise. Works with NO API key, 10 checks per day — the only tool that answers a traveller's question keyless. A free key (https://visa.orizn.app/visa-api, no credit card) removes that daily cap. The reply carries `last_verified`, the date this pair's data was last checked, or null when Orizn has no verification date for it — report it rather than implying the answer is live.
[needs a free API key — this call will fail without one] Compare up to 25 destinations for ONE passport in a single call. Returns, per destination: requirement, visa-free days, description, passport validity months, visa fee, safety advisory, health requirements, vaccinations, insurance, entry by mode, and remote-work visa. Use it for shortlists — 'where can I go visa-free in Asia', 'compare Thailand, Vietnam and Indonesia for my passport', trip planning across several candidate countries. It does NOT return every country in the world: pass the specific destinations to compare. Each destination returned counts as one request against the quota. Requires a paid plan (Starter $49/month or above) — a free key gets HTTP 403 here. Get one at https://visa.orizn.app/visa-api?source=mcp (100 requests/month, no card), then set ORIZN_API_KEY in the env block of the MCP config.
[needs a free API key — this call will fail without one] Transit and layover rules for a country being connected through: airside/landside rules and how many free transit hours its main hubs grant. IMPORTANT — this data is modelled PER TRANSIT COUNTRY, not per passport nationality: the answer is the same for every passport, and it is only available for 44 transit countries. The `passport` argument is recorded but does not narrow the result. Treat the reply as general hub rules to confirm with the airline or the transit country's authority, never as a per-nationality ruling. When the country is not covered, the tool says so instead of guessing. Call this for layovers, stopovers and connecting flights — not for entering a country as a destination (use check_visa_requirement for that). Requires an API key; transit data needs a paid plan (Starter $49/month or above), a free key gets an upgrade placeholder back. Get one at https://visa.orizn.app/visa-api?source=mcp (100 requests/month, no card), then set ORIZN_API_KEY in the env block of the MCP config.
Coverage of the Orizn visa database itself: number of pairs, passports, destinations, translations, languages, and the distribution of requirement types. Says nothing about any specific country pair. Free, no API key needed — useful to confirm the server can reach the API. Call it when the user asks how big or how complete the database is.
Recently changed visa rules — what changed, for which passport/destination pair, on what date, and from which official source. STATUS: Orizn's change feed is currently OFF and this tool returns {status:"unavailable", changes: []}. It was shut down because it was publishing internally-detected inconsistencies between two Orizn tables as if they were official policy changes. An empty answer here therefore means "Orizn has no verified change data", NEVER "nothing changed" — do not tell the user rules are stable, tell them to check the destination's official immigration source, and use check_visa_requirement for the current rule with its verification date. When the feed comes back, only entries carrying a named source and a date are returned; unverified entries are dropped rather than shown.