Postal lookups for 120 countries with cited sources; deep US tier: demographics, climate, area codes
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Optional free API key (raises the daily limit from 1,000 to 5,000 calls; get one at https://codepostalpro.com/api/)
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Where a US telephone area code is used: the state(s) it serves, the cities with the most ZIPs listing it, total ZIP and city counts, and `overlay_codes` — codes assigned to the same territory (e.g. 310 and 424 in west Los Angeles). Use it for "where is area code 310", "what area code is Denver" (via the city’s ZIPs instead), or to sanity-check a phone number’s geography. Caveat to relay: NANPA assigns codes to rate centres, matched here to cities — city-level accuracy, not a legal boundary, and a mobile number keeps its code when its owner moves.
Three-digit NANPA area code, e.g. "310"
Where a US telephone area code is used: the state(s) it serves, the cities with the most ZIPs listing it, total ZIP and city counts, and `overlay_codes` — codes assigned to the same territory (e.g. 310 and 424 in west Los Angeles). Use it for "where is area code 310", "what area code is Denver" (via the city’s ZIPs instead), or to sanity-check a phone number’s geography. Caveat to relay: NANPA assigns codes to rate centres, matched here to cities — city-level accuracy, not a legal boundary, and a mobile number keeps its code when its owner moves.
| Argument | Type | Description |
|---|---|---|
| area_code* | string | Three-digit NANPA area code, e.g. "310" |
{
"type": "object",
"required": [
"area_code"
],
"properties": {
"area_code": {
"type": "string",
"description": "Three-digit NANPA area code, e.g. \"310\""
}
}
}A city (US), département (France), province (Morocco), post office (Algeria) or delegation (Tunisia) with all its localities / ZIP codes. For a US city this is the complete list of its ZIP codes with coordinates, time zone and area codes. Needs the region slug and the group slug (both from get_region or from any record's `region.slug` / `group.slug`).
| Argument | Type | Description |
|---|---|---|
| group* | string | |
| region* | string | |
| country* | string |
{
"type": "object",
"required": [
"country",
"region",
"group"
],
"properties": {
"group": {
"type": "string"
},
"region": {
"type": "string"
},
"country": {
"type": "string"
}
}
}A state, région, wilaya or governorate with the list of its cities / départements / delegations (names, slugs and their postal codes), plus for US states every telephone area code in use. Use the slugs it returns to call get_group or get_place. Region slugs are lower-case hyphenated names: "texas", "ile-de-france", "alger".
| Argument | Type | Description |
|---|---|---|
| region* | string | Region slug |
| country* | string |
{
"type": "object",
"required": [
"country",
"region"
],
"properties": {
"region": {
"type": "string",
"description": "Region slug"
},
"country": {
"type": "string"
}
}
}Coverage overview: the eight curated countries with postal-code format, hierarchy labels (e.g. state › city › ZIP), key facts (capital, population, area, currency, calling code) and time zones — plus `bulk_tier` with per-country postal-code counts for the ~115 additional countries served from GeoNames. Call it once if unsure whether a country is covered.
No arguments.
{
"type": "object",
"properties": {}
}Look up a postal code or US ZIP code. Returns every locality that carries the code with its city, county/administrative division, region (state, département, wilaya…), coordinates, IANA time zone, US telephone area codes, USDA 2023 plant hardiness / planting zone (e.g. 7b with its temperature band), and US Census demographics (population, density and land area, median household and per-capita income, median age, households, housing units, median home value, median gross rent — measured for the ZCTA, the Census approximation of the ZIP area). Each record lists its `sources` and a `verification` status (cross-checked | source-single | conflict | unverified); on `conflict`, `alternate_codes` gives the competing values and their sources — never pick one silently; tell the user both. Curated coverage (full records): United States (ZIP), Germany, Austria, Spain, France, Algeria, Tunisia, Morocco. All other countries (~115 more: GB, CA, IN, JP, MX, BR…) return bulk-tier records — place name, admin areas and coordinates from GeoNames, marked `tier: "bulk"` and single-source, without demographics.
| Argument | Type | Description |
|---|---|---|
| code* | string | The postal / ZIP code exactly as written, e.g. "90210", "75001", "16000" |
| country* | string | ISO 3166-1 alpha-2 code: US, FR, DZ, TN or MA |
{
"type": "object",
"required": [
"country",
"code"
],
"properties": {
"code": {
"type": "string",
"description": "The postal / ZIP code exactly as written, e.g. \"90210\", \"75001\", \"16000\""
},
"country": {
"type": "string",
"description": "ISO 3166-1 alpha-2 code: US, FR, DZ, TN or MA"
}
}
}List localities around a latitude/longitude, nearest first, each with `distance_km`. Use it for "what ZIP codes are near…", "postal codes within 10 km of…", or to resolve coordinates to the closest postal code (the first result). Distances are to the locality centroid from the source data, not to a boundary.
| Argument | Type | Description |
|---|---|---|
| lat* | number | |
| lon* | number | |
| limit | integer | 1–100, default 20 |
| country | string | Optional ISO code filter |
| radius_km | number | 0.5–200, default 25 |
{
"type": "object",
"required": [
"lat",
"lon"
],
"properties": {
"lat": {
"type": "number"
},
"lon": {
"type": "number"
},
"limit": {
"type": "integer",
"description": "1–100, default 20"
},
"country": {
"type": "string",
"description": "Optional ISO code filter"
},
"radius_km": {
"type": "number",
"description": "0.5–200, default 25"
}
}
}Find localities by name, city name, or the beginning of a postal code. Use this when the user gives a place name and wants its postal code(s), or has a partial code. Results are ranked exact-name-first, then by population. Returns the same full records as lookup_postal_code. Restrict with `country` whenever it is known — names repeat across countries and states (there are many Springfields). With a non-curated `country` (GB, CA, JP…), searches the bulk GeoNames tier by place name or postal-code prefix.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Max results, 1–100 (default 20) |
| query* | string | Place name or postal-code prefix, at least 2 characters |
| country | string | Optional ISO code to restrict the search (US, FR, DZ, TN, MA) |
{
"type": "object",
"required": [
"query"
],
"properties": {
"limit": {
"type": "integer",
"description": "Max results, 1–100 (default 20)"
},
"query": {
"type": "string",
"description": "Place name or postal-code prefix, at least 2 characters"
},
"country": {
"type": "string",
"description": "Optional ISO code to restrict the search (US, FR, DZ, TN, MA)"
}
}
}