check_visa
Check whether a traveler holding a given passport needs a visa, and what entry & transit requirements apply, for a destination country — with official government sources.
passport_countryrequireddestination_countryrequired
io.github.CloudCorpRecordsPublished by GitHub account CloudCorpRecordsv0.1.0Updated Nov 4, 2026
Passport visa, entry and transit requirements for any country pair, with official sources.
Visaroute's local MCP server; no sign-in required; STDIO; 2 tools.
No AI overview yet: these facts come from the registry entry and the server itself.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Follow the launch instructions in the repository.
Visa answers for any passport and destination pair, backed by official government sources. visaroute tells you whether a traveler holding a given passport needs a visa for a destination country, what entry and transit requirements apply along the way, and where the official word on each requirement lives — plus a deep link to the full analysis.
It is read-only, sends no personal data (just the two country names or codes), and needs no API key.
Not legal or immigration advice. Results are a generic analysis for any citizen of the passport country. Always verify with your airline and the destination's authorities before travel.
check_visa is a forwarding client: it calls the
published EasyOnward remote MCP endpoint
(https://mcp.easyonward.com/mcp) over streamable
HTTP as a JSON-RPC client — initialize, then
notifications/initialized, then tools/call,
honouring the session header the remote returns —
and passes the answer through. The remote URL can
be overridden with EASYONWARD_MCP_URL. This wire
choice is a reconstruction: the upstream project
documents the tool's inputs, outputs and text shape
but not its wire protocol, and the rebuild labels
it as such.country_code is fully local: it resolves against
an embedded ISO 3166-1 alpha-2 list and never
touches the network.check_visa — check whether a traveler holding a
given passport needs a visa, and what entry &
transit requirements apply, for a destination
country — with official government sources. Inputs:
passport_country and destination_country, each
an ISO 3166-1 alpha-2 code (US) or a country name
(United States). The answer comes back as
human-readable text (also carried as
structuredContent over MCP) with:
verdict — a one-line plain-language summary
(restricted / conditional / straightforward).worst_severity — BLOCK | WARN | INFO |
NONE.requirements[] — each flagged requirement as
severity, title, detail.official_sources[] — deduped official
government source URLs.deep_link — https://easyonward.com/visa/{ORIGIN}-{DEST}
for the full analysis.prepare_link — the same page tagged
?ref=mcp.disclaimer.country_code — resolve a country name (or an
existing ISO-2 code) to its uppercase ISO 3166-1
alpha-2 code — e.g. Kenya → KE. Handy before
calling check_visa. An unknown name fails with
visaroute error: unknown country: <input> rather
than guessing.Calling check_visa with
{ "passport_country": "US", "destination_country": "KE" }
produces text of this shape:
Failures use this rebuild's own error strings, all in
the visaroute error: family: visaroute error: HTTP <status> for a non-2xx remote reply,
visaroute error: upstream unreachable when the
remote cannot be reached, and
visaroute error: <message> for a remote JSON-RPC or
tool error.
EASYONWARD_MCP_URL (optional) — remote MCP
endpoint for check_visa. Defaults to
https://mcp.easyonward.com/mcp.No API key or other configuration is required.
Each tool is a subcommand taking one JSON argument string:
check_visa prints the human-readable text;
country_code prints the resolved code. Exit codes:
0 on success, 1 on a runtime error, 2 on a
usage error.
MCP client config:
MIT — Copyright (c) 2026 Rene Turcios
Source: README.md at commit da3b53f
Check whether a traveler holding a given passport needs a visa, and what entry & transit requirements apply, for a destination country — with official government sources.
passport_countryrequireddestination_countryrequiredResolve a country name (or an existing ISO-2 code) to its uppercase ISO 3166-1 alpha-2 code — e.g. Kenya → KE. Handy before calling check_visa.
countryrequired90% 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.
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
Travel from United States to Kenya is conditional — see requirements.
Requirements: [INFO] US travel advisory: Kenya — Level 2 (Exercise Increased Caution) — … [INFO] Be ready to show proof of funds for Kenya (KE) — … [WARN] An electronic travel authorization (eta) for Kenya on your United States (US) passport — …
Official government sources: - https://www.etakenya.go.ke - https://immigration.go.ke - https://travel.state.gov/…/kenya-travel-advisory.html …
Full details: https://easyonward.com/visa/US-KE
Generic analysis for any United States citizen. Not legal or immigration advice — verify withyour airline and the destination's authorities before travel.npx @reneturcios/visaroute check_visa '{"passport_country":"US","destination_country":"KE"}'npx @reneturcios/visaroute country_code '{"country":"Kenya"}'npx @reneturcios/visaroute --versionnpx -y @reneturcios/visaroute mcp{ "mcpServers": { "visaroute": { "command": "npx", "args": ["-y", "@reneturcios/visaroute", "mcp"] } }}docker run -i ghcr.io/cloudcorprecords/visaroutedocker run --rm ghcr.io/cloudcorprecords/visaroute country_code '{"country":"Kenya"}'npm installnpm run build # tsc -> dist/npm test # tsx --test test/*.test.ts (fake fetch only, no network)npm run dev # run the CLI from source