Orizn Visa Mcp

io.github.MattJeffPublished by GitHub account MattJeffv1.3.2Updated Oct 29, 2026

Visa and entry requirements for any passport/destination pair, in 15 languages. Free key.

The publisher's own server: Visa Developer Center MCP Server

VerifiedStreamable HTTPWeb executableLocation & LifestyleWeb Search & Scraping

Overview

AI-generated overview

Orizn Visa MCP gives an assistant visa and entry requirements for any passport/destination pair, with a keyless quick check and a fuller keyed lookup.

What you can do
  • Check one passport/destination pair for the visa requirement, visa-free days and last verification date
  • Look up full entry records: documents, fees, processing times, validity, vaccinations, overstay rules and embassies
  • Compare up to 25 destinations side by side for one passport
  • Check transit and layover rules, including airside/landside and free transit hours
  • Read database coverage statistics and, when available, a feed of recent rule changes
When to use it
Useful when someone asks whether they need a visa, what documents or fees apply, or whether they can leave the airport during a layover, and wants sourced data rather than a guess. The keyless quick check is enough for simple yes/no questions.
Requirements
Either the hosted remote endpoint or the npm package run with npx on Node.js 18 or later. An ORIZN_API_KEY is optional: without it only quick_visa_check (10 checks per day), get_coverage_stats and get_recent_changes work. The key can be passed in the env block, as a command argument, or as a query parameter or header on the remote URL. Country codes must be ISO alpha-3.
Before you install
The key is a secret; a remote URL containing it is also a secret, so prefer a header or the env block. Keyed calls are billed and logged like the REST API, and compare_destinations and check_transit_visa require the paid Starter plan at $49/month. Free-tier deeper fields return upgrade placeholders. get_recent_changes is deliberately switched off and returns an empty list, which does not mean rules are unchanged.

Installation

In SourceWeft

  1. Open Orizn Visa Mcp in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.MattJeff%2Forizn-visa-mcp/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "orizn-visa": {
      "type": "http",
      "url": "https://visa.orizn.app/mcp"
    }
  }
}

README

Orizn Visa API MCP Server

Orizn Visa API MCP Server is a Model Context Protocol (MCP) server that gives an AI assistant the visa and entry requirements for any passport/destination pair, answered in 15 languages.

