snenenenenenene avatar

Transita

snenenenenenene/transita-mcp-server

Plugs Transita's visa eligibility engine straight into Claude Desktop, Cursor, Cline, or any MCP client. You get five tools: match a profile against 74 visa pathways across 10 countries, pull full details on a single visa (timeline, cost, document preview), compare two or three visas side by side, grab country overviews with rent ranges, or search by nationality for curated recommendations. Every match links back to official government sources and gets reverified monthly by the Transita team. Runs via npx or connects to their hosted HTTP endpoint at transita.app/api/mcp. Free tier covers matching and comparisons; the full document checklist and 30 day action plan live on the website for nine dollars. MIT licensed, source on GitHub.

tools
15
transport
STDIO, HTTP
env vars
2
last updated
Nov 3, 2026

Install

From registry metadata
$ npx add-mcp https://transita.app/api/mcp --name transita

Run in your terminal. add-mcp asks which agents to add it to (Claude Code, Codex, Cursor and more). Add -g to install it for every project.

Review the command, arguments and environment values before installing. MCP servers run with your local permissions.

Other ways

Claude Code

$ claude mcp add --transport http transita https://transita.app/api/mcp

Run in your terminal. Add --scope user to make it available in every project.

Tools

Verified live · 15 tools

Verified live against the running server on Nov 6, 2026.

transita_match_visasFind the visa routes a person qualifies for from their profile. Returns the top matches ranked by estimated eligibility, with timeline, cost, official sources and a link to track the chosen route on transita.app. EU citizens see freedom-of-movement options first. Read-only: no...12 params

Find the visa routes a person qualifies for from their profile. Returns the top matches ranked by estimated eligibility, with timeline, cost, official sources and a link to track the chosen route on transita.app. EU citizens see freedom-of-movement options first. Read-only: no...

Parameters* required
ageinteger
Age in years, e.g. 31.
citizenship*string
Nationality as a word or country name, e.g. 'Indian' or 'India'.
current_countrystring
Country the person lives in now, e.g. 'United Arab Emirates'.
educationstring
Highest completed education, e.g. 'master'.one of high_school · associate · bachelor · master · phd · professional
goalstring
Main reason for moving, e.g. 'work_tech'.one of work_tech · start_company · study_work · relocate_family · digital_nomad
income_usdinteger
Gross yearly income in US dollars, e.g. 85000.
language_testobject
English test result in that test's own scale, e.g. {test: 'ielts', listening: 8, reading: 7.5, writing: 7, speaking: 7}. Sharpens routes with a language bar.
target_countriesarray
Destination country codes to focus on, e.g. ['de', 'nl']. Leave out to search all.
timelinestring
When the person wants to move, e.g. '1year'.one of asap · 6months · 1year · 2plus
wants_prboolean
True to keep only routes that lead to permanent residency, e.g. true.
work_fieldstring
Main field of work, e.g. 'software engineering' or 'nursing'.
work_yearsinteger
Total years of full-time work experience, e.g. 5.
transita_visa_detailsFetch full details for a single visa pathway: eligibility category, processing time, fees, validity, PR timeline, and a free preview of the document checklist (lead time, ancillary cost, first section). The full multi-section checklist is part of Transita's paid action plan, w...1 params

Fetch full details for a single visa pathway: eligibility category, processing time, fees, validity, PR timeline, and a free preview of the document checklist (lead time, ancillary cost, first section). The full multi-section checklist is part of Transita's paid action plan, w...

Parameters* required
visa_id*string
Transita visa id, e.g. 'es-digital-nomad'. Get ids from transita_match_visas or transita_list_visas.
transita_compare_visasCompare 2 or 3 visa pathways side by side: processing time, cost, validity and PR route for each, then which one is quickest to process, which costs least and which lead to permanent residency.1 params

Compare 2 or 3 visa pathways side by side: processing time, cost, validity and PR route for each, then which one is quickest to process, which costs least and which lead to permanent residency.

