# MattJeff/orizn-mcp-server [Health: Active]

**Category:** 🚆 Travel & Transportation  
**Repository:** https://github.com/MattJeff/orizn-mcp-server  
**GitHub Stars:** 1  
**npm Downloads (last month):** 258  
**Views:** 7  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/mattjeff-orizn-mcp-server

## Description
Visa requirements for 39,585 passport-destination pairs in 15 languages. Check visa types, required documents, and travel tips.

## Tools
Capabilities this server exposes over MCP:

- **check_visa_requirement** — [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.
- **quick_visa_check** — 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.
- **compare_destinations** — [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.
- **check_transit_visa** — [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.
- **get_coverage_stats** — 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.
- **get_recent_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 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.

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

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

**Requires environment variables:** `ORIZN_API_KEY` — the values above are empty placeholders; fill in real credentials before running (see the repository for what each one is for).

## Documentation

## What MattJeff/orizn-mcp-server MCP server does

MattJeff/orizn-mcp-server MCP server connects an MCP client to the Orizn Visa API. It provides visa and entry information for passport and destination pairs, including requirement categories such as visa-free entry, e-visa, visa on arrival, ETA, visa required, and no admission.

The detailed lookup can include permitted stay, required documents, application steps, fees, processing times, passport validity, photo requirements, vaccinations, insurance, safety and health information, overstay penalties, entry by air, land, or sea, remote-work visas, extensions, minor rules, and embassy information. Results depend on the selected plan and API key.

## How it works

The server communicates with MCP clients through stdio and runs on Node.js 18 or later. A client launches the npm package as a local process, and the process calls Orizn’s API at `https://visa.orizn.app/api/v1/visa`. Country values must use ISO 3166-1 alpha-3 codes such as `FRA`, `JPN`, and `USA`.

`quick_visa_check` provides a short result with the requirement code, visa-free days, and last verification date. It can run without a key, with anonymous usage limited to 10 checks per day per running server process. `get_coverage_stats` also works without a key and reports database size and coverage information.

## Setup and configuration

Run the server with `npx -y orizn-visa-mcp` and add the same command and arguments to the MCP client configuration. Claude Desktop and Cursor are explicitly supported, along with other clients that can launch stdio servers.

For detailed visa data, place an Orizn key in the MCP configuration environment block under `ORIZN_API_KEY`. The key may instead be supplied with the `--api-key` argument, which takes precedence over the environment variable. The free key tier provides 50 requests per month, or 5 before email confirmation, and includes core fields and all 15 languages. It does not provide the deeper fields or gated tools such as transit checks and destination comparisons.

## Tools and capabilities

MattJeff/orizn-mcp-server MCP server includes these documented operations:

- `check_visa_requirement`: Retrieves detailed requirements for one passport and destination, with an optional language.
- `quick_visa_check`: Returns a compact visa requirement result without documents, fees, or translation.
- `compare_destinations`: Compares one passport across 1 to 25 destinations; each destination counts as a request.
- `check_transit_visa`: Checks whether a traveller can remain airside or leave an airport during a connection, including free transit hours for major hubs.
- `get_coverage_stats`: Reports pairs, passports, destinations, translations, languages, and requirement distributions.
- `get_recent_changes`: Accepts optional passport, destination, date, and limit filters.

The `visa://supported-languages` resource lists the accepted language codes: English, French, Spanish, Portuguese, German, Japanese, Korean, Chinese, Russian, Italian, Arabic, Hindi, Thai, Vietnamese, and Filipino.

## Limitations and notes

The policy-change feed behind `get_recent_changes` is currently disabled. The operation returns an unavailable status and an empty changes list, which must not be interpreted as evidence that no visa rules changed.

A Hobby plan or higher is required for destination comparisons, transit checks, and the deeper fields described above. A valid key can still fail because it is revoked, malformed, over quota, or associated with an insufficient plan. Visa information should be checked against official authorities before travel decisions. The project is released under the MIT license.

_Full upstream README: https://allmcps.com/mcp/mattjeff-orizn-mcp-server/readme_

