It's CNN's John King and his magic wall — if it had a baby with Claude.
Draw your own boundaries and compare demographics across any regions — states, districts, counties, all the way down to the precinct — just by asking. Pre-loaded U.S. boundaries, Census data, and 2016 / 2020 / 2024 election results, native to Claude, Cursor, and Claude Code over Model Context Protocol. Every published map ships with an embed iframe, a static image, and a machine-readable citation block.
What teams build with mapsmcp · scroll →
Retail & consumer brands
Score candidate store sites
Drive-time trade areas × Census demographics × your competitor list
Insurance
Exposure inside hazard zones
FEMA flood maps + wildfire perimeters × your policy book = premium-at-risk
Healthcare
Provider-network gap analysis
Patient roster × drive-time areas × Census health-equity data
Civic & journalism
Election-night maps in 90 sec
Pre-loaded county results → iframe in your CMS
Political ops
Donor density by district
Geocode 10,000 addresses → 119th-Congress district map
Logistics
Same-day coverage gaps
Drive-time SLA per depot → fleet union → gap polygons
Real estate
Comp-set demographics
20-min drive of any listing → branded embed
Research
Reproducible multi-vintage
Census data across 2010 / 2015 / 2020 · version-pinned · citable URLs
Live · try it
Geocoded coordinates → state → county → congressional district → state-leg districts → ZIP code area → Census tract → school district → voting precinct. For each: 58 federal demographics (race & ethnicity, full income distribution, poverty, SNAP, rent burden, education, employment, commute mode & travel time, foreign-born, veterans, broadband) plus every public dataset we host — NYT 2024 precinct & county results, Cook PVI, DW-NOMINATE, 538, ACS. Logged-in workspaces add their own ingested data too.
The compose-and-publish flow
Every threshold in the filter is printed verbatim in the caption. freeze=true snapshots the underlying datasets at publish time, so the embed stays valid even when the Census or election data is later revised.
// 1 — Find 2024 swing states (≤ 5pt margin)
classify_states({ cycle: 2024, margin_pct: 5 })
→ ["AZ","GA","MI","NV","NH","NC","PA","WI"]
// 2 — Resolve "low income" to a stable threshold using Census data
demographic_bands({
dataset_slug: "acs-county-mhi-2023", // median household income (Census)
field: "B19013_001E", // Census variable ID
method: "quintile",
})
→ bottom-quintile cutoff: $52,140
→ top-quintile cutoff: $98,720
// 3 — Compose the filter, get a sample + caption
query_counties({
filter: {
state_in: [...swing],
winner_party: "REP",
margin_pct_abs_lte: 10,
demographic_band: {
dataset_slug: "acs-county-mhi-2023",
field: "B19013_001E", band: "Q1",
},
},
order_by: "margin asc", limit: 500,
})
// 4 — Wrap it in a view config
create_map_view({ result_set_id, style: "choropleth_margin" })
// 5 — Mint /v/<slug> + iframe + .png + citation.json
publish_map({ view_id, freeze: true })
New · premium tier
Region groups are workspace-owned hierarchical layouts — campaign zones, sales territories,
underwriting books, school catchments, anything you'd organize on a whiteboard — built on top
of any boundary set (states, counties, congressional districts, voting precincts, ZIP areas,
tracts, or your own custom polygons via ingest_geojson). Tag a donor file,
customer list, or policy book → every row carries its leaf region plus the full ancestor
chain. Aggregate. Render. Publish.
1. Define
Hierarchical regions on any base boundary. Master → sub-region trees as deep as you want. Clone a Census starter or build from scratch.
2. Tag
tag_records_with_region_group
annotates every row with its leaf region + ancestor chain. Idempotent on re-runs.
3. Segment + Render
Aggregate by region in your code. Render the layout itself with
render_region_group_map
— each region a distinct color, deterministic per slug.
Same toolkit, eight industries
Eight worked examples. Each card links to the full walkthrough — the actual MCP calls, the dataset shapes, the produced artifact.

Drive-time trade areas, Census demographics, and your competitor list — all in one workflow. Rank 12 sites in minutes.
bulk_match_addresses · geo_isochrone · census_acs

Pull a FEMA flood-zone or wildfire-perimeter polygon, intersect it with your policy book, and sum the premium at risk. Refresh weekly.
ingest_geojson · geo_intersect_dataset · describe_report

Patient roster + drive-time areas + Census health-equity data. Find ZIP codes that are under-covered today.
geo_isochrone · census_acs · geo_hotspot

Drive-time service-area polygon per depot, merged across your fleet, then subtracted from a region to find the gaps.
geo_isochrone · geo_union · query_shapes_by_intersection

Demographics within a 20-minute drive of any listing. Branded embed on maps.yourbrand.com.
geo_isochrone · query_shapes_by_intersection · census_acs

Compare Census tables across 2010 / 2015 / 2020. Version-pinned boundaries and a citable URL in your appendix.
census_acs · compare_shape_versions · build_geojson

Pre-loaded county results, one click to render, drop the embed iframe into your newsroom's content management system.
ingest_county_pres · create_report · describe_report

Geocode 10,000 donor addresses, join them to the 119th Congress, render a district map in under a minute.
bulk_match_addresses · lookup_district_for_address · render_dot_density
What every workspace gets · Free included
No CSV downloads. No projection wrangling. No matching boundaries to vintages by hand. The whole catalog is queryable, joinable, and renderable on the Free tier.
census_acsingest_county_presingest_cook_pviingest_voteviewingest_dimeingest_geojsonbulk_match_addressesgeo_isochronePricing
Free tier covers compose, query, and create_map_view end-to-end. publish_map is the only premium-gated call.
Free
Starter
Pro
Pay-as-you-go above caps: $0.0002 per standard call · $0.04 per premium call.
Full pricing & FAQ →
Get started
Paste the MCP config into your client. Drop the API key from the form on the right. Run your first prompt.
{
"mcpServers": {
"mapsmcp": {
"type": "http",
"url": "https://mapsmcp.com/mcp",
"headers": { "Authorization": "Bearer YOUR_API_KEY" }
}
}
}
Claude Desktop reads ~/Library/Application Support/Claude/claude_desktop_config.json (macOS). Cursor, Cline, Zed, the Anthropic SDK, and raw cURL: full setup guide.
curl -fsSL https://mapsmcp.com/.claude/skills/mapsmcp/SKILL.md \ -o ~/.claude/skills/mapsmcp/SKILL.md
One curl. Claude Code auto-triggers the skill on any U.S.-geography question.