local-dfw-mcp

local-dfw-mcp

Enables AI assistants to answer DFW civic and property questions using official data sources without API keys.

Category
Visit Server

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_url to 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

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.

Official
Featured
TypeScript
Magic Component Platform (MCP)

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.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

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.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

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.

Official
Featured
TypeScript
Kagi MCP Server

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.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

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.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured