Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

ImmigrationDB

REMOTE · IMMIGRATIONDB.COM

Read-only migration data: cities, visa routes, entry rules, costs, safety, climate, with sources.

68 Trust /100

Last scanned (18 hours ago)

Scores higher than 58% of remote servers

Reachable. Last reached 18 Oct 2026.

Category Maps and Location

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →

Endpoint Security80
Transport & Reachability100
Schema Quality & AI Usability41
  • 0% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Fail
  • AI-judged instruction clarity (good).Pass
  • Tool/resource definitions use about 15375 tokens (~7/item across 2015 items; 15 tools + 2000 resources), lean.Pass
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management20
  • Stability observed for 6 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage71
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 0% of tool parameters carry a description.Fail
  • Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • We read all 15 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 16 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a current MCP spec version (2026-07-28).Pass
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 18 Oct 26 +1
    • This server's schema is too large to store in full, so we cannot compare its tools day to day functional
  • 17 Oct 26 0
    • This server's schema is too large to store in full, so we cannot compare its tools day to day functional
  • 16 Oct 26 +1
    • This server's schema is too large to store in full, so we cannot compare its tools day to day functional
  • 15 Oct 26 0
    • This server's schema is too large to store in full, so we cannot compare its tools day to day functional
  • 14 Oct 26 +1
    • This server's schema is too large to store in full, so we cannot compare its tools day to day functional
  • 13 Oct 26 0
    • Stability: unverified → 0.03 ▲ functional
    • This server's schema is too large to store in full, so we cannot compare its tools day to day functional
  • 12 Oct 26 65

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 18 Oct 2026 · Probed https://immigrationdb.com/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=immigrationdb.com CN=WE1,O=Google Trust Services,C=US 12 Sept 2026 11 Dec 2026 ECDSA 256 ECDSA-SHA256 f0502aef981ba09713b8d067735d3fd7
SANs: immigrationdb.com, *.immigrationdb.com
CN=WE1,O=Google Trust Services,C=US (CA) CN=GTS Root R4,O=Google Trust Services LLC,C=US 13 Dec 2023 20 Feb 2029 ECDSA 256 ECDSA-SHA384 7ff31977972c224a76155d13b6d685e3
CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE 15 Nov 2023 28 Jan 2028 ECDSA 384 SHA256-RSA 7fe530bf331343bedd821610493d8a1b

Background: What to check on a remote MCP endpoint →

DNSSEC insecure

Validation of immigrationdb.com. — Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
com. present 19718 13 Verified
immigrationdb.com. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication No authorisation required

The endpoint answered without asking for a token. Anyone who knows the URL can reach it.

Result No authorisation required
HTTP status 200
Header Value
strict-transport-security max-age=63072000; includeSubDomains
content-security-policy default-src 'self'; img-src 'self' data:; style-src 'self' 'unsafe-inline'; script-src 'self'; font-src 'self' data:; connect-src 'self'; frame-ancestors 'none'; base-uri 'self'; form-action 'self' https://formsubmit.co;
x-content-type-options nosniff
x-frame-options DENY
referrer-policy strict-origin-when-cross-origin
permissions-policy geolocation=(), microphone=(), camera=(), payment=(), usb=()

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://immigrationdb.com/mcp Verified 200
http (plaintext) http://immigrationdb.com/mcp HTTPS enforced 301 https://immigrationdb.com/mcp
MCP tools · 15 exposed · ~1,565 tokens partial

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
compare_cities ~107

Arguments: 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.

NameTypeReqDescription
citiesarrayyes–
metric_idsarrayyes–
NameTypeReqDescription
canonical_originstringyes–
citationsobjectyes–
generated_atstringyes–
resource_linksarrayyes–
schema_versionstringyes–
snapshot_idstringyes–
statusstringyes–

No examples provided.

get_city ~135

Arguments: 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.

NameTypeReqDescription
countrystringyes–
detailstring––
metric_idsarray––
slugstringyes–
NameTypeReqDescription
canonical_originstringyes–
citationsobjectyes–
generated_atstringyes–
resource_linksarrayyes–
schema_versionstringyes–
snapshot_idstringyes–
statusstringyes–

No examples provided.

get_city_fact ~143

Arguments: 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.

NameTypeReqDescription
countrystringyes–
metric_idstringyes–
slugstringyes–
NameTypeReqDescription
canonical_originstringyes–
citationsobjectyes–
generated_atstringyes–
resource_linksarrayyes–
schema_versionstringyes–
snapshot_idstringyes–
statusstringyes–

No examples provided.

get_country ~88

Arguments: 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.

NameTypeReqDescription
ccstringyes–
NameTypeReqDescription
canonical_originstringyes–
citationsobjectyes–
generated_atstringyes–
resource_linksarrayyes–
schema_versionstringyes–
snapshot_idstringyes–
statusstringyes–

No examples provided.

get_entry_rule ~72

Arguments: 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.

