Boundaries for AI agents. Free.
Boundary Atlas is an MCP server with every US city, ZIP code, county, congressional and state legislative district (the 2026 maps) and voting precinct, plus Canadian ridings and polling divisions. Your agent can find what contains any address, cross between them with population shares, and draw GeoJSON maps, with the source on every record. No key, no sign-up.
https://atlas-production-d344.up.railway.app/mcp
What people use it for
Route by place
Assign leads, accounts, service areas or field teams by city, county or district.
Join ZIP-level data
Roll ZIP data up to cities, counties or districts with population weights: a ZIP crosswalk that stays current.
Who represents an address
Congressional and state legislative districts and the voting precinct for any address, for advocacy, constituent services and government relations.
Draw maps
GeoJSON for any city, county, district, ZIP or precinct, for dashboards, reports and apps.
Elections and civic data
Current precincts for about 92% of the US, the 2026 district maps, and Canada's ridings and polling divisions.
What's in it
Census cities, towns, ZIP codes and counties; congressional and state legislative districts as in force for the November 3, 2026 election, including the mid-decade redraws; and current official precincts for about 92% of the US population, from 34 statewide files and 437 county, town and municipio sources, with 2020 Census voting districts elsewhere.
Connect
Streamable HTTP, no authentication. Limits per IP address: 60 requests a minute, 3,000 a day. Agents can read /llms.txt or the full guide at /llms-full.txt.
Claude Code
claude mcp add --transport http boundary-atlas https://atlas-production-d344.up.railway.app/mcpCursor (~/.cursor/mcp.json)
{"mcpServers": {"boundary-atlas": {"url": "https://atlas-production-d344.up.railway.app/mcp"}}}Codex (~/.codex/config.toml)
[mcp_servers.boundary-atlas]
url = "https://atlas-production-d344.up.railway.app/mcp"Claude app (claude.ai or desktop)
Settings → Connectors → Add custom connector → https://atlas-production-d344.up.railway.app/mcpChatGPT (developer mode)
Add a custom connector: URL https://atlas-production-d344.up.railway.app/mcp, no authenticationAsk your agent
- What city, county and congressional district is 233 S Wacker Dr, Chicago in?
- Which cities and counties does ZIP 90210 cover, and in what shares?
- Roll this CSV of ZIP-level sales up to counties using population weights.
- Which congressional districts does Houston span, and what share of residents is in each?
- Map every city in Ohio, and every precinct in Essex County, NJ, coloured by congressional district.
- List the ZIP codes in Austin, TX and the federal ridings in Toronto.
Tools
Ten read-only tools. IDs look like us:county:34013, us:zcta:07102 and
ca:federal_electoral_district:35001.
search_geographies | Find geographies by name, e.g. 'Essex County', 'Newark ward 5', 'Toronto Centre'. |
|---|---|
get_geography | Full record for one geography: attributes, parent chain up to the country, child counts by level, and the source it came from (licence, vintage, last fetched). |
list_children | Geographies directly under `id` (state -> counties and districts, county -> precincts and towns, province -> ridings). Filter with `level`; page with limit/offset (max 1000). |
list_geographies | Every geography at one level, optionally within one state/province, e.g. all congressional districts in 'NJ' or all federal ridings in 'ON'. Page with limit/offset (max 1000). |
related_geographies | Links between geographies that overlap without nesting, with population shares. |
locate_point | Which geographies contain a point: precinct, county, town, congressional and state legislative districts in the US; province, census division and subdivision, federal riding, polling divisions and provincial districts in Canada. Point-in-polygon on stored boundaries (simplified to ~10 m, so a point within ~10 m of a line can land on either side). Geocode an address to lat/lon first. |
get_boundaries | Polygon boundaries as a GeoJSON FeatureCollection (EPSG:4326, RFC 7946 winding), for drawing dashboard maps. |
nearest_geographies | Geographies at `level` whose internal point is closest to (lat, lon). This is a nearest-point approximation, not point-in-polygon. To find the geography containing a point, use locate_point. |
data_freshness | When each upstream dataset was last fetched and checked, what period it describes (vintage), how often it is re-checked, and whether it is overdue. Includes the recent refresh history. |
coverage_summary | What's in the atlas: row counts by country and level, with the vintage of each layer. |
Browse by state
Every state's cities, ZIP codes and districts, each with its own page: which city, county and districts a ZIP is in, which districts and ZIPs a city spans. ZIP 90210, Chicago and NJ-10 are examples.
- Alabama
- Alaska
- Arizona
- Arkansas
- California
- Colorado
- Connecticut
- Delaware
- District of Columbia
- Florida
- Georgia
- Hawaii
- Idaho
- Illinois
- Indiana
- Iowa
- Kansas
- Kentucky
- Louisiana
- Maine
- Maryland
- Massachusetts
- Michigan
- Minnesota
- Mississippi
- Missouri
- Montana
- Nebraska
- Nevada
- New Hampshire
- New Jersey
- New Mexico
- New York
- North Carolina
- North Dakota
- Ohio
- Oklahoma
- Oregon
- Pennsylvania
- Puerto Rico
- Rhode Island
- South Carolina
- South Dakota
- Tennessee
- Texas
- Utah
- Vermont
- Virginia
- Washington
- West Virginia
- Wisconsin
- Wyoming
Questions
Is there an MCP server for US boundaries like cities, ZIP codes, counties and districts?
Yes. Boundary Atlas is a free MCP server of US and Canadian boundaries: cities and towns, ZIP codes, counties, towns and townships, congressional and state legislative districts, and voting precincts, plus Canadian provinces, ridings and polling divisions. Add https://atlas-production-d344.up.railway.app/mcp to Claude, ChatGPT, Cursor or Codex; no key or sign-up.
What city, county and congressional district is an address in?
Geocode the address to latitude and longitude, then call locate_point: a point-in-polygon lookup that returns the city, county, town, ZIP code, congressional and state legislative districts and voting precinct containing it. The map demo does this for any US address with the free Census Geocoder.
What county or city is a ZIP code in?
Often more than one: ZIP codes cross county lines and city limits (90210 is mostly Beverly Hills and partly Los Angeles). related_geographies on a ZIP (for example us:zcta:90210) returns every city, county and town it overlaps with each one's share of the ZIP's 2020 population, so you can split ZIP-level data correctly.
How do I find which congressional district a ZIP code is in?
Many ZIP codes span more than one district, so a single answer is often wrong. Ask Boundary Atlas for the ZIP: related_geographies returns every congressional, state senate and state house district it overlaps with each one's share of the ZIP's residents, and get_boundaries draws them.
Which ZIP codes are in a city, county or district?
Call related_geographies on the city, county or district with level='zcta'. Each ZIP comes with the share of its residents inside, so ZIPs that only clip the edge are easy to drop.
Where can I get GeoJSON boundaries for cities, counties, districts or precincts?
get_boundaries returns GeoJSON for any single area, or everything at one level inside another: every city in a state, every precinct in a county or district, every county in a state. Three detail levels; water can be trimmed. Large sets come back as a download link.
How current are the precincts and district maps?
Precincts are current official files for about 92% of the US population (statewide files in 34 states and DC, plus 437 county, town and municipio sources), with 2020 Census voting districts elsewhere. Districts are the maps in force for the November 3, 2026 election, including the 2025–26 mid-decade redraws.
Are ZIP codes the same as ZCTAs?
Not quite. ZIP Code Tabulation Areas are the Census Bureau's approximation of USPS ZIP Codes, built from 2020 blocks. PO-box-only and single-building ZIPs have none, and a mailing address's ZIP can differ from the ZCTA its location falls in. Boundary Atlas uses ZCTAs and says so.
Does it cover Canada?
Yes: provinces, census divisions and subdivisions, the 343 federal ridings (2023 Representation Order), federal polling divisions from the 2025 general election, provincial electoral districts, and provincial polling divisions for most provinces.
Where does the data come from?
Every record carries its source, licence, vintage and last update, and data_freshness lists each source with its refresh history. Sources include the U.S. Census Bureau (TIGER/Line and the 2020 Census; public domain), state and county election offices, Elections Canada and Statistics Canada. Keep their attribution in anything you publish.
Is it free?
Yes. The hosted server needs no key. It is rate-limited per IP address (60 requests a minute, 3,000 a day) so it stays fast for everyone.