ImmigrationDB MCP server
online · 100% uptimeio.github.streltcoff/immigrationdb·v0.3.0Read-only migration data: cities, visa routes, entry rules, costs, safety, climate, with sources.
0 stars
Reviews
Write oneNobody has reviewed ImmigrationDB yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
ImmigrationDB tools (15)
write = sends, deletes, buys or postscompare_citiesFreeArguments: cities (required), metric_ids (required). Compare canonical public cities on compatible metric definitions with provenance for every cell. Example: {"cities":[{"country":"de","slug":"berlin"},{"country":"de","slug":"munich"}],"metric_ids":["population_total"]} Boundary: Incompatible units, periods, definitions or grains are omitted with reasons; no implicit currency, period or geography conversion occurs.
get_cityFreeArguments: country (required), slug (required). Get one admitted city with canonical URL, claim-level facts and source metadata. Required arguments are exactly `country` (ISO 3166-1 alpha-2) and `slug` (the canonical city slug, e.g. "berlin" — not the display name). Example: {"country":"de","slug":"berlin"} Boundary: Returns the backwards-compatible full city record by default; use get_city_fact for one metric.
get_city_factFreeArguments: country (required), slug (required), metric_id (required). Return exactly one public city fact with value, unit, geographic grain, dates, source and snapshot provenance. Required arguments are exactly `country` (ISO 3166-1 alpha-2), `slug` (canonical city slug, not the display name) and `metric_id`. Example: {"country":"de","slug":"berlin","metric_id":"population_total"} Boundary: Returns not_available or ambiguous_metric_version instead of guessing across units, periods, definitions or geographic grains.
get_countryFreeArguments: cc (required). Get one admitted country page record and official visa-route handoffs. It takes exactly one argument: `cc`, the ISO 3166-1 alpha-2 country code (e.g. "de") — not `country`. Example: {"cc":"de"} Boundary: Only public country records and their published handoffs are returned.
get_entry_ruleFreeArguments: passport (required), destination. Get one passport entry rule using the canonical legal/entry URI identity. Example: {"passport":"lv","destination":"us"} Boundary: A missing answer is returned explicitly and is never replaced with an assumption.
get_legal_routeFreeArguments: destination (required), route_id (required). Get one admitted legal-route record with its official source. Example: {"destination":"de","route_id":"highly-skilled"} Boundary: Missing or incomplete route fields remain explicit; the response does not infer a legal outcome.
get_reportFreeArguments: report_id (required). Get one public report envelope with canonical and machine-resource URLs. Example: {"report_id":"warmest-published-cities-across-current-coverage"} Boundary: The report response is bounded by the published report contract and does not expose review-only rows.
list_blocksFreeArguments: limit, cursor. List stable reviewed metric blocks with observed metric, fact and country coverage. Example: {"limit":20} Boundary: Block order and IDs are deterministic; coverage counts describe the current public snapshot only.
list_metricsFreeArguments: country, block, query, comparison_eligible, limit, cursor. List reviewed metric definitions and observed public snapshot coverage with bounded filters and pagination. Example: {"query":"population","country":"de","limit":20} Boundary: Descriptions and units come from the reviewed registry; missing ontology is reported as a contract gap, not generated from a label.
list_reportsFreeArguments: category, limit, cursor. List public ImmigrationDB reports by optional category with bounded cursor pagination. Example: {"category":"Population","limit":20} Boundary: Lists published reports only; report rows retain their own source and method metadata.
resolve_cityFreeArguments: query (required), limit. Resolve a natural-language city query to bounded ranked public candidates without silently selecting an ambiguous country. Example: {"query":"Berlin, Germany","limit":5} Boundary: A bare or ambiguous city name returns candidates and ambiguity; it must not auto-select a non-exact country.
search_destinationsFreeArguments: query (required), limit, cursor. Search admitted ImmigrationDB country and city identities with bounded cursor pagination. Example: {"query":"Berlin, Germany","limit":5} Boundary: Returns ranked public identities; it does not guess a missing country or expose data-only records.
search_entry_rulesFreeArguments: passport, destination, purpose, limit, cursor. Search passport entry rules from the admitted snapshot; unknown and unavailable decisions remain explicit. Example: {"passport":"lv","destination":"us","limit":20} Boundary: Only accepted public entry answers are returned; verify the responsible authority before travel.
search_factsFreeArguments: countries, filters, sort_metric, sort_order, limit, cursor, diagnostic. Run bounded deterministic numeric filters over eligible public city facts with explicit counts and provenance. Example: {"countries":["de"],"filters":[{"metric_id":"population_total","op":">","value":100000}],"sort_metric":"population_total","sort_order":"desc","limit":20} Boundary: Filters are ANDed, results are capped and tie-broken by canonical entity ID; wrong-grain or non-comparable facts are excluded unless diagnostic mode is explicit.
search_visa_routesFreeArguments: destination (required), purpose, limit, cursor. Search admitted destination visa and residence routes without inventing missing eligibility data. Example: {"destination":"de","purpose":"work","limit":20} Boundary: Returns sourced route families; it is reference information, not legal advice or an eligibility decision.
Public scan report
scanner v0.1.10 · 2026-10-13 · same rubric, same numbers if you re-run it
- –Code scanremote-only server, no package to scann/a
- Live reliabilityremote reachable in 2041ms17/20
- Tool poisoning15 tool descriptions checked15/15
- Auth qualityopen endpoint, read-only tools10/15
- Maintenancelast push 2 days ago15/15
- Maintainer identityregistry namespace matches repository owner6/10
How ImmigrationDB compares
Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.
- Safety score
- 84/100
- higher than 68% of 48,255 servers
- Tools
- 15
- the typical server has 7
- Tools that change things
- 0%
- typical: 0%. Fewer write tools means less an agent can break
- Uptime
- 100%
- of our recent checks; the typical remote server answers 100%
- Response time
- 408 ms
- faster than 36% of 30,031 servers
What its tools let an agent do: 15 read
Install ImmigrationDB in Claude Code, Cursor or VS Code
claude mcp add --transport http immigrationdb https://immigrationdb.com/mcp
What the publisher says
From the ImmigrationDB repository's README, as published. We do not edit it. Read it on GitHub
ImmigrationDB MCP
Read-only Model Context Protocol server for ImmigrationDB, a sourced migration reference: 39 countries and 27,000+ cities, visa and residence routes, passport entry answers, cost of living, salaries, crime, air quality and climate. Every value carries its source, observation date and geographic grain. The server reads the same release as the website.
- Live endpoint (Streamable HTTP, no key, no account): https://immigrationdb.com/mcp
- Protocol versions: 2026-07-28, 2025-11-25
- Docs: https://immigrationdb.com/data/mcp/
- Tool catalog with input schemas: https://immigrationdb.com/data/mcp/catalog.json
- Methodology: https://immigrationdb.com/methodology/
- Agent index: https://immigrationdb.com/llms.txt
This repository holds the public contract of the hosted server: client configuration, the tool list with input schemas (tools.json), registry metadata (server.json) and a dependency-free smoke test. The service runs only as the hosted endpoint above; its data release is several gigabytes and is published as files at https://immigrationdb.com/data/mcp/.
Tools
Optional arguments are listed with the required ones; tools.json has the full input schemas. Country arguments are ISO 3166-1 alpha-2 codes (de, lv, us); city arguments are canonical slugs (berlin), not display names. All tools are annotated read-only and idempotent.
Resources
- immigrationdb://country/{cc} — country record and route links
- immigrationdb://city/{country}/{slug} — city facts with source metadata
- immigrationdb://legal/routes/{country}/{route_id} — one visa or residence route
- immigrationdb://legal/entry/{passport}/{destination} — one passport entry answer
- immigrationdb://legal/entry/{passport} — all entry answers for a passport
- immigrationdb://report/{report_id} — report rows, method and sources
Client configuration
Any MCP client that supports Streamable HTTP:
{
"mcpServers": {
"immigrationdb": {
"url": "https://immigrationdb.com/mcp"
}
}
}Claude Code:
claude mcp add --transport http immigrationdb https://immigrationdb.com/mcpShortened. The full README is on GitHub.
Nothing above is checked by us. What we check is on the safety report.
ImmigrationDB: common questions
- Is ImmigrationDB MCP server safe?
- Mostly: it is graded B (84/100). Read the ImmigrationDB safety report
- How do I install ImmigrationDB?
- It runs remotely at immigrationdb.com. Add it to Claude Code, Cursor, VS Code or Claude Desktop with the snippets above, or call it through the mcp.market gateway without installing anything.
- Does ImmigrationDB need an API key?
- Not as far as the registry entry and our scan can tell: no credentials are declared or required.
- Is ImmigrationDB maintained?
- The last commit was 25 days ago (2026-10-10). The latest release is v0.3.0.
- Is ImmigrationDB up?
- 100% of our last 28 checks got an answer. We check remote servers about four times a day.
- How does ImmigrationDB compare with other MCP servers?
- safety score 84/100 (higher than 68% of 48,255 servers); tools 15 (the typical server has 7); tools that change things 0% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.