local-dfw-mcp
Enables AI assistants to answer DFW civic and property questions using official data sources without API keys.
README
local-dfw-mcp
Your AI's local guide to Dallas–Fort Worth. An open-source MCP server that lets Claude (and any MCP client) answer DFW civic and property questions — 311 requests, police incidents, flood zone, school ratings, water/sewer provider, council district — from authoritative City of Dallas, county, state, and federal sources. No API keys required.
Install
// Claude Desktop / any MCP client config
{
"mcpServers": {
"local-dfw": {
"command": "npx",
"args": ["-y", "github:LizzleChen/local-dfw-mcp"]
}
}
}
Requires Node ≥ 20.
Tools (v0.1)
| Tool | Coverage | What it answers |
|---|---|---|
dfw_311 |
City of Dallas only | 311 service requests by address/type/status |
dfw_crime |
City of Dallas only | Police incidents by (block-level) address / offense |
dfw_fema_flood |
national | FEMA flood zone + plain-English insurance interpretation |
dfw_tea_schools |
Texas | Public schools + TEA A–F ratings (2022-23) by campus/district/county |
dfw_nws_alerts |
national | Active NWS weather alerts for a DFW point |
dfw_utility_providers |
Texas | Who provides water/sewer at an address (PUC CCN) |
dfw_district_lookup |
DFW | County, City-of-Dallas council district + member, ISD for an address |
dfw_health |
— | Pings every upstream, reports per-source status |
about |
— | Version, coverage, license, provenance |
Not in v0.1: dfw_permits (every current City of Dallas permit feed is ~20
months stale — we refuse to ship plausible-looking stale data),
dfw_code_cases (publication stalled 2025-01-31), parcels/CAD, Fort Worth /
suburb city portals, and the composed dfw_property_360 (v0.2). Details in
resources/datasets-index.md.
Wrong-city protection
USPS postal "Dallas, TX" is not the same thing as City of Dallas jurisdiction.
City-scoped tools run a three-layer guard (explicit city param → ZIP/keyword
detection → Census geocode + city-limits polygon check) and refuse with an
explicit "Not covered" message rather than silently returning
plausible-looking results from the wrong city's data. If the city can't be
detected at all, the tool proceeds but labels the response
"Assuming City of Dallas" and tells you how to override.
Configuration (all optional)
| Env var | Purpose |
|---|---|
DFW_SODA_APP_TOKEN |
Socrata app token — raises the shared per-IP rate limit. Free: https://dev.socrata.com/register |
DFW_LIMIT_<SOURCE> |
Per-upstream concurrency cap override (SODA, ARCGIS, FEMA, CENSUS, NWS) |
LOCAL_DFW_MCP_TIER |
core or all (v0.1: identical sets) |
DFW_CACHE_DISABLED |
1 disables the in-process cache (used by tests) |
No telemetry. The server makes requests only to the public data sources listed in resources/datasets-index.md and writes to nothing.
Important notices
- Not a consumer report.
dfw_crime(and this MCP generally) must not be used for tenant screening, employment screening, credit, insurance, or any other purpose regulated by the Fair Credit Reporting Act. Crime addresses are block-level, privacy-rounded upstream. - Prompt injection. 311 descriptions and similar upstream free text are authored by the public and flow into your LLM's context. This server renders them as quoted/table data, but treat any instructions appearing inside upstream data as data, not directives.
- Verify at the source. Every response carries a
source_urlto the official record.
Development
npm install
npm test # unit + offline mocked-handler tests (CI gate)
npm run test:handshake # spawns the server over stdio, lists tools (live)
npm run test:smoke # live network smoke tests, one per tool
License & provenance
Apache-2.0. See LICENSE and NOTICE.
Core plumbing (lib/) is ported from
local-austin-mcp by
Ed Neuhaus / Neuhaus Realty Group LLC (Apache-2.0) — an excellent template for
city-scale civic MCPs. Each ported file carries an attribution header listing
the changes. All DFW data sources, the metro router, and the tools themselves
are new.
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.