local-city-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@local-city-mcpfind schools near 456 Oak Ave"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
local-city-mcp
The home for the local-{city}-mcp family: the spec, the list of cities
built so far, and the template repo for building a new one — all in one
place.
local-{city}-mcp is an MCP server that gives an AI assistant plain-English
access to official, public, no-key data about one metro area — property
records, permits, civic data, schools, environment, public safety, and
(where the maintainer has the right) real estate listings.
Before you touch any code, read STANDARD.md. It's the spec: the hard rules, the tool contract, the testing bar, and the licensing pattern. Everything else here just tells you how to use the template mechanically; STANDARD.md tells you why it's built this way.
Reference implementation this was extracted from: local-austin-mcp (43 tools, live in production).
The list
City | Repo | Tools | Maintainer | CI |
Austin, TX | 43 | |||
Dallas, TX | 3 | |||
Houston, TX | 2 | |||
San Antonio, TX | 3 |
(Your city not here yet? Build one below, then open a PR adding a row.)
Using one
Add to your Claude Desktop config (or any MCP client's config):
{
"mcpServers": {
"local-austin": {
"command": "npx",
"args": ["-y", "github:mindwear-capitian/local-austin-mcp"]
}
}
}Swap the repo for whichever city you want from the table above.
Related MCP server: civic-library-mcp
Building a new one
Use this template — GitHub's "Use this template" button on this repo, or:
gh repo create local-{city}-mcp --template mindwear-capitian/local-city-mcp-templateThis copies everything in this repo, including this README's list table. Replace this whole README with your own city's (see step 5) — the table above is this repo's index, not part of your city's docs.
Replace every placeholder. Every file that needs per-city values uses bare
{{TOKEN}}markers (no leading$— deliberate, so they never collide with${{ }}GitHub Actions expression syntax in.github/workflows/ci.yml, which you should leave untouched). Find them all with:grep -rl '{{[A-Z_]*}}' --include='*.js' --include='*.json' --include='*.md' .Token
Example
Where it's used
{{CITY}}DenverDisplay name, in prose
{{CITY_SLUG}}denverTool prefix, package name, repo name
{{CITY_SLUG_UPPER}}DENVEREnv var name (
LOCAL_DENVER_MCP_TIER){{MAINTAINER_NAME}}Jane DoeAttribution, package.json author
{{MAINTAINER_URL}}https://janedoe.comAttribution, homepage
{{GITHUB_USER}}janedoeRepo URLs
{{DEFAULT_LAT}}/{{DEFAULT_LNG}}39.74,-104.99Default map center for the example NWS tool
A one-shot sed pass works fine for a first pass — just review the diff before committing, since a couple of tokens (like
{{CITY}}inside prose sentences) are case-sensitive on purpose.Run it:
npm install npm start # runs the MCP over stdio npm test # unit tests npm run test:contract # boots the server, calls every tool via the real MCP layerBuild your first real tool. See CONTRIBUTING.md — copy
tools/environment/nws-alerts.js(works for any US city untouched once you fill in the placeholders) as your pattern reference, ortools/meta/about.jsfor the minimal shape.When it's real: replace this README with your city's own (tool table,
Sources of Truthtable, Architecture section — see local-austin-mcp's README for the shape once you have more than a couple of tools).Get listed: once
test:contractis green in CI and you meet STANDARD.md §2, open a PR against this repo adding one row to the table above. See CONTRIBUTING.md.
What's already built for you
File | What it gives every tool for free |
| Central registration: default MCP annotations, error→friendly-frame wrapping, |
|
|
| Propagates the MCP request's |
| Shared Zod shapes ( |
| U.S. Census geocoder — free, no key, works nationwide |
| Generic Socrata (SODA) open-data client — works against any city or state's Socrata portal, not just your own (proven: same client, zero changes, powers Austin's permits/311/crime data, the statewide TX TEA dataset, AND Dallas's 311) |
| Generic ArcGIS FeatureServer/MapServer client — many cities publish 311, GIS, and property layers this way when they aren't on Socrata (proven: powers Austin's county appraisal + FEMA flood tools AND San Antonio's 311) |
| Named per-source concurrency caps ( |
| stderr + MCP logging-notification logger |
| Optional |
| Minimal tool example + the required |
| A real, working example tool (National Weather Service alerts) — copy its shape |
| The required contract test (STANDARD.md §6) |
| Unit tests on Node 20 + 22 on every push. Skips cleanly (not a failure) when run against the raw, unfilled template. |
| The live-upstream contract test, on a daily schedule + manual dispatch — deliberately NOT on every push (would make PRs flaky on third-party uptime). |
None of this is speculative — it's copied from a production server that
shipped 40+ tools. Read lib/register.js and lib/retry.js top-of-file
comments for the reasoning if you're wondering why a piece exists.
License
The template code (lib/, tools/, index.js, tests, CI) is Apache
License 2.0 (see LICENSE) — use it, fork it, build a commercial
product on it. Fill in NOTICE and TRADEMARK.md with your own name/marks
before you ship; the placeholders in those files are examples, not defaults
you inherit. This README's list-curation text is not separately licensed —
it's not code, do with it what you like.
This server cannot be deployed
Maintenance
Related MCP Connectors
- UnifAPIOAuthcom.unifapi
Hosted MCP server for live public-data APIs and Skills for AI agents.
Agent-native MCP server over 49M+ US public and government records, privacy-first, always current.
MCP server giving Claude AI access to 22+ NYC public-record databases for real estate due diligence
Unofficial MCP server for the public PortlandMaps property/permit/zoning API. Not city-affiliated.
Related MCP Servers
- AlicenseAqualityDmaintenanceOpen-source MCP server providing real estate regulatory intelligence (zoning, permits, entitlements, deal scoring) for US properties, enabling AI agents to access 10 callable tools.125 npmMIT
- AlicenseAqualityDmaintenanceAn MCP server that gives AI agents clean, token-efficient access to US civic & property data — geocoding, census tracts, Opportunity Zones, ACS demographics, and FEMA flood zones — sourced entirely from free federal open data.528 npm1MIT

city-data-mcpofficial
FlicenseAqualityDmaintenanceAn 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.28-- AlicenseAqualityCmaintenanceA Model Context Protocol server that provides AI assistants with plain-English access to official Dallas-area public data (weather alerts, school ratings, and 311 service requests) without requiring API keys or logins.41Apache 2.0