Parameters* required
visa_ids*array
2 or 3 Transita visa ids, e.g. ['us-o1a', 'de-blue-card'].
transita_country_overviewGet summary data for a destination country: number of visa pathways, EU member status, score dimensions, drawbacks, top cities with rent ranges, and PR/citizenship timelines.1 params

Get summary data for a destination country: number of visa pathways, EU member status, score dimensions, drawbacks, top cities with rent ranges, and PR/citizenship timelines.

Parameters* required
country_code*string
Lowercase destination country code, e.g. 'de', 'ca' or 'uk'. 'gb' also works for the UK.
transita_search_by_nationalityList destinations and a suggested visa pathway for citizens of a given country: 4 to 6 destinations, each with key stats, plus an FAQ. Use it when the person asks where they could move and only knows their citizenship. Returns the list of guides if the nationality has no guide...1 params

List destinations and a suggested visa pathway for citizens of a given country: 4 to 6 destinations, each with key stats, plus an FAQ. Use it when the person asks where they could move and only knows their citizenship. Returns the list of guides if the nationality has no guide...

Parameters* required
nationality*string
Nationality word or country, e.g. 'Indian' or 'India'. Case does not matter.
transita_programme_statusCheck the live intake status of a single visa pathway: whether it is currently open, the last selection round and cutoff score (for round-based programmes like Express Entry, AU SkillSelect, or the US H-1B lottery), what is expected next, and the official source. Call this bef...1 params

Check the live intake status of a single visa pathway: whether it is currently open, the last selection round and cutoff score (for round-based programmes like Express Entry, AU SkillSelect, or the US H-1B lottery), what is expected next, and the official source. Call this bef...

Parameters* required
visa_id*string
Transita visa id, e.g. 'ca-cec'. Get ids from transita_match_visas or transita_list_visas.
transita_list_visasBrowse the visa catalogue without a profile. Filter by country, category or whether the route leads to permanent residency. Each row gives the id, name, country, government fee, processing time and PR route, so you can pick ids for the other tools.5 params

Browse the visa catalogue without a profile. Filter by country, category or whether the route leads to permanent residency. Each row gives the id, name, country, government fee, processing time and PR route, so you can pick ids for the other tools.

Parameters* required
categorystring
Visa category, e.g. 'skilled_worker', 'digital_nomad' or 'student'.
countrystring
Lowercase destination country code, e.g. 'de', 'ca' or 'uk'. 'gb' also works for the UK.
goalstring
Main reason for moving, to keep only routes built for it, e.g. 'digital_nomad'.one of work_tech · start_company · study_work · relocate_family · digital_nomad
leads_to_prboolean
True for routes that lead to permanent residency, false for those that do not, e.g. true.
limitinteger
Most rows to return, e.g. 20. Default 50.
transita_points_calculatorScore a profile on one points test: Canada Express Entry CRS ('crs'), Australia SkillSelect ('au'), the German Chancenkarte ('chancenkarte') or New Zealand's Skilled Migrant Category ('nz_smc'). Returns the score, a line-by-line breakdown and the threshold to compare it with....25 params

Score a profile on one points test: Canada Express Entry CRS ('crs'), Australia SkillSelect ('au'), the German Chancenkarte ('chancenkarte') or New Zealand's Skilled Migrant Category ('nz_smc'). Returns the score, a line-by-line breakdown and the threshold to compare it with....