NameTypeReqDescription
destinationstring––
passportstringyes–
NameTypeReqDescription
canonical_originstringyes–
citationsobjectyes–
generated_atstringyes–
resource_linksarrayyes–
schema_versionstringyes–
snapshot_idstringyes–
statusstringyes–

No examples provided.

get_legal_route ~80

Arguments: 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.

NameTypeReqDescription
destinationstringyes–
route_idstringyes–
NameTypeReqDescription
canonical_originstringyes–
citationsobjectyes–
generated_atstringyes–
resource_linksarrayyes–
schema_versionstringyes–
snapshot_idstringyes–
statusstringyes–

No examples provided.

get_report ~73

Arguments: 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.

NameTypeReqDescription
report_idstringyes–
NameTypeReqDescription
canonical_originstringyes–
citationsobjectyes–
generated_atstringyes–
resource_linksarrayyes–
schema_versionstringyes–
snapshot_idstringyes–
statusstringyes–

No examples provided.

list_blocks ~74

Arguments: 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.

NameTypeReqDescription
countrystring––
cursorstring––
limitinteger––
NameTypeReqDescription
canonical_originstringyes–
citationsobjectyes–
generated_atstringyes–
resource_linksarrayyes–
schema_versionstringyes–
snapshot_idstringyes–
statusstringyes–

No examples provided.

list_metrics ~125

Arguments: 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.

NameTypeReqDescription
blockstring––
comparison_eligibleboolean––
countrystring––
cursorstring––
limitinteger––
querystring––
NameTypeReqDescription
canonical_originstringyes–
citationsobjectyes–
generated_atstringyes–
resource_linksarrayyes–
schema_versionstringyes–
snapshot_idstringyes–
statusstringyes–

No examples provided.

list_reports ~78

Arguments: 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.

NameTypeReqDescription
categorystring––
cursorstring––
limitinteger––
NameTypeReqDescription
canonical_originstringyes–
citationsobjectyes–
generated_atstringyes–
resource_linksarrayyes–
schema_versionstringyes–
snapshot_idstringyes–
statusstringyes–

No examples provided.

resolve_city ~85

Arguments: 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.

NameTypeReqDescription
limitinteger––
querystringyes–
NameTypeReqDescription
canonical_originstringyes–
citationsobjectyes–
generated_atstringyes–
resource_linksarrayyes–
schema_versionstringyes–
snapshot_idstringyes–
statusstringyes–

No examples provided.

search_destinations ~86

Arguments: 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.

NameTypeReqDescription
cursorstring––
limitinteger––
querystringyes–
NameTypeReqDescription
canonical_originstringyes–
citationsobjectyes–
generated_atstringyes–
resource_linksarrayyes–
schema_versionstringyes–
snapshot_idstringyes–
statusstringyes–

No examples provided.

search_entry_rules ~104

Arguments: 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.

NameTypeReqDescription
cursorstring––
destinationstring––
limitinteger––
passportstring––
purposestring––
NameTypeReqDescription
canonical_originstringyes–
citationsobjectyes–
generated_atstringyes–
resource_linksarrayyes–
schema_versionstringyes–
snapshot_idstringyes–
statusstringyes–

No examples provided.

search_facts ~216

Arguments: 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.

NameTypeReqDescription
countriesarray––
countrystring––
cursorstring––
diagnosticboolean––
diagnostic_viewboolean––
directionstring––
filtersarray––
limitinteger––
metric_filtersarray––
sortobject––
sort_directionstring––
sort_metricstring––
sort_orderstring––
NameTypeReqDescription
canonical_originstringyes–
citationsobjectyes–
generated_atstringyes–
resource_linksarrayyes–
schema_versionstringyes–
snapshot_idstringyes–
statusstringyes–

No examples provided.

search_visa_routes ~99

Arguments: 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.

NameTypeReqDescription
cursorstring––
destinationstringyes–
limitinteger––
purposestring––
NameTypeReqDescription
canonical_originstringyes–
citationsobjectyes–
generated_atstringyes–
resource_linksarrayyes–
schema_versionstringyes–
snapshot_idstringyes–
statusstringyes–

No examples provided.

Install

How do I install the ImmigrationDB MCP server?

ImmigrationDB is a hosted endpoint at https://immigrationdb.com/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · immigrationdb.com

# add to Claude Code
claude mcp add --transport http streltcoff-immigrationdb 'https://immigrationdb.com/mcp'
Common questions

What is the ImmigrationDB MCP server?

ImmigrationDB is an MCP server listed in the public MCP registry as io.github.streltcoff/immigrationdb. Read-only migration data: cities, visa routes, entry rules, costs, safety, climate, with sources. This page covers its hosted endpoint (https://immigrationdb.com/mcp).

Is the ImmigrationDB MCP server safe to use?

ImmigrationDB scores 68 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

Does the ImmigrationDB MCP server require authentication?

No. We connected to ImmigrationDB without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

Is the ImmigrationDB MCP server still maintained?

ImmigrationDB is still listed as active in the MCP registry. We last reached this channel on 18 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.