Local Dallas 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 Dallas MCPany active weather alerts in Dallas?"
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 Dallas MCP
Your AI's local guide to Dallas. A Model Context Protocol (MCP) server giving Claude (and any MCP client) plain-English access to official Dallas-area public data — no API keys, no logins.
License: Open source under Apache License 2.0 — free to use, modify, and build on, including commercially. Please keep the NOTICE attribution when you redistribute. Built by: Ed Neuhaus. Source: https://github.com/mindwear-capitian/local-dallas-mcp Part of a family: local-city-mcp-template — the spec, the template, and the full list of cities built so far.
🚧 Early-stage. Three tools live today (weather alerts, school ratings, 311). More Dallas/Dallas-area civic and property data planned — see CONTRIBUTING.md.
Install
Add to your Claude Desktop config:
// claude_desktop_config.json
{
"mcpServers": {
"local-dallas": {
"command": "npx",
"args": ["-y", "github:mindwear-capitian/local-dallas-mcp"]
}
}
}Restart Claude Desktop. No API keys required for any tool.
Claude Code
claude mcp add local-dallas npx -y github:mindwear-capitian/local-dallas-mcpRelated MCP server: weather mcp
Try it
"Is there an active weather alert for Dallas right now?"
"What's the TEA rating for Dallas ISD?"
"Show me A-rated elementary schools in Dallas county."
"Any open code compliance 311 requests in council district 10?"
Tools (3 live)
Tool | What it does |
| Active National Weather Service alerts (severe thunderstorm, tornado, flood, heat, freeze, fire weather) for a Dallas location. Defaults to central Dallas when no address given. |
| Texas Education Agency school lookup — A-F accountability ratings + AskTED campus directory (statewide dataset). Search by campus, district, county, or city. Example districts: Dallas ISD, Plano ISD, Highland Park ISD. |
| City of Dallas 311 service requests (code compliance, streets, sanitation, etc). Filter by type, department, status, council district, or address. |
| Version + capability summary. |
Sources of Truth
Domain | Source |
Weather alerts | National Weather Service (api.weather.gov) |
School ratings | Texas Education Agency Statewide Accountability Ratings 2022-2023 + AskTED directory (data.texas.gov) — statewide dataset, same source used by local-austin-mcp |
311 service requests | City of Dallas Open Data (dallasopendata.com), dataset |
Geocoding | U.S. Census geocoder |
Architecture
Node.js (ES modules), @modelcontextprotocol/sdk over stdio. Built from local-city-mcp-template — see that repo's STANDARD.md for the spec (hard rules, tool contract, testing bar, licensing pattern) this server follows. Every response includes a source_url.
Contact
Built by Ed Neuhaus. Contributions welcome — see CONTRIBUTING.md.
Available Tools
4 toolsaboutARead-onlyIdempotent
Show information about this MCP server, including its name, version, data sources, license, and the original author. Always available. (via Local Dallas MCP -- https://edneuhaus.com)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint false. The description adds value by specifying the exact information returned (name, version, data sources, license, author), which enriches the behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence followed by a parenthetical note. It is front-loaded with purpose and efficient with words, leaving no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters and no output schema, the description is complete: it lists the specific information returned (name, version, data sources, license, author) and indicates constant availability.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so schema coverage is 100%. The description has no need to elaborate on parameters, and the baseline for zero-parameter tools is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool shows server information including name, version, data sources, license, and author. It distinguishes itself from sibling tools like dallas_nws_alerts which focus on specific data domains.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Always available' indicates no restrictions on when to use this tool. While it doesn't explicitly state when not to use it, the context of being an 'about' tool makes usage intuitive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dallas_311ARead-onlyIdempotent
Search City of Dallas 311 service requests (code compliance, streets, sanitation, and other non-emergency city services). Filter by request type, department, status, council district, or date range. Authoritative source: City of Dallas Open Data.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 25). | |
| status | No | Filter by request status. | |
| days_back | No | Only include requests created in the last N days. Default: no limit. | |
| department | No | Department name, fuzzy contains. Example: "Code Compliance", "Streets". | |
| request_type | No | Service request type, fuzzy contains. Example: "pothole", "code concern", "high weeds". | |
| address_contains | No | Partial street address match, e.g. "Bettywood" or "Main St". | |
| council_district | No | Dallas city council district number (1-14), e.g. "10". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotent. Description adds 'authoritative source' context. No contradictions; behavioral traits are sufficiently covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero waste. Information is front-loaded and efficiently presented.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 7 optional parameters, no output schema, and no nested objects, description covers tool's purpose and filters well. Missing pagination info but not critical for a search tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions. Description lists filter options but does not add extra meaning beyond schema. Baseline score is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses specific verb 'Search' and resource 'City of Dallas 311 service requests' with explicit categories. Clearly distinguishes from sibling tools (about, weather alerts, schools).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
States when to use (searching 311 requests) and lists filter options. Does not explicitly mention when not to use, but context with siblings implies scope. Adequate for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dallas_nws_alertsARead-onlyIdempotent
Active National Weather Service alerts (severe thunderstorm, tornado, flood, heat, freeze, fire weather) for a specific Dallas location. Defaults to central Dallas when no address is supplied. Returns severity, urgency, headline, description, and expiration time for every active alert covering the point. Authoritative source: National Weather Service (api.weather.gov).
| Name | Required | Description | Default |
|---|---|---|---|
| lat | No | Latitude (WGS-84). Use with lng to skip geocoding. | |
| lng | No | Longitude (WGS-84). Use with lat to skip geocoding. | |
| address | No | Street address to check. Will be geocoded. If omitted, defaults to central Dallas. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, open-world, idempotent, non-destructive. The description adds detailed return fields (severity, urgency, headline, description, expiration) and authoritative source, fully disclosing behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with front-loaded purpose and essential details. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, the description specifies return fields, making it complete for a simple read operation. Covers purpose, parameters, defaults, and data source.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All parameters have schema descriptions, and the description adds context on default behavior (central Dallas) and geocoding skipping when using lat/lng, enhancing understanding beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves active NWS alerts for a Dallas location, lists alert types, and describes returned fields. It distinguishes itself from sibling tools by being weather-specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains how to use parameters (lat/lng or address) and notes the default to central Dallas. It provides clear usage context without needing explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dallas_tea_schoolsARead-onlyIdempotent
Look up Texas public schools and their TEA accountability ratings. Search by campus name, district, county, or city. Returns the A-F overall rating, sub-scores (Student Achievement, School Progress, Closing the Gaps), enrollment, demographics, district info, address, phone, and website. Example districts: "Dallas ISD", "Plano ISD", "Highland Park ISD". Authoritative sources: Texas Education Agency (2022-2023 ratings) and AskTED directory. Note: this does NOT map an address to its assigned schools -- attendance zones are managed by individual ISDs.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | Campus city (e.g. "DALLAS"). Filters AskTED directory by city. | |
| limit | No | Max results (default 25). | |
| campus | No | Campus name, fuzzy contains. Example: "Booker T Washington HSPVA". | |
| county | No | County name (e.g. "DALLAS"). Returns all campuses in that county. | |
| rating | No | Filter by 2022-2023 overall rating. | |
| district | No | District name, fuzzy contains. Example: "Dallas ISD", "Plano ISD", "Highland Park ISD". | |
| school_type | No | Filter by campus level. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description fully aligns with annotations (readOnlyHint, idempotentHint, etc.) and adds valuable context: authoritative sources (TEA 2022-2023), fuzzy search behavior, and the limitation regarding attendance zones. It discloses the read-only nature and data recency, exceeding annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a clear first sentence stating core purpose, followed by search options, returned fields, examples, source citation, and a limitation note. It is informative without excess; however, some sentences could be slightly shorter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 7 optional parameters, full schema coverage, no output schema, the description adequately covers expected returns (ratings, sub-scores, enrollment, demographics, etc.), sources, and data freshness. It sets proper expectations for what the tool does and does not do, making it reasonably complete for a lookup tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds meaning beyond parameter descriptions by providing specific examples (e.g., 'Dallas ISD', 'Booker T Washington HSPVA'), clarifying that searches are 'fuzzy contains', and explaining the 'rating' parameter as '2022-2023 overall rating'. This adds practical guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Look up'), resource ('Texas public schools and their TEA accountability ratings'), and scope ('Search by campus name, district, county, or city'). It lists what is returned and distinguishes itself from siblings by focusing on schools and ratings, while sibling tools cover about, alerts, and 311 services.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool (looking up Texas public schools and ratings) and explicitly states what it does NOT do (address mapping to attendance zones). While it does not mention alternatives, sibling tools are unrelated, so explicit when-not guidance is less critical.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
4 tool updates
v0.1.0- First observed
about - First observed
dallas_311 - First observed
dallas_nws_alerts - First observed
dallas_tea_schools
TDQS
Scored across 4 tools
Each tool serves a clearly distinct purpose: server info, weather alerts, school ratings, and city service requests. There is no overlap in functionality.
Three tools use a consistent 'dallas_' prefix with underscores, but the 'about' tool breaks this pattern. The naming is otherwise uniform.
With 4 tools, the server is well-scoped for its domain. Each tool provides substantial value without being excessive.
Covers core local information (weather, schools, city services) but lacks tools for other common local queries like crime, traffic, or property data.
Maintenance
Related MCP Connectors
- UnifAPIOAuthcom.unifapi
Hosted MCP server for live public-data APIs and Skills for AI agents.
DataDallas MCP — Dallas open data (www.dallasopendata.com, Socrata SODA API).
The official Model Context Protocol server for Ambee. It gives any MCP-compatible AI assistant — Claude, ChatGPT, Cursor, VS Code, Ollama, and more direct access to live air quality, pollen, and weather data. To get started, including information on signing up and obtaining your Ambee key, check out the Ambee documentation on https://docs.ambeedata.com
Agent-native MCP server over 49M+ US public and government records, privacy-first, always current.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that enables AI models to fetch weather alerts and detailed forecasts for US locations using the National Weather Service API.55 npmGPL 3.0
- FlicenseNot gradedqualityDmaintenanceA lightweight Model Context Protocol (MCP) server that gives AI assistants the ability to fetch real-time weather data for any city using the OpenWeatherMap API.1-
- AlicenseAqualityBmaintenanceEnables AI assistants to answer DFW civic and property questions using official data sources without API keys.987 npm2Apache 2.0
- AlicenseAqualityCmaintenanceProvides Claude and any MCP client with plain-English access to official San Antonio-area public data including weather alerts, school ratings, and 311 service calls, with no API keys required.41Apache 2.0