Parameters* required
age*integer
Age in years, e.g. 29. Needed by every system.
au_subclassstring
SkillSelect subclass for 'au', e.g. 'au-190'. Default 'au-189'.one of au-189 · au-190 · au-491
canadian_studystring
CRS: post-secondary credential earned in Canada, e.g. 'one_or_two_year'.one of none · one_or_two_year · three_year_plus
canadian_work_yearsinteger
CRS: years of skilled work in Canada, e.g. 1.
certificate_of_qualificationboolean
CRS: holds a Canadian trade certificate of qualification, e.g. false.
education*string
Highest completed education, e.g. 'bachelor'. Needed by every system.one of high_school · associate · bachelor · master · phd · professional
english_levelstring
Chancenkarte: English level, e.g. 'C1'.one of none · B2 · C1
first_language_clbinteger
CRS: first official language level as a CLB, e.g. 9. Needed for 'crs'.
foreign_work_yearsinteger
CRS: years of skilled work outside Canada, e.g. 3.
german_levelstring
Chancenkarte: German level, e.g. 'A2'.one of none · A1 · A2 · B1 · B2
in_destinationboolean
True if the person already lives in the destination ('au' or 'nz_smc'), e.g. false.
income_usdinteger
Gross yearly income in US dollars, e.g. 90000. Used by 'nz_smc'.
marriedboolean
CRS: true if a spouse or common-law partner comes to Canada too, e.g. false.
partial_recognitionboolean
Chancenkarte: Germany partly recognised the qualification, e.g. false.
partner_appliesboolean
Chancenkarte: a spouse or partner who also qualifies applies too, e.g. false.
prior_stayboolean
Chancenkarte: spent 6 months legally in Germany in the last 5 years, e.g. false.
provincial_nominationboolean
CRS: holds a provincial nomination, e.g. false.
second_language_clbinteger
CRS: second official language CLB, 0 for none, e.g. 5.
shortage_occupationboolean
Chancenkarte: the qualification is in a German shortage occupation, e.g. true.
sibling_in_canadaboolean
CRS: a brother or sister lives in Canada as a citizen or permanent resident, e.g. false.

+5 more parameters. See the server's own documentation for the full schema.

transita_cost_of_livingMonthly budget and rent ranges in US dollars for the cities Transita profiles, filtered by country or city. Figures are editorial estimates from public sources, each with its review date and sources. Use them for orientation, then check local listings.2 params

Monthly budget and rent ranges in US dollars for the cities Transita profiles, filtered by country or city. Figures are editorial estimates from public sources, each with its review date and sources. Use them for orientation, then check local listings.

Parameters* required
citystring
City name or slug, e.g. 'Berlin' or 'new-york'.
countrystring
Lowercase destination country code, e.g. 'de', 'ca' or 'uk'. 'gb' also works for the UK.
transita_rankingsRank Transita's profiled cities on one dimension such as safety, healthcare or tech jobs, highest score first, optionally within one country. Scores run 0 to 100 and are editorial estimates built from the public sources the methodology names, not official statistics.3 params

Rank Transita's profiled cities on one dimension such as safety, healthcare or tech jobs, highest score first, optionally within one country. Scores run 0 to 100 and are editorial estimates built from the public sources the methodology names, not official statistics.

Parameters* required
countrystring
Lowercase destination country code, e.g. 'de', 'ca' or 'uk'. 'gb' also works for the UK.
dimension*string
Ranking dimension slug, e.g. 'safety', 'healthcare' or 'tech-jobs'.
limitinteger
Most cities to return, e.g. 10. Default 10.
transita_rule_changesRecent recorded changes to a visa's rules or to its official source page, newest first, for one visa or every visa in a country. Each change names the fields that moved, the source and the date. Whether a change is proposed or in force is only stated when a source says so.3 params

Recent recorded changes to a visa's rules or to its official source page, newest first, for one visa or every visa in a country. Each change names the fields that moved, the source and the date. Whether a change is proposed or in force is only stated when a source says so.

Parameters* required
countrystring
Lowercase destination country code, e.g. 'de', 'ca' or 'uk'. 'gb' also works for the UK.
since_daysinteger
How many days back to look, e.g. 90. Default 90.
visa_idstring
Transita visa id, e.g. 'uk-skilled-worker'. Get ids from transita_match_visas or transita_list_visas.
transita_get_checklistThe document checklist for one visa route: how far ahead to start, what the paperwork costs beyond the government fee, the first section in full with where to get each document, and the other sections by name and document count. The complete checklist, with tracking, is part o...1 params

The document checklist for one visa route: how far ahead to start, what the paperwork costs beyond the government fee, the first section in full with where to get each document, and the other sections by name and document count. The complete checklist, with tracking, is part o...

