Kiaaccess MCP vs Orizn MCP Server
A side-by-side look at the Kiaaccess MCP and Orizn MCP Server MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose Kiaaccess MCP for travel & transportation work as a local process; choose Orizn MCP Server for travel & transportation as a local process. You can also run both side by side in one mcpServers block.
Which MCP server should you choose?
Choose Kiaaccess MCP when
- You need dedicated capabilities in the Travel & Transportation domain.
- You prefer a local stdio subprocess transport.
- Its auth model fits you: other.
- You have the keys it needs:
KIA_USERNAME, KIA_PASSWORD. - You want tools like
kia_healthcheck, kia_session_status, kia_start_login.
Choose Orizn MCP Server when
- You need dedicated capabilities in the Travel & Transportation domain.
- You prefer a local stdio subprocess transport.
- Its auth model fits you: API key required.
- You have the keys it needs:
ORIZN_API_KEY. - You want tools like
check_visa_requirement, quick_visa_check, compare_destinations.
Feature & specification comparison
Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | Travel & Transportation | Travel & Transportation |
| Quality signal | 63/100 · Good | 61/100 · Good |
| Install command | Confirmed | Confirmed |
| Transport | Local subprocess (stdio) | Local subprocess (stdio) |
| Auth | other | API key required |
| Pricing | Free | Freemium |
| Required env vars | KIA_USERNAMEKIA_PASSWORD | ORIZN_API_KEY |
| Verified owner | Community listing | Community listing |
| GitHub stars | 0 | 1 |
| Directory activity | 1 views 0 installs 0 upvotes | 7 views 0 installs 0 upvotes |
| Tools | 16 | 6 |
| Full listing | View Kiaaccess MCP | View Orizn MCP Server |
Tools & capabilities
Kiaaccess MCP tools 16
kia_healthcheckResolves the credential the way real tools do, then makes one authenticated request to Kia Connect. Reports which source supplied the credential, whether Kia Connect accepted it, the round-trip time, and a plain-English hint distinguishing 'no credential' from 'credential rejected' from 'a Kia Connect-side problem'. Read-only; never returns the credential itself. Call this when a real tool fails and you want to know which hop broke.kia_session_statusWhether this server is configured and logged in to Kia: are credentials present, has the one-time MFA bootstrap been completed on this device, and which vehicle commands are registered (KIA_WRITE_MODE). Makes NO network call and returns no secret — the account email is masked, the device id is truncated, and neither the session id nor the remember-me token is ever included. Start here when a Kia tool reports it is not configured.kia_start_loginStep 1 of the ONE-TIME Kia MFA bootstrap (prof/authUser): send the configured credentials and get back the `otpKey` and `xid` the next two steps need. Only needed when kia_session_status reports hasSession:false — once the bootstrap is done the stored remember-me token refreshes sessions silently forever. Asks the user to confirm first: a confirmation prompt where the client supports one; otherwise the first call makes NO network call and returns a preview plus a confirmToken, and only a repeat call with that token proceeds (see MCP_CONFIRM_MODE). The gate is real: Kia counts failed logins and eventually enforces reCAPTCHA, which breaks server-side login for this account PERMANENTLY — so a rejection is never retried, and a wrong password must be fixed in the environment rather than guessed at.kia_send_otpStep 2 of the Kia MFA bootstrap (cmm/sendOTP): deliver a one-time passcode to the account by SMS or email. Takes the `otpKey` and `xid` from kia_start_login — it cannot run without them, which is why it has no separate confirmation gate. Ask the user which channel they want (kia_start_login reports the masked destinations Kia has on file). The passcode expires in about two minutes; `expiresAt` reports when.kia_verify_otpStep 3 of the Kia MFA bootstrap (cmm/verifyOTP): exchange the passcode for a session. The resulting remember-me token is stored locally and is NOT returned — from here on every Kia tool refreshes its own session silently and MFA is never needed again on this device. Takes the `otpKey` and `xid` from kia_start_login plus the code the user received.kia_forget_sessionDiscard the locally stored Kia session (the remember-me token), so the next Kia call needs the one-time MFA bootstrap again. This is the recovery path when the stored token no longer works — Kia revoked it, the password changed, or the account moved to another device — and the only alternative is deleting the session file by hand. It makes NO network call: Kia is not told anything, only this machine forgets. Asks the user to confirm first: a confirmation prompt where the client supports one; otherwise the first call makes NO network call and returns a preview plus a confirmToken, and only a repeat call with that token proceeds (see MCP_CONFIRM_MODE). Nothing is deleted until it is confirmed.kia_list_vehiclesList the vehicles enrolled on this Kia Owners account (ownr/gvl). Returns each vehicleKey — the id every other Kia tool takes — plus nickname, model year/name/trim, mileage, fuel type and telematics unit. VINs are masked to their last 6 characters.kia_vehicle_statusRead the vehicle's CACHED status (cmm/gvi): door lock, ignition, and the remote-climate block. Fast, but it reports whatever the telematics unit last uploaded — use kia_refresh_status first when freshness matters. Requested with airTempRange/seatHeatCoolOption = "1" so the nested `climate` object is present; when it is still absent the result says so rather than reporting climate as off. Note `ign3` (not `engine`) is the ignition on an EV, and `syncDate` advances on every read, so it never proves anything changed. Per-seat heat/vent state is reported under `climate.seats` as the RAW numbers Kia sends: the `heatVentType`/`heatVentLevel` encoding is UNVERIFIED, so do not tell the user a seat is heating, ventilating or off based on them. An absent seat block means this read carried no seat data — it does NOT mean the car lacks heated seats, which this server cannot currently determine. Pass include_raw for the untrimmed status block (battery/EV detail, doors, tyres, …).kia_refresh_statusAsk the car for a fresh reading (rems/rvs, requestType 0). This WAKES THE TELEMATICS UNIT, so it is much slower than kia_vehicle_status and draws a little power — prefer the cached read unless staleness matters. Kia only acknowledges the request; it does not return the new data and gives no completion signal, so read kia_vehicle_status afterwards to see the refreshed values.kia_vehicle_locationThe vehicle's last known location, from the `location` block of the cached cmm/gvi read. This is where the telematics unit last reported being, not a live GPS fix — run kia_refresh_status first for a recent one. Latitude/longitude and a map link are derived when the block carries `coord.lat`/`coord.lon`; otherwise the raw block is returned as-is (its exact field names are not verified).kia_start_climateStart remote climate control / preconditioning (Kia `rems/start`, live-verified). Asks the user to confirm first: a confirmation prompt where the client supports one; otherwise the first call makes NO network call and returns a preview plus a confirmToken, and only a repeat call with that token proceeds (see MCP_CONFIRM_MODE). Once confirmed it sends the command and re-reads cmm/gvi until the NESTED `climate.airCtrl` reads true (there is no flat `airCtrlOn` field). On an EV `engine` stays false while climate runs — `ign3` is the ignition proxy and is reported alongside. `commandAccepted` (Kia took the request) and `stateConfirmed` (the car actually reads running) are separate; state changes were observed to take 30–60s. TEMPERATURE IS BEST-EFFORT AND UNCONFIRMED: per docs/KIA-API.md a start requesting 70°F still read back 72°F, so the car may report its own last-set target rather than the requested one — do not promise the user a specific cabin temperature. Seat and steering-wheel/rear-window heating are not sent at all: the request body deliberately omits `heatVentSeat` (Kia validates seat capability per car) and leaves every `heatingAccessory` field at 0.kia_stop_climateStop remote climate control (Kia `rems/stop`, live-verified). Asks the user to confirm first: a confirmation prompt where the client supports one; otherwise the first call makes NO network call and returns a preview plus a confirmToken, and only a repeat call with that token proceeds (see MCP_CONFIRM_MODE). Once confirmed it sends the command and re-reads cmm/gvi until the NESTED `climate.airCtrl` reads false (there is no flat `airCtrlOn` field); `ign3` — the EV ignition proxy — is reported alongside. `commandAccepted` (Kia took the request) and `stateConfirmed` (the car actually reads stopped) are separate. State changes were observed to take 30–60s.- +4 more on the listing page
Orizn MCP Server tools 6
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_checkOne-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_statsCoverage 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_changesRecently 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.
Ready-to-paste client configs
Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.
Kiaaccess MCP
{
"mcpServers": {
"kiaaccess-mcp": {
"command": "npx",
"args": [
"-y",
"kiaaccess-mcp"
],
"env": {
"KIA_USERNAME": "YOUR_KIA_USERNAME_HERE",
"KIA_PASSWORD": "YOUR_KIA_PASSWORD_HERE"
}
}
}
}
Orizn MCP Server
{
"mcpServers": {
"mattjeff-orizn-mcp-server": {
"command": "npx",
"args": [
"-y",
"orizn-visa-mcp"
],
"env": {
"ORIZN_API_KEY": "YOUR_ORIZN_API_KEY_HERE"
}
}
}
}
Frequently asked questions
Kiaaccess MCP is categorized under Travel & Transportation and uses a local stdio subprocess. Orizn MCP Server belongs to Travel & Transportation and uses a local stdio subprocess. Pick Kiaaccess MCP for travel & transportation work and Orizn MCP Server for travel & transportation.
Copy the mcpServers block from the config section on this page into your client's config (for example claude_desktop_config.json or ~/.cursor/mcp.json), then fully restart the client.
Kiaaccess MCP is listed as free. Auth: other. Orizn MCP Server is listed as freemium — a free tier with paid plans. Auth: api key required. If a server needs environment variables such as API keys, define them under the env key in your client's MCP config.
Yes. MCP clients support multiple servers: add kiaaccess-mcp and mattjeff-orizn-mcp-server as separate keys in the same mcpServers object, and your assistant will call tools from either one.
On AllMCPs, Kiaaccess MCP has a quality signal of 63/100 (Good) with 1 views, 0 installs and 0 GitHub stars. Orizn MCP Server has 61/100 (Good) with 7 views, 0 installs and 1 GitHub stars.