ImmigrationDB
Read-only migration data: cities, visa routes, entry rules, costs, safety, climate, with sources.
사용해야 할까요
품질 및 안전성
도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.
컨텍스트 비용
이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.
설치
원클릭 설치
`claude_desktop_config.json` 파일에 다음을 추가하세요:
{
"mcpServers": {
"immigrationdb": {
"url": "https://immigrationdb.com/mcp"
}
}
}원격 엔드포인트
https://immigrationdb.com/mcpstreamable-http할 수 있는 일
도구 목록
도구 (15)
🟢search_destinations(query, limit, cursor)
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.
입력 스키마
{
"type": "object",
"properties": {
"query": {
"type": "string",
"minLength": 1
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100
},
"cursor": {
"type": "string",
"minLength": 1
}
},
"required": [
"query"
],
"additionalProperties": false
}출력 스키마
{
"type": "object",
"properties": {
"schema_version": {
"type": "string",
"minLength": 1
},
"snapshot_id": {
"type": "string",
"minLength": 1
},
"generated_at": {
"type": "string",
"minLength": 1
},
"canonical_origin": {
"type": "string",
"format": "uri"
},
"status": {
"type": "string",
"minLength": 1
},
"citations": {
"type": "object",
"required": [
"canonical",
"sources"
],
"properties": {
"canonical": {
"type": "object",
"required": [
"entity_id",
"url",
"label"
],
"properties": {
"entity_id": {
"type": "string"
},
"url": {
"type": "string",
"format": "uri"
},
"label": {
"type": "string"
}
},
"additionalProperties": false
},
"sources": {
"type": "array",
"items": {
"type": "object",
"required": [
"source_id",
"title",
"url",
"native_period",
"scope",
"attribution"
],
"properties": {
"source_id": {
"type": "string",
"minLength": 1
},
"title": {
"type": "string",
"minLength": 1
},
"url": {
"type": "string",
"format": "uri"
},
"native_period": {
"type": [
"string",
"null"
]
},
"scope": {
"type": [
"string",
"null"
]
},
"observed_at": {
"type": [
"string",
"null"
]
},
"verified_at": {
"type": [
"string",
"null"
]
},
"attribution": {
"type": "string"
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
},
"resource_links": {
"type": "array",
"items": {
"type": "object",
"required": [
"type",
"uri",
"name"
],
"properties": {
"type": {
"const": "resource_link"
},
"uri": {
"type": "string",
"pattern": "^(https://immigrationdb\\.com|immigrationdb://)"
},
"name": {
"type": "string"
}
},
"additionalProperties": false
}
}
},
"required": [
"schema_version",
"snapshot_id",
"generated_at",
"canonical_origin",
"status",
"citations",
"resource_links"
],
"additionalProperties": true,
"title": "Search destinations result"
}🟢get_city(country, slug, detail, metric_ids)
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.
입력 스키마
{
"type": "object",
"properties": {
"country": {
"type": "string",
"minLength": 2,
"maxLength": 2,
"pattern": "^[A-Za-z]{2}$"
},
"slug": {
"type": "string",
"minLength": 1
},
"detail": {
"type": "string",
"enum": [
"summary",
"full"
]
},
"metric_ids": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"maxItems": 50
}
},
"required": [
"country",
"slug"
],
"additionalProperties": false
}출력 스키마
{
"type": "object",
"properties": {
"schema_version": {
"type": "string",
"minLength": 1
},
"snapshot_id": {
"type": "string",
"minLength": 1
},
"generated_at": {
"type": "string",
"minLength": 1
},
"canonical_origin": {
"type": "string",
"format": "uri"
},
"status": {
"type": "string",
"minLength": 1
},
"citations": {
"type": "object",
"required": [
"canonical",
"sources"
],
"properties": {
"canonical": {
"type": "object",
"required": [
"entity_id",
"url",
"label"
],
"properties": {
"entity_id": {
"type": "string"
},
"url": {
"type": "string",
"format": "uri"
},
"label": {
"type": "string"
}
},
"additionalProperties": false
},
"sources": {
"type": "array",
"items": {
"type": "object",
"required": [
"source_id",
"title",
"url",
"native_period",
"scope",
"attribution"
],
"properties": {
"source_id": {
"type": "string",
"minLength": 1
},
"title": {
"type": "string",
"minLength": 1
},
"url": {
"type": "string",
"format": "uri"
},
"native_period": {
"type": [
"string",
"null"
]
},
"scope": {
"type": [
"string",
"null"
]
},
"observed_at": {
"type": [
"string",
"null"
]
},
"verified_at": {
"type": [
"string",
"null"
]
},
"attribution": {
"type": "string"
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
},
"resource_links": {
"type": "array",
"items": {
"type": "object",
"required": [
"type",
"uri",
"name"
],
"properties": {
"type": {
"const": "resource_link"
},
"uri": {
"type": "string",
"pattern": "^(https://immigrationdb\\.com|immigrationdb://)"
},
"name": {
"type": "string"
}
},
"additionalProperties": false
}
}
},
"required": [
"schema_version",
"snapshot_id",
"generated_at",
"canonical_origin",
"status",
"citations",
"resource_links"
],
"additionalProperties": true,
"title": "Get city result"
}🟢get_country(cc)
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.
입력 스키마
{
"type": "object",
"properties": {
"cc": {
"type": "string",
"minLength": 2,
"maxLength": 2,
"pattern": "^[A-Za-z]{2}$"
}
},
"required": [
"cc"
],
"additionalProperties": false
}출력 스키마
{
"type": "object",
"properties": {
"schema_version": {
"type": "string",
"minLength": 1
},
"snapshot_id": {
"type": "string",
"minLength": 1
},
"generated_at": {
"type": "string",
"minLength": 1
},
"canonical_origin": {
"type": "string",
"format": "uri"
},
"status": {
"type": "string",
"minLength": 1
},
"citations": {
"type": "object",
"required": [
"canonical",
"sources"
],
"properties": {
"canonical": {
"type": "object",
"required": [
"entity_id",
"url",
"label"
],
"properties": {
"entity_id": {
"type": "string"
},
"url": {
"type": "string",
"format": "uri"
},
"label": {
"type": "string"
}
},
"additionalProperties": false
},
"sources": {
"type": "array",
"items": {
"type": "object",
"required": [
"source_id",
"title",
"url",
"native_period",
"scope",
"attribution"
],
"properties": {
"source_id": {
"type": "string",
"minLength": 1
},
"title": {
"type": "string",
"minLength": 1
},
"url": {
"type": "string",
"format": "uri"
},
"native_period": {
"type": [
"string",
"null"
]
},
"scope": {
"type": [
"string",
"null"
]
},
"observed_at": {
"type": [
"string",
"null"
]
},
"verified_at": {
"type": [
"string",
"null"
]
},
"attribution": {
"type": "string"
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
},
"resource_links": {
"type": "array",
"items": {
"type": "object",
"required": [
"type",
"uri",
"name"
],
"properties": {
"type": {
"const": "resource_link"
},
"uri": {
"type": "string",
"pattern": "^(https://immigrationdb\\.com|immigrationdb://)"
},
"name": {
"type": "string"
}
},
"additionalProperties": false
}
}
},
"required": [
"schema_version",
"snapshot_id",
"generated_at",
"canonical_origin",
"status",
"citations",
"resource_links"
],
"additionalProperties": true,
"title": "Get country result"
}🟢search_visa_routes(destination, purpose, limit, cursor)
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.
입력 스키마
{
"type": "object",
"properties": {
"destination": {
"type": "string",
"minLength": 2,
"maxLength": 2,
"pattern": "^[A-Za-z]{2}$"
},
"purpose": {
"type": "string"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100
},
"cursor": {
"type": "string",
"minLength": 1
}
},
"required": [
"destination"
],
"additionalProperties": false
}출력 스키마
{
"type": "object",
"properties": {
"schema_version": {
"type": "string",
"minLength": 1
},
"snapshot_id": {
"type": "string",
"minLength": 1
},
"generated_at": {
"type": "string",
"minLength": 1
},
"canonical_origin": {
"type": "string",
"format": "uri"
},
"status": {
"type": "string",
"minLength": 1
},
"citations": {
"type": "object",
"required": [
"canonical",
"sources"
],
"properties": {
"canonical": {
"type": "object",
"required": [
"entity_id",
"url",
"label"
],
"properties": {
"entity_id": {
"type": "string"
},
"url": {
"type": "string",
"format": "uri"
},
"label": {
"type": "string"
}
},
"additionalProperties": false
},
"sources": {
"type": "array",
"items": {
"type": "object",
"required": [
"source_id",
"title",
"url",
"native_period",
"scope",
"attribution"
],
"properties": {
"source_id": {
"type": "string",
"minLength": 1
},
"title": {
"type": "string",
"minLength": 1
},
"url": {
"type": "string",
"format": "uri"
},
"native_period": {
"type": [
"string",
"null"
]
},
"scope": {
"type": [
"string",
"null"
]
},
"observed_at": {
"type": [
"string",
"null"
]
},
"verified_at": {
"type": [
"string",
"null"
]
},
"attribution": {
"type": "string"
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
},
"resource_links": {
"type": "array",
"items": {
"type": "object",
"required": [
"type",
"uri",
"name"
],
"properties": {
"type": {
"const": "resource_link"
},
"uri": {
"type": "string",
"pattern": "^(https://immigrationdb\\.com|immigrationdb://)"
},
"name": {
"type": "string"
}
},
"additionalProperties": false
}
}
},
"required": [
"schema_version",
"snapshot_id",
"generated_at",
"canonical_origin",
"status",
"citations",
"resource_links"
],
"additionalProperties": true,
"title": "Search visa routes result"
}🟢get_legal_route(destination, route_id)
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.
입력 스키마
{
"type": "object",
"properties": {
"destination": {
"type": "string",
"minLength": 2,
"maxLength": 2,
"pattern": "^[A-Za-z]{2}$"
},
"route_id": {
"type": "string",
"minLength": 1
}
},
"required": [
"destination",
"route_id"
],
"additionalProperties": false
}출력 스키마
{
"type": "object",
"properties": {
"schema_version": {
"type": "string",
"minLength": 1
},
"snapshot_id": {
"type": "string",
"minLength": 1
},
"generated_at": {
"type": "string",
"minLength": 1
},
"canonical_origin": {
"type": "string",
"format": "uri"
},
"status": {
"type": "string",
"minLength": 1
},
"citations": {
"type": "object",
"required": [
"canonical",
"sources"
],
"properties": {
"canonical": {
"type": "object",
"required": [
"entity_id",
"url",
"label"
],
"properties": {
"entity_id": {
"type": "string"
},
"url": {
"type": "string",
"format": "uri"
},
"label": {
"type": "string"
}
},
"additionalProperties": false
},
"sources": {
"type": "array",
"items": {
"type": "object",
"required": [
"source_id",
"title",
"url",
"native_period",
"scope",
"attribution"
],
"properties": {
"source_id": {
"type": "string",
"minLength": 1
},
"title": {
"type": "string",
"minLength": 1
},
"url": {
"type": "string",
"format": "uri"
},
"native_period": {
"type": [
"string",
"null"
]
},
"scope": {
"type": [
"string",
"null"
]
},
"observed_at": {
"type": [
"string",
"null"
]
},
"verified_at": {
"type": [
"string",
"null"
]
},
"attribution": {
"type": "string"
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
},
"resource_links": {
"type": "array",
"items": {
"type": "object",
"required": [
"type",
"uri",
"name"
],
"properties": {
"type": {
"const": "resource_link"
},
"uri": {
"type": "string",
"pattern": "^(https://immigrationdb\\.com|immigrationdb://)"
},
"name": {
"type": "string"
}
},
"additionalProperties": false
}
}
},
"required": [
"schema_version",
"snapshot_id",
"generated_at",
"canonical_origin",
"status",
"citations",
"resource_links"
],
"additionalProperties": true,
"title": "Get legal route result"
}🟢search_entry_rules(passport, destination, purpose, limit, cursor)
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.
입력 스키마
{
"type": "object",
"properties": {
"passport": {
"type": "string",
"minLength": 2,
"maxLength": 2,
"pattern": "^[A-Za-z]{2}$"
},
"destination": {
"type": "string",
"minLength": 2,
"maxLength": 2,
"pattern": "^[A-Za-z]{2}$"
},
"purpose": {
"type": "string"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100
},
"cursor": {
"type": "string",
"minLength": 1
}
},
"required": [],
"additionalProperties": false
}출력 스키마
{
"type": "object",
"properties": {
"schema_version": {
"type": "string",
"minLength": 1
},
"snapshot_id": {
"type": "string",
"minLength": 1
},
"generated_at": {
"type": "string",
"minLength": 1
},
"canonical_origin": {
"type": "string",
"format": "uri"
},
"status": {
"type": "string",
"minLength": 1
},
"citations": {
"type": "object",
"required": [
"canonical",
"sources"
],
"properties": {
"canonical": {
"type": "object",
"required": [
"entity_id",
"url",
"label"
],
"properties": {
"entity_id": {
"type": "string"
},
"url": {
"type": "string",
"format": "uri"
},
"label": {
"type": "string"
}
},
"additionalProperties": false
},
"sources": {
"type": "array",
"items": {
"type": "object",
"required": [
"source_id",
"title",
"url",
"native_period",
"scope",
"attribution"
],
"properties": {
"source_id": {
"type": "string",
"minLength": 1
},
"title": {
"type": "string",
"minLength": 1
},
"url": {
"type": "string",
"format": "uri"
},
"native_period": {
"type": [
"string",
"null"
]
},
"scope": {
"type": [
"string",
"null"
]
},
"observed_at": {
"type": [
"string",
"null"
]
},
"verified_at": {
"type": [
"string",
"null"
]
},
"attribution": {
"type": "string"
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
},
"resource_links": {
"type": "array",
"items": {
"type": "object",
"required": [
"type",
"uri",
"name"
],
"properties": {
"type": {
"const": "resource_link"
},
"uri": {
"type": "string",
"pattern": "^(https://immigrationdb\\.com|immigrationdb://)"
},
"name": {
"type": "string"
}
},
"additionalProperties": false
}
}
},
"required": [
"schema_version",
"snapshot_id",
"generated_at",
"canonical_origin",
"status",
"citations",
"resource_links"
],
"additionalProperties": true,
"title": "Search entry rules result"
}🟢get_entry_rule(passport, destination)
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.
입력 스키마
{
"type": "object",
"properties": {
"passport": {
"type": "string",
"minLength": 2,
"maxLength": 2,
"pattern": "^[A-Za-z]{2}$"
},
"destination": {
"type": "string",
"minLength": 2,
"maxLength": 2,
"pattern": "^[A-Za-z]{2}$"
}
},
"required": [
"passport"
],
"additionalProperties": false
}출력 스키마
{
"type": "object",
"properties": {
"schema_version": {
"type": "string",
"minLength": 1
},
"snapshot_id": {
"type": "string",
"minLength": 1
},
"generated_at": {
"type": "string",
"minLength": 1
},
"canonical_origin": {
"type": "string",
"format": "uri"
},
"status": {
"type": "string",
"minLength": 1
},
"citations": {
"type": "object",
"required": [
"canonical",
"sources"
],
"properties": {
"canonical": {
"type": "object",
"required": [
"entity_id",
"url",
"label"
],
"properties": {
"entity_id": {
"type": "string"
},
"url": {
"type": "string",
"format": "uri"
},
"label": {
"type": "string"
}
},
"additionalProperties": false
},
"sources": {
"type": "array",
"items": {
"type": "object",
"required": [
"source_id",
"title",
"url",
"native_period",
"scope",
"attribution"
],
"properties": {
"source_id": {
"type": "string",
"minLength": 1
},
"title": {
"type": "string",
"minLength": 1
},
"url": {
"type": "string",
"format": "uri"
},
"native_period": {
"type": [
"string",
"null"
]
},
"scope": {
"type": [
"string",
"null"
]
},
"observed_at": {
"type": [
"string",
"null"
]
},
"verified_at": {
"type": [
"string",
"null"
]
},
"attribution": {
"type": "string"
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
},
"resource_links": {
"type": "array",
"items": {
"type": "object",
"required": [
"type",
"uri",
"name"
],
"properties": {
"type": {
"const": "resource_link"
},
"uri": {
"type": "string",
"pattern": "^(https://immigrationdb\\.com|immigrationdb://)"
},
"name": {
"type": "string"
}
},
"additionalProperties": false
}
}
},
"required": [
"schema_version",
"snapshot_id",
"generated_at",
"canonical_origin",
"status",
"citations",
"resource_links"
],
"additionalProperties": true,
"title": "Get entry rule result"
}🟢list_reports(category, limit, cursor)
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.
입력 스키마
{
"type": "object",
"properties": {
"category": {
"type": "string"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100
},
"cursor": {
"type": "string",
"minLength": 1
}
},
"required": [],
"additionalProperties": false
}출력 스키마
{
"type": "object",
"properties": {
"schema_version": {
"type": "string",
"minLength": 1
},
"snapshot_id": {
"type": "string",
"minLength": 1
},
"generated_at": {
"type": "string",
"minLength": 1
},
"canonical_origin": {
"type": "string",
"format": "uri"
},
"status": {
"type": "string",
"minLength": 1
},
"citations": {
"type": "object",
"required": [
"canonical",
"sources"
],
"properties": {
"canonical": {
"type": "object",
"required": [
"entity_id",
"url",
"label"
],
"properties": {
"entity_id": {
"type": "string"
},
"url": {
"type": "string",
"format": "uri"
},
"label": {
"type": "string"
}
},
"additionalProperties": false
},
"sources": {
"type": "array",
"items": {
"type": "object",
"required": [
"source_id",
"title",
"url",
"native_period",
"scope",
"attribution"
],
"properties": {
"source_id": {
"type": "string",
"minLength": 1
},
"title": {
"type": "string",
"minLength": 1
},
"url": {
"type": "string",
"format": "uri"
},
"native_period": {
"type": [
"string",
"null"
]
},
"scope": {
"type": [
"string",
"null"
]
},
"observed_at": {
"type": [
"string",
"null"
]
},
"verified_at": {
"type": [
"string",
"null"
]
},
"attribution": {
"type": "string"
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
},
"resource_links": {
"type": "array",
"items": {
"type": "object",
"required": [
"type",
"uri",
"name"
],
"properties": {
"type": {
"const": "resource_link"
},
"uri": {
"type": "string",
"pattern": "^(https://immigrationdb\\.com|immigrationdb://)"
},
"name": {
"type": "string"
}
},
"additionalProperties": false
}
}
},
"required": [
"schema_version",
"snapshot_id",
"generated_at",
"canonical_origin",
"status",
"citations",
"resource_links"
],
"additionalProperties": true,
"title": "List reports result"
}🟢get_report(report_id)
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.
입력 스키마
{
"type": "object",
"properties": {
"report_id": {
"type": "string",
"minLength": 1
}
},
"required": [
"report_id"
],
"additionalProperties": false
}출력 스키마
{
"type": "object",
"properties": {
"schema_version": {
"type": "string",
"minLength": 1
},
"snapshot_id": {
"type": "string",
"minLength": 1
},
"generated_at": {
"type": "string",
"minLength": 1
},
"canonical_origin": {
"type": "string",
"format": "uri"
},
"status": {
"type": "string",
"minLength": 1
},
"citations": {
"type": "object",
"required": [
"canonical",
"sources"
],
"properties": {
"canonical": {
"type": "object",
"required": [
"entity_id",
"url",
"label"
],
"properties": {
"entity_id": {
"type": "string"
},
"url": {
"type": "string",
"format": "uri"
},
"label": {
"type": "string"
}
},
"additionalProperties": false
},
"sources": {
"type": "array",
"items": {
"type": "object",
"required": [
"source_id",
"title",
"url",
"native_period",
"scope",
"attribution"
],
"properties": {
"source_id": {
"type": "string",
"minLength": 1
},
"title": {
"type": "string",
"minLength": 1
},
"url": {
"type": "string",
"format": "uri"
},
"native_period": {
"type": [
"string",
"null"
]
},
"scope": {
"type": [
"string",
"null"
]
},
"observed_at": {
"type": [
"string",
"null"
]
},
"verified_at": {
"type": [
"string",
"null"
]
},
"attribution": {
"type": "string"
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
},
"resource_links": {
"type": "array",
"items": {
"type": "object",
"required": [
"type",
"uri",
"name"
],
"properties": {
"type": {
"const": "resource_link"
},
"uri": {
"type": "string",
"pattern": "^(https://immigrationdb\\.com|immigrationdb://)"
},
"name": {
"type": "string"
}
},
"additionalProperties": false
}
}
},
"required": [
"schema_version",
"snapshot_id",
"generated_at",
"canonical_origin",
"status",
"citations",
"resource_links"
],
"additionalProperties": true,
"title": "Get report result"
}🟢resolve_city(query, limit)
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.
입력 스키마
{
"type": "object",
"properties": {
"query": {
"type": "string",
"minLength": 1
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 10
}
},
"required": [
"query"
],
"additionalProperties": false
}출력 스키마
{
"type": "object",
"properties": {
"schema_version": {
"type": "string",
"minLength": 1
},
"snapshot_id": {
"type": "string",
"minLength": 1
},
"generated_at": {
"type": "string",
"minLength": 1
},
"canonical_origin": {
"type": "string",
"format": "uri"
},
"status": {
"type": "string",
"minLength": 1
},
"citations": {
"type": "object",
"required": [
"canonical",
"sources"
],
"properties": {
"canonical": {
"type": "object",
"required": [
"entity_id",
"url",
"label"
],
"properties": {
"entity_id": {
"type": "string"
},
"url": {
"type": "string",
"format": "uri"
},
"label": {
"type": "string"
}
},
"additionalProperties": false
},
"sources": {
"type": "array",
"items": {
"type": "object",
"required": [
"source_id",
"title",
"url",
"native_period",
"scope",
"attribution"
],
"properties": {
"source_id": {
"type": "string",
"minLength": 1
},
"title": {
"type": "string",
"minLength": 1
},
"url": {
"type": "string",
"format": "uri"
},
"native_period": {
"type": [
"string",
"null"
]
},
"scope": {
"type": [
"string",
"null"
]
},
"observed_at": {
"type": [
"string",
"null"
]
},
"verified_at": {
"type": [
"string",
"null"
]
},
"attribution": {
"type": "string"
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
},
"resource_links": {
"type": "array",
"items": {
"type": "object",
"required": [
"type",
"uri",
"name"
],
"properties": {
"type": {
"const": "resource_link"
},
"uri": {
"type": "string",
"pattern": "^(https://immigrationdb\\.com|immigrationdb://)"
},
"name": {
"type": "string"
}
},
"additionalProperties": false
}
}
},
"required": [
"schema_version",
"snapshot_id",
"generated_at",
"canonical_origin",
"status",
"citations",
"resource_links"
],
"additionalProperties": true,
"title": "Resolve city result"
}🟢get_city_fact(country, slug, metric_id)
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.
입력 스키마
{
"type": "object",
"properties": {
"country": {
"type": "string",
"minLength": 2,
"maxLength": 2,
"pattern": "^[A-Za-z]{2}$"
},
"slug": {
"type": "string",
"minLength": 1
},
"metric_id": {
"type": "string",
"minLength": 1
}
},
"required": [
"country",
"slug",
"metric_id"
],
"additionalProperties": false
}출력 스키마
{
"type": "object",
"properties": {
"schema_version": {
"type": "string",
"minLength": 1
},
"snapshot_id": {
"type": "string",
"minLength": 1
},
"generated_at": {
"type": "string",
"minLength": 1
},
"canonical_origin": {
"type": "string",
"format": "uri"
},
"status": {
"type": "string",
"minLength": 1
},
"citations": {
"type": "object",
"required": [
"canonical",
"sources"
],
"properties": {
"canonical": {
"type": "object",
"required": [
"entity_id",
"url",
"label"
],
"properties": {
"entity_id": {
"type": "string"
},
"url": {
"type": "string",
"format": "uri"
},
"label": {
"type": "string"
}
},
"additionalProperties": false
},
"sources": {
"type": "array",
"items": {
"type": "object",
"required": [
"source_id",
"title",
"url",
"native_period",
"scope",
"attribution"
],
"properties": {
"source_id": {
"type": "string",
"minLength": 1
},
"title": {
"type": "string",
"minLength": 1
},
"url": {
"type": "string",
"format": "uri"
},
"native_period": {
"type": [
"string",
"null"
]
},
"scope": {
"type": [
"string",
"null"
]
},
"observed_at": {
"type": [
"string",
"null"
]
},
"verified_at": {
"type": [
"string",
"null"
]
},
"attribution": {
"type": "string"
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
},
"resource_links": {
"type": "array",
"items": {
"type": "object",
"required": [
"type",
"uri",
"name"
],
"properties": {
"type": {
"const": "resource_link"
},
"uri": {
"type": "string",
"pattern": "^(https://immigrationdb\\.com|immigrationdb://)"
},
"name": {
"type": "string"
}
},
"additionalProperties": false
}
}
},
"required": [
"schema_version",
"snapshot_id",
"generated_at",
"canonical_origin",
"status",
"citations",
"resource_links"
],
"additionalProperties": true,
"title": "Get city fact result"
}🟢list_metrics(country, block, query, comparison_eligible, limit, ...)
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.
입력 스키마
{
"type": "object",
"properties": {
"country": {
"type": "string",
"minLength": 2,
"maxLength": 2,
"pattern": "^[A-Za-z]{2}$"
},
"block": {
"type": "string",
"minLength": 1
},
"query": {
"type": "string"
},
"comparison_eligible": {
"type": "boolean"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100
},
"cursor": {
"type": "string",
"minLength": 1
}
},
"required": [],
"additionalProperties": false
}출력 스키마
{
"type": "object",
"properties": {
"schema_version": {
"type": "string",
"minLength": 1
},
"snapshot_id": {
"type": "string",
"minLength": 1
},
"generated_at": {
"type": "string",
"minLength": 1
},
"canonical_origin": {
"type": "string",
"format": "uri"
},
"status": {
"type": "string",
"minLength": 1
},
"citations": {
"type": "object",
"required": [
"canonical",
"sources"
],
"properties": {
"canonical": {
"type": "object",
"required": [
"entity_id",
"url",
"label"
],
"properties": {
"entity_id": {
"type": "string"
},
"url": {
"type": "string",
"format": "uri"
},
"label": {
"type": "string"
}
},
"additionalProperties": false
},
"sources": {
"type": "array",
"items": {
"type": "object",
"required": [
"source_id",
"title",
"url",
"native_period",
"scope",
"attribution"
],
"properties": {
"source_id": {
"type": "string",
"minLength": 1
},
"title": {
"type": "string",
"minLength": 1
},
"url": {
"type": "string",
"format": "uri"
},
"native_period": {
"type": [
"string",
"null"
]
},
"scope": {
"type": [
"string",
"null"
]
},
"observed_at": {
"type": [
"string",
"null"
]
},
"verified_at": {
"type": [
"string",
"null"
]
},
"attribution": {
"type": "string"
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
},
"resource_links": {
"type": "array",
"items": {
"type": "object",
"required": [
"type",
"uri",
"name"
],
"properties": {
"type": {
"const": "resource_link"
},
"uri": {
"type": "string",
"pattern": "^(https://immigrationdb\\.com|immigrationdb://)"
},
"name": {
"type": "string"
}
},
"additionalProperties": false
}
}
},
"required": [
"schema_version",
"snapshot_id",
"generated_at",
"canonical_origin",
"status",
"citations",
"resource_links"
],
"additionalProperties": true,
"title": "List metrics result"
}🟢list_blocks(country, limit, cursor)
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.
입력 스키마
{
"type": "object",
"properties": {
"country": {
"type": "string",
"minLength": 2,
"maxLength": 2,
"pattern": "^[A-Za-z]{2}$"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100
},
"cursor": {
"type": "string",
"minLength": 1
}
},
"required": [],
"additionalProperties": false
}출력 스키마
{
"type": "object",
"properties": {
"schema_version": {
"type": "string",
"minLength": 1
},
"snapshot_id": {
"type": "string",
"minLength": 1
},
"generated_at": {
"type": "string",
"minLength": 1
},
"canonical_origin": {
"type": "string",
"format": "uri"
},
"status": {
"type": "string",
"minLength": 1
},
"citations": {
"type": "object",
"required": [
"canonical",
"sources"
],
"properties": {
"canonical": {
"type": "object",
"required": [
"entity_id",
"url",
"label"
],
"properties": {
"entity_id": {
"type": "string"
},
"url": {
"type": "string",
"format": "uri"
},
"label": {
"type": "string"
}
},
"additionalProperties": false
},
"sources": {
"type": "array",
"items": {
"type": "object",
"required": [
"source_id",
"title",
"url",
"native_period",
"scope",
"attribution"
],
"properties": {
"source_id": {
"type": "string",
"minLength": 1
},
"title": {
"type": "string",
"minLength": 1
},
"url": {
"type": "string",
"format": "uri"
},
"native_period": {
"type": [
"string",
"null"
]
},
"scope": {
"type": [
"string",
"null"
]
},
"observed_at": {
"type": [
"string",
"null"
]
},
"verified_at": {
"type": [
"string",
"null"
]
},
"attribution": {
"type": "string"
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
},
"resource_links": {
"type": "array",
"items": {
"type": "object",
"required": [
"type",
"uri",
"name"
],
"properties": {
"type": {
"const": "resource_link"
},
"uri": {
"type": "string",
"pattern": "^(https://immigrationdb\\.com|immigrationdb://)"
},
"name": {
"type": "string"
}
},
"additionalProperties": false
}
}
},
"required": [
"schema_version",
"snapshot_id",
"generated_at",
"canonical_origin",
"status",
"citations",
"resource_links"
],
"additionalProperties": true,
"title": "List blocks result"
}🟢compare_cities(cities, metric_ids)
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.
입력 스키마
{
"type": "object",
"properties": {
"cities": {
"type": "array",
"minItems": 2,
"maxItems": 10,
"items": {
"oneOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "object",
"properties": {
"country": {
"type": "string",
"minLength": 2,
"maxLength": 2,
"pattern": "^[A-Za-z]{2}$"
},
"slug": {
"type": "string",
"minLength": 1
}
},
"required": [
"country",
"slug"
],
"additionalProperties": false
}
]
}
},
"metric_ids": {
"type": "array",
"minItems": 1,
"maxItems": 20,
"items": {
"type": "string",
"minLength": 1
}
}
},
"required": [
"cities",
"metric_ids"
],
"additionalProperties": false
}출력 스키마
{
"type": "object",
"properties": {
"schema_version": {
"type": "string",
"minLength": 1
},
"snapshot_id": {
"type": "string",
"minLength": 1
},
"generated_at": {
"type": "string",
"minLength": 1
},
"canonical_origin": {
"type": "string",
"format": "uri"
},
"status": {
"type": "string",
"minLength": 1
},
"citations": {
"type": "object",
"required": [
"canonical",
"sources"
],
"properties": {
"canonical": {
"type": "object",
"required": [
"entity_id",
"url",
"label"
],
"properties": {
"entity_id": {
"type": "string"
},
"url": {
"type": "string",
"format": "uri"
},
"label": {
"type": "string"
}
},
"additionalProperties": false
},
"sources": {
"type": "array",
"items": {
"type": "object",
"required": [
"source_id",
"title",
"url",
"native_period",
"scope",
"attribution"
],
"properties": {
"source_id": {
"type": "string",
"minLength": 1
},
"title": {
"type": "string",
"minLength": 1
},
"url": {
"type": "string",
"format": "uri"
},
"native_period": {
"type": [
"string",
"null"
]
},
"scope": {
"type": [
"string",
"null"
]
},
"observed_at": {
"type": [
"string",
"null"
]
},
"verified_at": {
"type": [
"string",
"null"
]
},
"attribution": {
"type": "string"
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
},
"resource_links": {
"type": "array",
"items": {
"type": "object",
"required": [
"type",
"uri",
"name"
],
"properties": {
"type": {
"const": "resource_link"
},
"uri": {
"type": "string",
"pattern": "^(https://immigrationdb\\.com|immigrationdb://)"
},
"name": {
"type": "string"
}
},
"additionalProperties": false
}
}
},
"required": [
"schema_version",
"snapshot_id",
"generated_at",
"canonical_origin",
"status",
"citations",
"resource_links"
],
"additionalProperties": true,
"title": "Compare cities result"
}🟢search_facts(country, countries, filters, metric_filters, sort_metric, ...)
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.
입력 스키마
{
"type": "object",
"properties": {
"country": {
"type": "string",
"minLength": 2,
"maxLength": 2,
"pattern": "^[A-Za-z]{2}$"
},
"countries": {
"type": "array",
"maxItems": 39,
"items": {
"type": "string",
"minLength": 2,
"maxLength": 2,
"pattern": "^[A-Za-z]{2}$"
}
},
"filters": {
"type": "array",
"maxItems": 10,
"items": {
"type": "object",
"properties": {
"metric_id": {
"type": "string",
"minLength": 1
},
"op": {
"type": "string",
"enum": [
"gt",
"gte",
"lt",
"lte",
"eq",
"neq",
">",
">=",
"<",
"<=",
"="
]
},
"operator": {
"type": "string",
"minLength": 1
},
"value": {
"type": "number"
}
},
"required": [
"metric_id",
"value"
],
"additionalProperties": false
}
},
"metric_filters": {
"type": "array",
"maxItems": 10,
"items": {
"type": "object",
"properties": {
"metric_id": {
"type": "string",
"minLength": 1
},
"op": {
"type": "string",
"enum": [
"gt",
"gte",
"lt",
"lte",
"eq",
"neq",
">",
">=",
"<",
"<=",
"="
]
},
"operator": {
"type": "string",
"minLength": 1
},
"value": {
"type": "number"
}
},
"required": [
"metric_id",
"value"
],
"additionalProperties": false
}
},
"sort_metric": {
"type": "string",
"minLength": 1
},
"sort": {
"type": "object",
"properties": {
"metric_id": {
"type": "string",
"minLength": 1
},
"direction": {
"type": "string",
"enum": [
"asc",
"desc"
]
}
},
"required": [
"metric_id"
],
"additionalProperties": false
},
"sort_order": {
"type": "string",
"enum": [
"asc",
"desc"
]
},
"sort_direction": {
"type": "string",
"enum": [
"asc",
"desc"
]
},
"direction": {
"type": "string",
"enum": [
"asc",
"desc"
]
},
"diagnostic": {
"type": "boolean"
},
"diagnostic_view": {
"type": "boolean"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100
},
"cursor": {
"type": "string",
"minLength": 1
}
},
"required": [],
"additionalProperties": false
}출력 스키마
{
"type": "object",
"properties": {
"schema_version": {
"type": "string",
"minLength": 1
},
"snapshot_id": {
"type": "string",
"minLength": 1
},
"generated_at": {
"type": "string",
"minLength": 1
},
"canonical_origin": {
"type": "string",
"format": "uri"
},
"status": {
"type": "string",
"minLength": 1
},
"citations": {
"type": "object",
"required": [
"canonical",
"sources"
],
"properties": {
"canonical": {
"type": "object",
"required": [
"entity_id",
"url",
"label"
],
"properties": {
"entity_id": {
"type": "string"
},
"url": {
"type": "string",
"format": "uri"
},
"label": {
"type": "string"
}
},
"additionalProperties": false
},
"sources": {
"type": "array",
"items": {
"type": "object",
"required": [
"source_id",
"title",
"url",
"native_period",
"scope",
"attribution"
],
"properties": {
"source_id": {
"type": "string",
"minLength": 1
},
"title": {
"type": "string",
"minLength": 1
},
"url": {
"type": "string",
"format": "uri"
},
"native_period": {
"type": [
"string",
"null"
]
},
"scope": {
"type": [
"string",
"null"
]
},
"observed_at": {
"type": [
"string",
"null"
]
},
"verified_at": {
"type": [
"string",
"null"
]
},
"attribution": {
"type": "string"
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
},
"resource_links": {
"type": "array",
"items": {
"type": "object",
"required": [
"type",
"uri",
"name"
],
"properties": {
"type": {
"const": "resource_link"
},
"uri": {
"type": "string",
"pattern": "^(https://immigrationdb\\.com|immigrationdb://)"
},
"name": {
"type": "string"
}
},
"additionalProperties": false
}
}
},
"required": [
"schema_version",
"snapshot_id",
"generated_at",
"canonical_origin",
"status",
"citations",
"resource_links"
],
"additionalProperties": true,
"title": "Search facts result"
}커뮤니티
증거