codepostalpro
Postal & ZIP code data for 122 countries with cited sources — built for AI agents.
What it can do
- Lookup Postal Code: 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,
- Search Places: 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
- Nearby Places: 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
What data it sees
Do you need an account
No: the server works without sign-in
Postal & ZIP code data for 122 countries with cited sources — built for AI agents.
Two tiers, honestly labelled. Curated (US, France, Algeria, Tunisia, Morocco): one lookup for any US ZIP returns city, county + FIPS, state, coordinates, IANA time zone, NANPA area codes, 119th-Congress districts, US Census ACS demographics (population, density, land area, incomes, home value, rent, age, households), NOAA 1991–2020 climate normals and the USDA planting zone. Bulk (~115 more countries — GB, DE, CA, IN, JP, MX, BR…): 1.7M postal codes from GeoNames with place, admin areas and coordinates, marked tier "bulk". Every value carries its sources and a verification status, so agents can relay provenance; conflicts are surfaced with both values instead of silently resolved.
7 read-only tools including place search, nearby-by-coordinates and a US area-code reverse lookup (states, cities and overlay codes — e.g. 310/424). Authless: 1,000 calls/day per IP free; a free key from https://codepostalpro.com/api/ raises it to 5,000. Also in the official MCP Registry as com.codepostalpro/postal-codes.
How to connect
How to connect codepostalpro to Claude
The server address to paste into Claude settings:
https://codepostalpro--abeopress.run.tools
- Open Claude (claude.ai or the desktop app).
- Go to Settings → Connectors.
- Click Add custom connector.
- Paste the server address copied below into Remote MCP server URL and click Add.
- In a chat, click + → Connectors and switch the new connector on.
Custom connectors are available on Free, Pro, Max, Team and Enterprise plans (Free is limited to one). On Team and Enterprise an organization Owner adds the connector first under Organization settings → Connectors.
Authorization
After you click Add, a sign-in window for the service opens. Sign in with your own account and approve access. Claude never sees your password.
How to connect codepostalpro to ChatGPT
The server address to paste into ChatGPT settings:
https://codepostalpro--abeopress.run.tools
- Open ChatGPT in a browser (chatgpt.com). A Plus, Pro, Business, Enterprise or Edu plan is required.
- Turn on developer mode once: Settings → Apps → Advanced settings → Developer mode.
- Open Settings → Connectors and click Create.
- Fill in the form: Name (anything), Description (one line about what the service does), MCP server URL (copy it below).
- Under Authentication choose OAuth if the service requires sign-in, otherwise None. Click Create.
- In a new chat open + → Apps/Connectors and enable the connector.
OpenAI has renamed this section before (Connectors → Apps/Plugins). If the label differs, search settings for "developer mode". On Business/Enterprise workspaces an admin must allow custom connectors first.
Authorization
On first use ChatGPT opens the service's sign-in window. Sign in and approve access.
How to connect codepostalpro to Cursor
The server address to paste into Cursor settings:
https://codepostalpro--abeopress.run.tools
Fastest: click Open in Cursor below and confirm the prompt.
Manually:
- In Cursor open Settings → Cursor Settings → MCP and click Add new global MCP server.
- Paste the JSON copied below into
~/.cursor/mcp.json(per project:.cursor/mcp.jsonin the repo root). - Save the file. The server appears in the MCP list; authorize it there if asked.
Authorization
If the service needs sign-in, an authorize button appears next to the server in the MCP list.
Server tool list (7)
Raw names from tools/list. Only developers need these.
| lookup_postal_code | 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), France, Algeria, Tunisia, Morocco. All other countries (~115 more: GB, DE, 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. |
| search_places | 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, DE, JP…), searches the bulk GeoNames tier by place name or postal-code prefix. |
| nearby_places | 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. |
| get_region | 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". |
| get_group | 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`). |
| area_code_lookup | 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. |
| list_countries | Coverage overview: the five 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. |