Parameters* required
visa_id*string
Transita visa id, e.g. 'de-eu-blue-card'. Get ids from transita_match_visas or transita_list_visas.
transita_estimate_move_costTotal cost worksheet for one visa route. The government application fee is sourced and dated. Flights, shipping, first rent, adviser, documents and living costs until the first pay are only the person's own figures: pass the ones they know and the rest stay blank, never guesse...7 params

Total cost worksheet for one visa route. The government application fee is sourced and dated. Flights, shipping, first rent, adviser, documents and living costs until the first pay are only the person's own figures: pass the ones they know and the rest stay blank, never guesse...

Parameters* required
adviser_usdnumber
Immigration adviser or lawyer in US dollars, 0 if none, e.g. 2500.
documents_usdnumber
Translation, apostille, police certificates and exams in US dollars, e.g. 700.
flights_usdnumber
One-way fares for everyone moving, in US dollars, e.g. 1800.
housing_usdnumber
First rent, deposit and agency fees in US dollars, e.g. 6000.
runway_usdnumber
Living costs from landing until the first pay cheque in US dollars, e.g. 5000.
shipping_usdnumber
Shipping, freight and storage in US dollars, e.g. 4500.
visa_id*string
Transita visa id, e.g. 'ca-cec'. Get ids from transita_match_visas or transita_list_visas.
transita_list_programmesIntake status of every tracked programme in one country at once: open, paused or closed, the last selection round and cutoff, what is expected next, the official source and the date it was last read. Routes with continuous intake are counted, not listed. Use it before recommen...1 params

Intake status of every tracked programme in one country at once: open, paused or closed, the last selection round and cutoff, what is expected next, the official source and the date it was last read. Routes with continuous intake are counted, not listed. Use it before recommen...

Parameters* required
country*string
Lowercase destination country code, e.g. 'de', 'ca' or 'uk'. 'gb' also works for the UK.
transita_recent_rule_changesWhat changed lately for one destination country: recorded changes to its visa rules or official source pages, plus dated news that cites an official source. Each item carries its source and date. An empty list is the normal answer when nothing has changed.2 params

What changed lately for one destination country: recorded changes to its visa rules or official source pages, plus dated news that cites an official source. Each item carries its source and date. An empty list is the normal answer when nothing has changed.

Parameters* required
country*string
Lowercase destination country code, e.g. 'de', 'ca' or 'uk'. 'gb' also works for the UK.
since_daysinteger
How many days back to look, e.g. 60. Default 60.

Sponsors

Configuration

TRANSITA_API_URLdefault: https://transita.app

Base URL of the Transita API. Change it only to point at a local dev server.

TRANSITA_MCP_USER_AGENTdefault: transita-mcp-server/0.2.0

User-Agent sent with each API request.

Readme

@transita/mcp-server

Visa eligibility and immigration data from Transita for Claude, ChatGPT, Cursor, Cline, Zed and any other MCP client.

Ask your assistant "where should I move?" and it can check your profile against 100+ visas in 16 countries, compare pathways, and tell you whether a programme is open right now. Every answer links to the official government source.

The package holds no data. It calls the public Transita API, so it picks up visa changes as soon as transita.app redeploys. No API key, no account.

There are two ways to connect:

  • Hosted: https://transita.app/api/mcp (Streamable HTTP, no auth). Nothing to install.
  • Local: npx -y @transita/mcp-server (stdio). Needs Node 20 or newer.

Install

Claude Code

Hosted:

claude mcp add --transport http transita https://transita.app/api/mcp

Local:

claude mcp add transita -- npx -y @transita/mcp-server

Add --scope user to make it available in every project. Run /mcp to check it connected.

Claude Desktop and claude.ai


View the full README on GitHub

Details

Repository
github.com/snenenenenenene/transita-mcp-server
Website
transita.app/mcp
Package
@transita/mcp-server
Transport
STDIO, HTTP
Registry
MCP registry, active
Resources
140
Prompts
3
Tools verified
Nov 6, 2026