Versioned shapefiles + dataset joins as an MCP server. Bring your data, we handle geography.
An MCP server that lets your agent (Claude Desktop, Cursor, an Anthropic SDK app, …) work with U.S. political and demographic geography. The shape collections below are globally readable; the data you ingest stays in your workspace.
| slug | name | level | shapes | versions |
|---|---|---|---|---|
us-cd119 |
US Congressional Districts (119th) | cd | 441 | 1 |
us-counties |
US Counties | county | 3,235 | 1 |
us-states |
US States | state | 56 | 1 |
Once you have a key, paste one of these snippets into your MCP client of choice. The server URL is https://mapsmcp.com/mcp.
{
"mcpServers": {
"shapes": {
"url": "https://mapsmcp.com/mcp",
"transport": "http",
"headers": { "Authorization": "Bearer YOUR_API_KEY" }
}
}
}
mcp_servers: [{
type: "url",
url: "https://mapsmcp.com/mcp",
authorization_token: "YOUR_API_KEY",
name: "shapes"
}]
curl -sS -X POST https://mapsmcp.com/mcp \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
| tool | summary |
|---|---|
list_shape_collections | Browse globally-shared shape collections (states, counties, CDs, …). |
create_shape_collection | Add a new collection. Becomes globally readable; you're recorded as creator. |
list_shape_versions | List versions of a collection (e.g. tiger-2024). |
upload_shape_version | Add a new version from GeoJSON or a base64-zipped shapefile. |
compare_shape_versions | Diff two versions: added / removed / changed shapes. |
list_shapes | List individual shapes in a version, filterable by name or external_id. |
lookup_shape_at_point | Reverse-geocode a longitude/latitude to a shape. |
query_shapes_by_intersection | Find shapes intersecting / within / containing a GeoJSON geometry. |
ingest_dataset | Upload tabular records and auto-match to shapes (external_id / name / point). |
list_datasets | List your workspace's datasets. |
get_dataset_records | Inspect joined records, filter by matched/unmatched. |
build_geojson | Render a FeatureCollection joining one or more datasets onto a version. |
compute_dataset_stats | Per-shape numeric aggregation + optional class breaks for choropleths. |
create_report | Save a report config; set public:true to make it viewable at /v/<slug>. |
list_reports | List your workspace's reports. |
get_report | Fetch a single report by slug or id. |
ingest_538_results | Curated: 538 election results (state + CD level, 1998–present). |
ingest_county_pres | Curated: county-level presidential, 2016 / 2020 / 2024. |
ingest_nyt_precincts_2024 | Curated: NYT 2024 presidential precinct map, rolled up to counties. |
submit_ticket | Submit a bug, feature request, or question to the Maps MCP team. |
list_my_tickets | List your workspace's tickets and any team responses. |
get_ticket | Fetch a single ticket by id. |
Visit /dashboard to see your workspace's datasets, reports, and API keys. Paste your key once; it stays in your tab's sessionStorage.
Reports your workspace creates with public: true are viewable at /v/<slug>. Drop /embed/<slug> in an iframe for a chrome-free embed. Live demos:
/v/us-counties-2024-turnout/v/house-119-by-party/v/pres-counties-multi/v/house-2024-winner/v/pres-2020-counties/v/pres-2016-counties/v/pres-2024-counties/v/house-2024-margin