city-data-mcp
An MCP server that gives Claude deep access to US public data -- demographics, economics, crime, employment, weather, housing, transit, schools, budgets, and more across 30+ cities for government intelligence workflows.
README
city-data-mcp
An MCP server that gives Claude deep access to US public data — demographics, economics, crime, employment, weather, housing, transit, schools, budgets, and more across 30+ cities. Built for government intelligence workflows.
What it does
22 tools that let Claude query, compare, and synthesize real public data from 15+ federal and city-level sources:
Core Data Tools
| Tool | Source | What it does |
|---|---|---|
query_city_data |
Socrata | Crime & 311 service requests (5 cities) |
list_available_data |
All | Discover available cities, datasets, and coverage |
query_demographics |
US Census ACS | Population, income, poverty, education, housing, commuting (30 cities) |
compare_demographics |
US Census ACS | Side-by-side comparison table for 2-6 cities |
query_economics |
FRED | Unemployment, housing index, personal income with trends (20 metros) |
query_employment |
BLS | Metro unemployment rate, employment, labor force (20 metros) |
query_national_crime |
FBI UCR | State-level crime stats with multi-year trends |
query_weather |
NWS | Current conditions and forecasts for any US city |
query_air_quality |
AirNow/EPA | Real-time air quality index (AQI) and pollutant levels |
query_housing |
HUD | Fair market rents, income limits, housing affordability |
query_water |
USGS | Water levels, streamflow, and conditions |
query_representatives |
Google Civic | Elected officials at all levels for any address |
query_311_trends |
Open311/SeeClickFix | Service request trends and patterns |
query_transit |
GTFS feeds | Public transit routes, performance, coverage |
query_schools |
Dept of Education | School district demographics, performance, funding |
query_permits |
City portals | Building permit activity and trends |
query_budget |
City portals | Municipal budget and expenditure data |
query_traffic |
City portals | Traffic safety and congestion data |
Intelligence Tools
| Tool | What it does |
|---|---|
create_census_cohort |
Find peer cities by demographic/economic similarity (fast, Census-only) |
create_full_cohort |
Rich peer cohort using demographics + economics + employment |
create_city_briefing |
Comprehensive city briefing pulling from all available data sources |
map_issue_data |
Map a community issue (e.g., "affordable housing") to relevant data across sources |
track_city_changes |
Track how a city's metrics have changed over time |
Quick start
Claude Desktop (local, stdio)
- Clone and build:
git clone https://github.com/zencity-product/city-data-mcp.git
cd city-data-mcp
npm install && npm run build
-
Get free API keys:
- Census API (required): https://api.census.gov/data/key_signup.html
- FRED API (required): https://fred.stlouisfed.org/docs/api/api_key.html
- BLS API (optional, higher rate limits): https://www.bls.gov/developers/home.htm
-
Add to Claude Desktop config (
~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"city-data-mcp": {
"command": "node",
"args": ["/path/to/city-data-mcp/dist/index.js"],
"env": {
"CENSUS_API_KEY": "your-census-key",
"FRED_API_KEY": "your-fred-key"
}
}
}
}
- Restart Claude Desktop.
Remote (HTTP mode)
Run as an HTTP server for remote access:
PORT=3000 CENSUS_API_KEY=xxx FRED_API_KEY=xxx node dist/index.js --http
MCP endpoint: http://localhost:3000/mcp
Health check: http://localhost:3000/health
REST API
When running in HTTP mode, a REST API is also available at /api/ for non-MCP consumers (dashboards, scripts, other apps):
GET /api/cities → all supported cities
GET /api/census/:city → demographics
GET /api/economics/:city → FRED economic indicators
GET /api/employment/:city → BLS employment data
GET /api/crime/:city → FBI crime stats
GET /api/weather/:city → NWS weather
GET /api/air-quality/:city → EPA air quality
GET /api/housing/:city → HUD housing data
GET /api/water/:city → USGS water conditions
GET /api/representatives/:city → elected officials
GET /api/311/:city → service request trends
GET /api/transit/:city → public transit
GET /api/schools/:city → school district data
GET /api/permits/:city → building permits
GET /api/budget/:city → municipal budget
GET /api/traffic/:city → traffic safety
GET /api/briefing/:city → comprehensive city briefing
GET /api/changes/:city → metrics change tracking
Example prompts
- "Create a full briefing on Denver"
- "Compare demographics for Denver, Austin, and Portland"
- "What are the economic indicators for Seattle?"
- "Find cities similar to Boston based on housing costs"
- "Who are the elected representatives for 123 Main St, Chicago?"
- "What's the air quality like in Los Angeles right now?"
- "Show me school district data for Houston"
- "Map the issue of 'affordable housing crisis' to data for San Francisco"
- "Track how Phoenix has changed over the last 5 years"
- "What's the transit coverage like in Portland?"
- "Show me building permit trends in Austin"
Data sources
| Source | Coverage | Freshness | Auth |
|---|---|---|---|
| US Census ACS | 30 cities (demographics) | Annual (5-year estimates) | Free key |
| FRED | 20 metros (economic indicators) | Monthly to annual | Free key |
| BLS | 20 metros (employment) | Monthly | Optional key |
| FBI UCR | All states (crime stats) | Annual (1-2yr lag) | Reuses Census key |
| NWS | All US locations (weather) | Real-time | None |
| AirNow/EPA | All US locations (air quality) | Real-time | None |
| HUD | All US areas (housing) | Annual | None |
| USGS | All US monitoring stations (water) | Real-time | None |
| Google Civic | All US addresses (representatives) | Live | None |
| Open311/SeeClickFix | Participating cities (311) | Near real-time | None |
| Socrata | 5 cities (crime, 311) | Near real-time | None |
| GTFS feeds | Major cities (transit) | Varies | None |
| City open data portals | Varies (permits, budgets, traffic) | Varies | None |
Covered cities
Demographics (Census): NYC, Chicago, San Francisco, Los Angeles, Seattle, Houston, Phoenix, Philadelphia, San Antonio, San Diego, Dallas, Austin, Denver, Boston, Nashville, Portland, Baltimore, Atlanta, Miami, Washington D.C., Minneapolis, Detroit, Pittsburgh, Charlotte, Columbus, Indianapolis, Memphis, Milwaukee, Jacksonville, Raleigh
Economics (FRED) & Employment (BLS): NYC, Chicago, San Francisco, Los Angeles, Seattle, Houston, Phoenix, Denver, Boston, Austin, Dallas, Washington D.C., Atlanta, Miami, Portland, Detroit, Minneapolis, Philadelphia, Nashville, Charlotte
Weather, Air Quality, Housing, Water, Representatives: All US locations (national APIs)
311, Transit, Schools, Permits, Budgets, Traffic: City-specific coverage (varies)
Architecture
src/
├── index.ts # Server entry (stdio + HTTP + REST transports)
├── cities.ts # City registry lookup
├── types.ts # Type definitions
└── sources/
├── census.ts # US Census ACS (demographics)
├── fred.ts # FRED (economic indicators)
├── bls.ts # BLS (employment)
├── fbi.ts # FBI UCR (crime statistics)
├── nws.ts # National Weather Service
├── airnow.ts # EPA AirNow (air quality)
├── hud.ts # HUD (housing)
├── usgs.ts # USGS (water)
├── civic.ts # Google Civic (representatives)
├── socrata.ts # Socrata (city-level crime, 311)
├── three11.ts # Open311/SeeClickFix (service requests)
├── transit.ts # GTFS (public transit)
├── schools.ts # School district data
├── permits.ts # Building permits
├── budget.ts # Municipal budgets
├── traffic.ts # Traffic safety & congestion
├── cohort.ts # Census-based peer city cohort builder
├── full-cohort.ts # Multi-source peer city cohort builder
├── briefing.ts # Comprehensive city briefing generator
├── issue-mapper.ts # Community issue → data mapper
├── change-tracker.ts # City metrics change tracking
└── geo-resolver.ts # Geographic coordinate resolution
International expansion
Research on extending to UK and Canada data sources is tracked separately. Key findings:
- UK: 12/15 US categories have usable equivalents. Strongest: crime (data.police.uk), water (Environment Agency), demographics (ONS/Nomis).
- Canada: StatCan WDS covers 6+ categories via one API. MSC GeoMet covers weather + air + water in one API.
License
MIT
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.