CodePostalPro
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
Postal lookups for 120 countries with cited sources; deep US tier: demographics, climate, area codes
| Author | com.codepostalpro |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 392 ms |
| Last measured | 2026-10-26 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"CodePostalPro": {
"url": "https://api.codepostalpro.com/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (7)
lookup_postal_coderead-onlyLook 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.
Parameters:
country(required) — string — ISO 3166-1 alpha-2 code: US, FR, DZ, TN or MAcode(required) — string — The postal / ZIP code exactly as written, e.g. "90210", "75001", "16000"
Hints: read-only yes · destructive no · idempotent yes · open-world no
search_placesread-onlyFind 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.
Parameters:
query(required) — string — Place name or postal-code prefix, at least 2 characterslimit— integer — Max results, 1–100 (default 20)country— string — Optional ISO code to restrict the search (US, FR, DZ, TN, MA)
Hints: read-only yes · destructive no · idempotent yes · open-world no
nearby_placesread-onlyList 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.
Parameters:
lat(required) — numberlon(required) — numberlimit— integer — 1–100, default 20country— string — Optional ISO code filterradius_km— number — 0.5–200, default 25
Hints: read-only yes · destructive no · idempotent yes · open-world no
get_regionread-onlyA 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".
Parameters:
country(required) — stringregion(required) — string — Region slug
Hints: read-only yes · destructive no · idempotent yes · open-world no
get_groupread-onlyA 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`).
Parameters:
country(required) — stringregion(required) — stringgroup(required) — string
Hints: read-only yes · destructive no · idempotent yes · open-world no
area_code_lookupread-onlyWhere 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.
Parameters:
area_code(required) — string — Three-digit NANPA area code, e.g. "310"
Hints: read-only yes · destructive no · idempotent yes · open-world no
list_countriesread-onlyCoverage 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.
Hints: read-only yes · destructive no · idempotent yes · open-world no
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.