It covers 49,750 pairs — 199 passports × 250 destinations (as of October 2026). Coverage grows: the get_coverage_stats tool reads the current figure live from the API (also public at https://visa.orizn.app/api/v1/visa/stats).

[npm version] [License: MIT] [MCP Compatible]

It answers questions like "do I need a visa to go from France to Japan", "what documents does a US citizen need for China", "can I leave the airport during a layover in Istanbul on an Indian passport" — with data, not a guess.

Compatibility

The server speaks MCP over stdio and runs on Node.js 18 or later. It works with any MCP client that can launch a stdio server, including Claude Desktop, Claude Code and Cursor. The configuration block below is the same for all of them.

Remote MCP (no install)

The same six tools are hosted at https://visa.orizn.app/mcp (Streamable HTTP, JSON-RPC over POST). Nothing runs on your machine.

URL
Keylesshttps://visa.orizn.app/mcp
With your API keyhttps://visa.orizn.app/mcp?key=orizn_visa_...

The key is accepted as ?key=, Authorization: Bearer <key> or X-API-Key: <key>. Without a key, quick_visa_check answers 10 checks a day per network (the same allowance as the anonymous demo on visa.orizn.app); get_coverage_stats and get_recent_changes are free; the other tools say they need a key. With a key, every call is billed and logged exactly like the REST API. A URL with a key in it is a secret.

  • Claude.ai / Claude Desktop — Settings → Connectors → Add custom connector, paste the URL.
  • ChatGPT — Settings → Apps & Connectors → Advanced settings → Developer mode, then Create, paste the URL, authentication "No authentication".
  • Claude Code — claude mcp add --transport http orizn-visa https://visa.orizn.app/mcp
  • Cursor — ~/.cursor/mcp.json:
json
{  "mcpServers": {    "orizn-visa": {      "url": "https://visa.orizn.app/mcp",      "headers": { "Authorization": "Bearer orizn_visa_..." }    }  }}

Free key, no card: visa.orizn.app/visa-api/register.

Install

bash
npx orizn-visa-mcp

Nothing to build, nothing to clone. Add it to your MCP client config:

json
{  "mcpServers": {    "orizn-visa": {      "command": "npx",      "args": ["-y", "orizn-visa-mcp"]    }  }}

Restart the client, then ask: "Do I need a visa to go from France to Japan?" — that works with no API key, 10 checks a day.

For everything else (documents, fees, processing times, transit rules, 15 languages), add a free key:

json
{  "mcpServers": {    "orizn-visa": {      "command": "npx",      "args": ["-y", "orizn-visa-mcp"],      "env": {        "ORIZN_API_KEY": "orizn_visa_..."      }    }  }}

The key can also be passed as an argument, which takes precedence over the environment variable:

bash
npx orizn-visa-mcp --api-key orizn_visa_...

Example questions

  • "Do I need a visa to travel from France to Thailand?"
  • "What documents do I need as a US citizen visiting China?"
  • "Compare Thailand, Vietnam and Indonesia for a Brazilian passport."
  • "Can I leave the airport during a 12h layover in Istanbul on a Chinese passport?"
  • "How much does a Schengen visa cost for a Filipino passport holder?"
  • "Which vaccinations do I need to enter Brazil with a French passport?"
  • "What's the fine if I overstay my Thai visa by 3 days?"
  • "Does Portugal have a digital nomad visa, and what does it cost?"
  • "Réponds en français : ai-je besoin d'un visa pour le Japon avec un passeport marocain ?"

Tools

ToolArgumentsWhat it returnsPlan
check_visa_requirementpassport, destination, langFull entry requirements for one passport into one destination: requirement type, days allowed, documents, application steps, fees, processing times, passport validity, photo specs, vaccinations, insurance, safety advisory, overstay penalties, entry by air/land/sea, remote-work visa, extension and minor rules, embassies.Any key
quick_visa_checkpassport, destinationOne line: the requirement code, the number of visa-free days, and the date the pair was last verified. No documents, no fees, no translation.None — 10/day keyless, unlimited with any key
compare_destinationspassport, destinations (1–25), langUp to 25 destinations for one passport side by side: requirement, visa-free days, description, passport validity, fee, safety, health, vaccinations, insurance, entry by mode, remote-work visa. Each destination returned counts as one request.Starter or above
check_transit_visapassport, transit_country, langLayover rules only: whether the traveller may stay airside or leave the airport while connecting, and how many free transit hours the main hubs grant.Starter or above
get_coverage_statsnoneSize of the database: pairs, passports, destinations, translations, languages, and the distribution of requirement types. Says nothing about a specific pair.None
get_recent_changespassport, destination, since, limit (all optional)Visa rules that changed recently, with the source that reported them and the date. The feed is currently off — see below.None

Country codes are ISO 3166-1 alpha-3 (FRA, JPN, USA), not alpha-2.

requirement is one of visa_free, visa_required, e_visa, visa_on_arrival, eta, no_admission, plus the rarer partial_restrictions, admission_refused, not_applicable and special.

Resource

visa://supported-languages — the 15 codes accepted by lang, available on every plan including free: en fr es pt de ja ko zh ru it ar hi th vi tl.

get_recent_changes returns nothing on purpose

Orizn's policy-change feed is switched off. It was serving inconsistencies detected between two internal Orizn tables as if they were official policy changes, so it now returns HTTP 503 and this tool degrades to:

json
{ "status": "unavailable", "changes": [], "do_not_conclude": "This is NOT evidence that no visa rules changed..." }

The tool is shipped in this state deliberately: an empty, clearly-labelled answer is the honest one, and the tool starts returning real entries the day the feed runs on verified official sources — at which point entries without a named source and a date are withheld rather than shown.

Authentication and free tier

quick_visa_check, get_coverage_stats and get_recent_changes work with no API key at all. Keyless quick_visa_check is capped at 10 checks per day — the same allowance visa.orizn.app gives an anonymous visitor. Past that the tool says so and points at the free key rather than failing silently. The cap is per running server process and resets at 00:00 UTC.

The other three tools need an API key, sent as the x-api-key header to https://visa.orizn.app/api/v1/visa.

Get a free one at visa.orizn.app/visa-api/register — no credit card. The free tier is 100 requests/month (5 until you confirm your email address) and includes the core fields and all 15 languages. On the free plan the deeper fields — fees, processing days, photo specs, vaccinations, insurance, transit visas, entry by mode, overstay penalties, remote-work visas, embassies — come back as an {"upgrade": "..."} placeholder, and compare_destinations and check_transit_visa are gated.

Starter is $49/month for 30,000 requests and unlocks all of it, with a commercial licence: upgrade. Higher-volume plans are listed on the pricing page.

Pass the key in the env block of the MCP config — MCP clients do not inherit your shell environment, so exporting ORIZN_API_KEY in a terminal is not enough.

Check a key without any MCP client:

bash
curl -H "x-api-key: $ORIZN_API_KEY" \  "https://visa.orizn.app/api/v1/visa/check?passport=FRA&destination=JPN"
json
{ "passport": "FRA", "destination": "JPN", "requirement": "visa_free", "visa_free_days": 90 }

Troubleshooting

SymptomFix
"No Orizn API key"Expected on the key-only tools. quick_visa_check still answers. To lift it, put the key in the env block of the config file — not your shell — then restart the client
"Keyless daily limit reached"The 10 free checks for today are spent. A free key removes the cap
HTTP 403, "check ORIZN_API_KEY for typos"Key is wrong, revoked, or has whitespace
HTTP 403, "requires Starter plan or above"Right key, wrong plan — this tool is paid
HTTP 429Monthly quota spent
HTTP 404 on a real countryUse alpha-3 codes (FRA, JPN), not alpha-2 (FR, JP)
Nothing works at allCall get_coverage_stats — it needs no key. If that fails too, it is the network
get_recent_changes returns an empty listExpected — the feed is being rebuilt. It does not mean the rules are unchanged

Links

License

MIT

Source: README.md at commit a54a812

Tools

6

quick_visa_check

Quick visa check

Does this passport need a visa for this destination? Returns the requirement, the number of visa-free days, and — when that exact pair has been individually re-verified — the date it was. One pair per call, English only. Prefer it when the user wants a plain yes/no; switch to check_visa_requirement as soon as they need documents, fees, processing times, transit rules, or an answer in another language. Works with NO API key, 10 checks per day per network — the only tool that answers a traveller's question keyless. With a key it costs 1 request. Free API key: https://visa.orizn.app/visa-api/register?source=mcp-remote — 100 requests/month, no card, and it unlocks documents, fees, processing times, transit rules and 15 languages. Then reconnect with the key: https://visa.orizn.app/mcp?key=<key>, or an Authorization: Bearer <key> header.

Parameterspassportrequireddestinationrequired

check_visa_requirement

Full visa requirements

[needs a free API key — this call will fail without one: https://visa.orizn.app/visa-api/register?source=mcp-remote, then reconnect with ?key=<key>] THE default visa tool: the full entry record for ONE passport travelling to ONE destination. Returns the requirement (visa_free / visa_required / e_visa / visa_on_arrival / eta / no_admission), days allowed, a written description, required documents, application steps, visa types, cost, validity, max stay, processing time, passport validity months, visa fees, photo specs, vaccinations, insurance, safety advisory, health requirements, overstay penalties, entry by mode (air/land/sea), transit rules, remote-work visa, extension rules, minor rules, dual-nationality and passport-stamp warnings, and embassies — in any of 15 languages, on every plan including free (fr, en, es, pt, de, ja, ko, zh, ru, it, ar, hi, th, vi, tl). Call it whenever the user asks whether they need a visa, what documents or vaccinations are needed, what a visa costs, how long it takes, how long they can stay, or what happens if they overstay. Needs an Orizn API key on this MCP connection and costs 1 request against that key's monthly quota. On the free plan the deep fields come back as {upgrade: "Available on Starter plan or above"} instead of data — report that as a plan limit, never as missing 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 requirement, visa-free days, description and documents are pair-specific. A field 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, not live data.

Parameterslangpassportrequireddestinationrequired

check_transit_visa

Transit and layover rules

[needs a free API key — this call will fail without one: https://visa.orizn.app/visa-api/register?source=mcp-remote, then reconnect with ?key=<key>] Transit and layover rules for a country being connected through: airside/landside rules and how many free transit hours its main hubs grant. Call it for layovers, stopovers and connecting flights — not for entering a country as a destination, which is check_visa_requirement. IMPORTANT: this data is modelled PER TRANSIT COUNTRY, not per passport nationality. The answer is the same for every passport, the `passport` argument is recorded but does not narrow the result, and only 44 transit countries are covered. Present 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 answers {status: "unavailable"} instead of guessing. Needs the Starter plan ($49/month, 30,000 requests) or above and costs 1 request. On a free key this call is refused before anything is charged, with the upgrade link.

Parameterslangpassportrequiredtransit_countryrequired

compare_destinations

Compare destinations

[needs a free API key — this call will fail without one: https://visa.orizn.app/visa-api/register?source=mcp-remote, then reconnect with ?key=<key>] Compare up to 2525 destinations costs 25 requests. Ask for the destinations the user actually named, not a whole region. Needs the Starter plan ($49/month, 30,000 requests) or above; on a free key this call is refused before anything is charged, with the upgrade link.

Parameterslangpassportrequireddestinationsrequired

get_coverage_stats

Database coverage

How big the Orizn visa database is: pairs, passports, destinations, enriched records, translations and languages. Says nothing about any specific country pair — use quick_visa_check or check_visa_requirement for that. Keyless, free, and costs nothing against any quota. Call it when the user asks how complete the data is, or to confirm this server is reachable before a longer session.

Takes no parameters.

get_recent_changes

Recent visa rule changes

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 internal data edits 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. Keyless, costs nothing.

Parameterslimitsincepassportdestination

Version history

2
  1. v1.3.2LatestOct 29, 2026
  2. v1.3.1Sep 16, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

Other Visa integrations