On this page

Use ImmigrationDB through MCP

A read-only MCP server at https://immigrationdb.com/mcp plus direct file downloads, over the same countries, cities, visa routes, passport answers, reports and sources used by the HTML and JSON release.

Current access Live MCP endpoint, no key required

Connect any MCP client to https://immigrationdb.com/mcp — a read-only Streamable HTTP endpoint speaking MCP 2026-07-28 over the same release data as this site. No account, key or setup; rate limits and response caps keep it fair. Direct file downloads below remain for bulk reads.

City shards
39 countries
Cities
27,086
Mode
Read only

Download the data

Plain HTTPS fetches, no runtime required. Sizes are uncompressed bytes on disk; every file is also served gzip-compressed and transfers several times smaller.

ArtifactPathSizeWhat it contains
MCP index/mcp/index.json33.6 MBSnapshot identity, country pages, reports, entry rules and the shard map for all 39 countries
City shards/mcp/cities/{country}.json2469.5 MB across 39 filesFull city records with claim-level facts; largest shards: DE 348.3 MB, DE 348.2 MB, IT 247.0 MB
Bounded query index/mcp/query/index.json81 KBCompact metric and country partitions used by the local agent tools
Fact lines/mcp/query/facts.ndjson800.4 MBOffset-addressable fact records; the runtime reads only selected lines
MCP catalog/data/mcp/catalog.json7.7 MBThe 15-tool contract with input schemas and the machine-surface map
Entry-rule index/data/mcp/entry-rules/index.json31 KBPassport entry-rule discovery map
Source catalog/data/sources/index.json45.4 MBEvery cited source row with URL, publisher and dates
Metric dictionary/data/metrics.json153 KBDefinitions, units and coverage for every metric_id

The complete corpus is deliberately not published as one file. Fetch the shards you need, or use the bounded query index when an agent needs one metric across countries: /mcp/query/index.json points to compact country and metric partitions plus offset-addressable facts.ndjson. The per-entity twins remain available for exact page reads. llms.txt is the start-here index for agents.

Tool catalog

Fifteen bounded tools form the public MCP contract; input schemas ship in the MCP catalog. Missing values and incompatible comparisons remain explicit.

ToolInputPurpose
search_destinationsquery, limit, cursorSearch admitted ImmigrationDB country and city identities with bounded cursor pagination.
get_citycountry, slugGet one admitted city with canonical URL, claim-level facts and source metadata.
get_countryccGet one admitted country page record and official visa-route handoffs.
search_visa_routesdestination, purpose, limit, cursorSearch admitted destination visa and residence routes without inventing missing eligibility data.
get_legal_routedestination, route_idGet one admitted legal-route record with its official source.
search_entry_rulespassport, destination, purpose, limit, cursorSearch passport entry rules from the published record; unknown and unavailable decisions remain explicit.
get_entry_rulepassport, destinationGet one passport entry rule using the canonical legal/entry URI identity.
list_reportscategory, limit, cursorList public ImmigrationDB reports by optional category with bounded cursor pagination.
get_reportreport_idGet one public report envelope with canonical and machine-resource URLs.
resolve_cityquery, limitResolve a natural-language city query to bounded ranked public candidates without silently selecting an ambiguous country.
get_city_factcountry, slug, metric_idReturn exactly one public city fact with value, unit, geographic grain, dates, source and snapshot provenance.
list_metricscountry, block, query, comparison_eligible, limit, cursorList reviewed metric definitions and observed public snapshot coverage with bounded filters and pagination.
list_blockslimit, cursorList stable reviewed metric blocks with observed metric, fact and country coverage.
compare_citiescities, metric_idsCompare canonical public cities on compatible metric definitions with provenance for every cell.
search_factscountries, filters, sort_metric, sort_order, limit, cursor, diagnosticRun bounded deterministic numeric filters over eligible public city facts with explicit counts and provenance.

Stable resource URIs

immigrationdb://catalogCounts and discoverable resources.
immigrationdb://country/deCountry record and route handoffs.
immigrationdb://city/de/berlinCity facts with source metadata.
immigrationdb://legal/routes/de/highly-skilledOne destination route family.
immigrationdb://legal/entry/lv/usOne passport-entry answer.
immigrationdb://report/warmest-published-cities-across-current-coverageReport rows, method and sources.

Example requests

Resolve a city

{ "tool": "resolve_city", "arguments": { "query": "Berlin, Germany", "limit": 5 } }

Get one fact

{ "tool": "get_city_fact", "arguments": { "country": "de", "slug": "berlin", "metric_id": "population_total" } }

Compare cities

{ "tool": "compare_cities", "arguments": { "cities": [{ "country": "de", "slug": "berlin" }, { "country": "de", "slug": "munich" }], "metric_ids": ["population_total"] } }

Find matching facts

{ "tool": "search_facts", "arguments": { "countries": ["de"], "filters": [{ "metric_id": "population_total", "op": ">", "value": 100000 }], "sort_metric": "population_total", "sort_order": "desc", "limit": 20 } }

Response contract

Every response carries the snapshot ID, generation date and canonical origin. Facts retain value, unit, geographic grain, observation date, verification date, source ID, source URL and grade.

  • Unknown or blocked values are not synthesized.
  • HTML, JSON, Markdown and MCP use the same canonical identifiers.
  • Data-only records stay outside public discovery.
  • Errors include the requested identifier and snapshot ID.

Inspect the raw contract

Use the MCP catalog and index to discover the exact country shard or entity record you need.