local-houston-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-houston-mcpIs there an active weather alert for Houston right now?"
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 Houston MCP
Your AI's local guide to Houston. A Model Context Protocol (MCP) server giving Claude (and any MCP client) plain-English access to official Houston-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-houston-mcp Part of a family: local-city-mcp-template — the spec, the template, and the full list of cities built so far.
🚧 Early-stage. Two tools live today (weather alerts, school ratings). More Houston/Harris-area civic and property data planned — see CONTRIBUTING.md.
Install
Add to your Claude Desktop config:
// claude_desktop_config.json
{
"mcpServers": {
"local-houston": {
"command": "npx",
"args": ["-y", "github:mindwear-capitian/local-houston-mcp"]
}
}
}Restart Claude Desktop. No API keys required for any tool.
Claude Code
claude mcp add local-houston npx -y github:mindwear-capitian/local-houston-mcpRelated MCP server: local-dfw-mcp
Try it
"Is there an active weather alert for Houston right now?"
"What's the TEA rating for Houston ISD?"
"Show me A-rated elementary schools in Harris county."
Tools (2 live)
Tool | What it does |
| Active National Weather Service alerts (severe thunderstorm, tornado, flood, heat, freeze, fire weather) for a Houston location. Defaults to central Houston 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: Houston ISD, Cypress-Fairbanks ISD, Katy ISD. |
| 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 |
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
3 toolsaboutARead-onlyIdempotent
Show information about this MCP server, including its name, version, data sources, license, and the original author. Always available. (via Local Houston MCP -- https://edneuhaus.com)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true and destructiveHint=false, indicating a safe read operation. The description adds 'Always available' as a behavioral trait beyond the annotations, and specifies the fields returned, which is useful context.
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, concise sentence that front-loads the action ('Show information') and immediately lists the key contents. The parenthetical URL and 'Always available' add useful context without clutter.
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 the tool's simplicity (no parameters, no output schema), the description fully explains what the tool does, what information it returns, and that it is always accessible. No additional details are needed for an agent to invoke it correctly.
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?
The tool has zero parameters, and the description correctly makes no mention of any. According to the rubric, a 0-parameter tool receives a baseline score of 4, as there are no parameter semantics to clarify.
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 begins with 'Show information about this MCP server,' a specific verb and resource. It lists the exact information provided (name, version, data sources, license, author) and is clearly distinct from the sibling tools about NWS alerts and TEA 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?
The phrase 'Always available' provides clear context that the tool can be called without prerequisites or special conditions. There are no explicit alternatives or when-not-to-use instructions, but the tool's purpose is so straightforward that no exclusions are necessary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
houston_nws_alertsARead-onlyIdempotent
Active National Weather Service alerts (severe thunderstorm, tornado, flood, heat, freeze, fire weather) for a specific Houston location. Defaults to central Houston 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 Houston. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as read-only, idempotent, and non-destructive. The description adds useful behavioral context beyond annotations by specifying the return fields (severity, urgency, headline, description, expiration time) and the default-central-Houston behavior. No contradictions with annotations; no hidden destructive or stateful behavior is implied.
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 three sentences, front-loaded with the core purpose, and every sentence adds specific value: alert types, default location, return fields, and authoritative source. No filler or 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?
With three optional parameters, no output schema, and strong annotations, the description adequately explains what the tool does, what it returns, and when the default applies. It could mention edge cases like lat/lng outside Houston or geocoding failures, but overall it is complete enough for an agent to select and invoke the tool correctly.
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?
The input schema provides 100% coverage for all three parameters, so the baseline is 3. The description reinforces the default behavior already stated in the schema ('If omitted, defaults to central Houston') but does not add significant new meaning beyond what the schema provides.
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 National Weather Service alerts for a specific Houston location, listing alert types and the return data fields. This distinguishes it from siblings like 'about' and 'houston_tea_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?
The description provides clear context: it is for a specific Houston location, defaults to central Houston when no address is supplied, and relies on the National Weather Service as the authoritative source. It does not explicitly name alternatives or exclusion scenarios, but none appear necessary given the sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
houston_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: "Houston ISD", "Cypress-Fairbanks ISD", "Katy 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. "HOUSTON"). Filters AskTED directory by city. | |
| limit | No | Max results (default 25). | |
| campus | No | Campus name, fuzzy contains. Example: "Bellaire HS". | |
| county | No | County name (e.g. "HARRIS"). Returns all campuses in that county. | |
| rating | No | Filter by 2022-2023 overall rating. | |
| district | No | District name, fuzzy contains. Example: "Houston ISD", "Cypress-Fairbanks ISD", "Katy ISD". | |
| school_type | No | Filter by campus level. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, non-destructive. The description adds useful context: authoritative sources (TEA, AskTED), data vintage (2022-2023), the specific return fields, and the limitation about attendance zones. This goes beyond annotations.
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 appropriately sized, front-loaded with purpose, then search criteria, return fields, examples, sources, and limitation. Every sentence adds value without 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?
Despite no output schema, the description explains exactly what data is returned (ratings, sub-scores, enrollment, etc.), sources, and limitations. With 7 optional parameters and zero required, it gives sufficient context for an agent to select and invoke the 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?
Input schema covers 100% of parameters with descriptions, including enums and defaults. The description only restates search fields and examples, not adding significant meaning beyond schema. Baseline 3 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?
The description states a specific verb and resource: 'Look up Texas public schools and their TEA accountability ratings.' It clearly distinguishes from siblings by focusing on school data rather than app info or weather alerts.
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 gives explicit search criteria (campus, district, county, or city), example districts, and explicitly states a when-not-to-use ('does NOT map an address to its assigned schools'). However, it does not name an alternative tool, so it falls short of a 5.
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.
3 tool updates
v0.1.0- First observed
about - First observed
houston_nws_alerts - First observed
houston_tea_schools
TDQS
Scored across 3 tools
Each tool serves a completely distinct purpose: server metadata, weather alerts, and school ratings. There is no overlap or ambiguity between them.
The two data tools follow a consistent 'houston_<domain>_<entity>' pattern, but 'about' breaks the pattern by being a generic verb. Minor deviation, but overall readable and predictable.
With three tools, the server is tightly scoped for a local Houston information service. Each tool has a clear purpose and the count feels appropriate for the niche domain.
The server covers weather alerts and school ratings, which are core local interests, but lacks other potential Houston-specific data (e.g., full forecasts, traffic). The note about attendance zones demonstrates awareness of limitations, so minor gaps remain.
Maintenance
Related MCP Connectors
US weather & geo for AI agents: forecasts, alerts, earthquakes, elevation, geocoding. No keys.
US weather & geo for AI agents: forecasts, alerts, earthquakes, elevation, geocoding. No keys.
Provides access to Civic Plus - See Click Fix, allowing you to interact with your data via an LLM.…
Resolve any government entity worldwide and submit service requests. Open civic data for AI agents.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables AI assistants to access real-time US weather forecasts and alerts through the National Weather Service API.25 npmMIT
- AlicenseAqualityBmaintenanceEnables AI assistants to answer DFW civic and property questions using official data sources without API keys.987 npm2Apache 2.0
- 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
- 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