Election Atlas
Server Details
US & Canada election maps: precincts, ZIP codes, 2026 districts, ridings. GeoJSON + point lookup.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 11 tools
Most tools target clearly distinct operations: point lookup (locate_point), name search (search_geographies), hierarchy traversal (list_children), level enumeration (list_geographies), overlap links (related_geographies), and drawing (get_boundaries). The descriptions explicitly separate the two closest pairs (locate_point vs nearest_geographies, list_children vs list_geographies), but list_geographies/search_geographies/related_geographies still share enough surface that an agent may occasionally pick the wrong one.
Dominant pattern is verb_noun (get_geography, list_children, find_officials, locate_point, search_geographies), applied consistently across the retrieval tools. The deviations are the two metadata nouns (coverage_summary, data_freshness) and the adjectival nearest_geographies/related_geographies, which read fine but aren't the same convention.
Eleven tools is well within the sweet spot for a geographic data server, and each one covers a distinct access pattern (discovery, hierarchy, point lookup, proximity, overlaps, boundary export, officials, freshness). Nothing looks padded or redundant.
The geometry/geography lifecycle is covered end to end: discover, search, fetch record, list children, locate points, find overlaps, export boundaries, plus officials and data freshness. The notable gap is geocoding — multiple descriptions tell the agent to 'geocode an address first' but no tool does it — and, given the 'Election Atlas' name, there is no tool for election results or contests.
Available Tools
11 toolscoverage_summaryCoverage summaryRead-onlyInspect
What's in the atlas: row counts by country and level, with the vintage of each layer.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
data_freshnessData sources and freshnessRead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
find_officialsFind elected officialsRead-onlyInspect
Who represents a place: members of the U.S. House and Senate, state legislators and the mayor, with contacts.
Give a geography `id` (a congressional district, state, city 'us:place:...', county, town or ZIP 'us:zcta:...')
or a point (`lat`, `lon`; geocode an address first). For a city, county or ZIP that spans several districts, each
representative comes with `share` = share of that area's 2020 residents in the district; for an exact answer use a
point. Members listed are those serving now (119th Congress, until January 3, 2027); the districts are the 120th
Congress maps elected November 3, 2026. In states that redrew for 2026 (AL, CA, FL, LA, NC, OH, TN, TX, UT) a
representative's `note` says they were elected under the previous map. A district with no member is vacant.
State legislators (state_legislators=True, except for a whole state, where pass it explicitly) come from Open
States; members in states that redrew legislative maps for 2026 (MI, MN, MS) carry a similar note.
Mayors (local=True) come from Open States (larger cities, while their term runs) or, failing that, Wikidata
(one current head of government, in office since 2010; their `note` says to confirm on the city's website).
Sources: the @unitedstates congress-legislators dataset (CC0), Open States (public domain), Wikidata (CC0).
US only for now.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | ||
| lat | No | ||
| lon | No | ||
| local | No | ||
| state_legislators | No |
get_boundariesGet boundaries (GeoJSON)Read-onlyInspect
Polygon boundaries as a GeoJSON FeatureCollection (EPSG:4326, RFC 7946 winding), for drawing dashboard maps.
id: the geography to draw, e.g. 'us:county:34013'. children_level: draw everything at that level inside it
instead, e.g. every 'precinct' in a county or state, every 'county' in a state, every 'polling_division' in a
riding, or every 'precinct' overlapping a congressional district (any share; use related_geographies for shares).
detail: 'high' (~10 m), 'medium' (~50 m, default) or 'low' (~200 m). Neighbouring shapes from the same source
share identical edges at every detail level. clip_to_land: trim open water (ocean, bays, Great Lakes) using
the state/province shoreline outline (default true; inland lakes are not trimmed; shorelines are generalized
to ~1:500k, widened ~200 m so land isn't cut); false gives legal extents. include_districts: add each feature's
congressional / state senate / state house district holding the largest share of its population.
Feature properties: id, level, code, name, parent_id, region, population (2020 Census for precincts and towns,
latest estimate for counties and states), vintage and source_id (2020 Census VTDs have source_id
'us-census-vtd-2020'; current precincts don't), shape_source.
Small results come back inline as `geojson`. Larger ones are not returned inline (they'd flood the
conversation): the hosted service returns a short-lived `download_url` (fetch it with curl into your project);
a local server writes the file to its own export folder and returns `file` (copy it into your project). Page
big selections with offset/limit (max 5000 features).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| limit | No | ||
| detail | No | medium | |
| offset | No | ||
| clip_to_land | No | ||
| inline_max_kb | No | ||
| children_level | No | ||
| include_districts | No |
get_geographyGet a geographyRead-onlyInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
list_childrenList childrenRead-onlyInspect
Geographies directly under id (state -> counties and districts, county -> precincts and towns,
province -> ridings). Filter with level; page with limit/offset (max 1000).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| level | No | ||
| limit | No | ||
| offset | No |
list_geographiesList geographiesRead-onlyInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| level | Yes | ||
| limit | No | ||
| offset | No | ||
| region | No | ||
| country | Yes |
locate_pointLocate a pointRead-onlyInspect
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.
levels: restrict to some levels (default: all except 'vtd_2020'). If a point is just outside every shape of a
level that its state/province has (a pier, a beach, a gap between precinct files), it is matched to the nearest
shape of that level in the same state/province within ~1 km and flagged approximate=true with distance_m.
not_found lists levels the state/province has data for but no shape here; no_data lists levels with no
boundaries there at all (e.g. Nebraska has no state house; Ontario has no provincial polling divisions here).
| Name | Required | Description | Default |
|---|---|---|---|
| lat | Yes | ||
| lon | Yes | ||
| levels | No |
nearest_geographiesNearest geographiesRead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| lat | Yes | ||
| lon | Yes | ||
| level | Yes | ||
| limit | No |
search_geographiesSearch geographiesRead-onlyInspect
Find geographies by name, e.g. 'Essex County', 'Newark ward 5', 'Toronto Centre'.
country: 'US' or 'CA'. level: one of the levels from coverage_summary (e.g. 'county', 'precinct',
'congressional_district', 'federal_electoral_district'). region: USPS state or province code ('NJ', 'ON').
| Name | Required | Description | Default |
|---|---|---|---|
| level | No | ||
| limit | No | ||
| query | Yes | ||
| region | No | ||
| country | No |
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
- Changed
find_officials2 fields changed- added
Input schema / properties / localAdded value: +{ + "default": true, + "title": "Local", + "type": "boolean" +} - added
Input schema / properties / state_legislatorsAdded value: +{ + "default": true, + "title": "State Legislators", + "type": "boolean" +}
1 tool update
- Added
find_officials
10 tool updates
- First observed
coverage_summary - First observed
data_freshness - First observed
get_boundaries - First observed
get_geography - First observed
list_children - First observed
list_geographies - First observed
locate_point - First observed
nearest_geographies - First observed
related_geographies - First observed
search_geographies
Related MCP Connectors
Administrative boundaries for every place on Earth: search, reverse lookup, polygons, areas.
US parcel boundaries and assessor data: lookup by APN, point, radius or polygon.
US Census TIGERweb MCP — the Census Bureau's ArcGIS REST geography service
US parcels, owners, sales, zoning rules, building permits and zoning cases.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables access to US Census Bureau TIGERweb geographic boundary data, returning GeoJSON for states, counties, census tracts, places, ZCTAs, and congressional districts.1-
- AlicenseNot gradedqualityBmaintenanceEnables users to resolve geographies and candidates, build and compare election scenarios and simulations, apply swings and turnout assumptions, and read tallies, flipped seats, maps, charts, and precinct-level roll-ups through a local bridge to the ElectionsMCP hosted service.MIT
- AlicenseAqualityDmaintenanceGeospatial API tools for AI agents — geocoding, reverse geocoding, routing, isochrone, distance matrix, static maps, H3 hexagons, elevation, GPS map-matching, point-in-polygon, address normalisation, timezone lookup, and batch geocoding. Built on OpenStreetMap infrastructure. Cost-effective alternative to Google Maps API.1839 npmMIT
- AlicenseNot gradedqualityCmaintenanceEnables creating themed SVG maps, GeoJSON data, projections, React components, and embeddable map builders through natural language requests.47 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.