Dallas Civic 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., "@Dallas Civic MCPIs there a weather alert for Dallas 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.
Dallas Civic 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. Forked from: Local Dallas MCP by Ed Neuhaus, used under the Apache License 2.0. This fork adds building permits, public-safety (police incidents), and property/tax-parcel lookup on top of the original weather, schools, and 311 tools. Part of a family: local-city-mcp-template β the spec, the template, and the full list of cities built so far.
π§ Early-stage. Six tools live today (weather alerts, school ratings, 311, building permits, police incidents, property/tax parcels). See CONTRIBUTING.md.
Install
Add to your Claude Desktop config:
// claude_desktop_config.json
{
"mcpServers": {
"dallas-civic": {
"command": "npx",
"args": ["-y", "github:rosserbusinessarchitecture/https-github.com-mindwear-capitian-local-dallas-mcp-tab-readme-ov-file"]
}
}
}Restart Claude Desktop. No API keys required for any tool.
Claude Code
claude mcp add dallas-civic npx -y github:rosserbusinessarchitecture/https-github.com-mindwear-capitian-local-dallas-mcp-tab-readme-ov-fileRelated MCP server: mcp-arcgis-lincolnne
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?"
"What building permits were recently issued on Elm St?"
"Any reported police incidents near downtown recently?"
"Who owns the parcel on San Lucas and what's its legal description?"
Tools (6 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. |
| City of Dallas building permits (new construction, remodels, electrical, mechanical, plumbing, etc). Filter by type, status, council district, or address. |
| Dallas Police reported incidents (RMS data, 2014-present). Filter by keyword, council district, or address. |
| Dallas-area tax parcel lookup (owner, situs address, legal description, property class, council district) via the City of Dallas GIS parcels layer. Does not include dollar appraised value or tax bill status. |
| 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 |
Building permits | City of Dallas Open Data (dallasopendata.com), dataset |
Police incidents | City of Dallas Open Data (dallasopendata.com), dataset |
Property / tax parcels | City of Dallas GIS |
Geocoding | U.S. Census geocoder |
A note on the newer tools: dallas_permits, dallas_crime, and dallas_property resolve their upstream field/column names at runtime against each source's own metadata endpoint, instead of hardcoding guessed names β this fork's development environment has no outbound network access to the data portals. npm run test:contract was subsequently run against live data (via a GitHub Codespace); dallas_permits and dallas_crime passed as originally written, and dallas_property needed a rewrite once the live field list showed the DallasTaxParcels layer splits the situs address across four columns (ST_NUM/ST_DIR/ST_NAME/ST_TYPE, no combined address field) and carries no dollar appraised/market value at all (only APPRAISALYEAR). See CONTRIBUTING.md for the runtime-discovery pattern this relies on.
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
Forked from Local Dallas MCP by Ed Neuhaus. This fork is maintained by rosserbusinessarchitecture. Contributions welcome β see CONTRIBUTING.md.
Available Tools
7 toolsaboutARead-onlyIdempotent
Show information about this MCP server, including its name, version, data sources, license, and the original author. Always available. (via Dallas Civic MCP -- forked from Local Dallas MCP by Ed Neuhaus)
| 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, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds useful behavioral context beyond annotations by noting the tool is always available and by specifying the informational payload (name, version, data sources, license, author), which helps the agent anticipate the response.
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 compact: one clear functional sentence plus a short availability guarantee and provenance note. Every sentence adds value, and the core purpose is front-loaded.
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?
For a parameterless read-only metadata tool, the description is complete: it states what information will be returned, confirms availability, and the annotations cover safety and idempotency. No output schema exists, but the description enumerates enough of the return content to set expectations.
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 zero parameters, so there is no parameter semantics to document. The description appropriately focuses on what the tool returns rather than inputs, and the 100% schema coverage is trivially satisfied.
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 uses a specific verb ('Show') with a clear resource ('information about this MCP server') and enumerates the exact fields returned: name, version, data sources, license, and original author. This clearly distinguishes it from the sibling data-access tools, which all involve specific Dallas civic datasets.
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?
It states 'Always available,' which tells the agent this tool has no prerequisites and can be called in any context. It does not explicitly name alternatives or when not to use it, but the content makes it obvious that sibling tools are for domain data, not server metadata.
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_crimeARead-onlyIdempotent
Search Dallas Police reported incidents (RMS data, 2014-present). Filter by offense/keyword, council district, or address -- or pass no filters for the most recent reports. Sexually-oriented offenses and records involving juveniles are excluded by the Dallas Police Department before publication, per its public-data policy. Authoritative source: City of Dallas Open Data.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 25). | |
| keyword | No | Free-text search across offense type/description, e.g. "burglary", "theft", "assault". | |
| address_contains | No | Partial block/address match, e.g. "Main St" or "Elm". | |
| 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 idempotentHint, so the description adds meaningful extra context: excluded record types (sexually-oriented offenses and juvenile-involved records), the data source (RMS data, 2014-present), and the authoritative publisher (City of Dallas Open Data). This goes beyond the safety profile already captured by 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 compact and well-structured: it opens with the core purpose and time range, then covers filter modes, default behavior, data omissions, and source. Every sentence contributes useful information with 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?
For a read-only search tool with zero required parameters and no output schema, the description provides sufficient context for an agent to decide when and how to call it, including scope, exclusions, and source authority. It could optionally mention response structure, but the functional semantics are clear.
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 description coverage is 100%, so all four parameters are already well-documented. The description adds only a high-level mention of filtering dimensions (offense, council district, address) without providing details beyond the schema. This matches the baseline for fully covered schemas.
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 names a specific verb and resource: 'Search Dallas Police reported incidents (RMS data, 2014-present).' It clearly differentiates this tool from the sibling tools like dallas_property or dallas_311 by specifying the crime dataset, geographic scope, and time range.
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 usage context: filtering by offense/keyword, council district, or address, and the option to pass no filters for the most recent reports. It does not explicitly name alternatives or state when not to use this tool, but the guidance is still concrete and actionable.
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_permitsARead-onlyIdempotent
Search City of Dallas building permits (new construction, remodels, electrical, mechanical, plumbing, etc). Filter by permit type, status, council district, or address. Authoritative source: City of Dallas Open Data.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 25). | |
| status | No | Permit status, fuzzy contains. Example: "Issued", "Finaled", "Applied". | |
| days_back | No | Only include permits issued in the last N days. Default: no limit. | |
| permit_type | No | Permit type, fuzzy contains. Example: "Residential", "Electrical", "Roofing". | |
| address_contains | No | Partial street address match, e.g. "Main St" or "Elm". | |
| 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 provide readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds useful context about the authoritative source and permit categories, but does not disclose return shape, pagination, or dataset update behavior beyond what annotations imply.
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 short, front-loaded with the main action and resource, and every clause adds value. No filler or redundant restatement of the tool name.
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?
For a read-only search tool with a rich schema and strong annotations, this description is nearly complete. The only minor gap is that the prose does not mention the date-range filter or output shape, though the schema documents the former and the latter is less 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 description coverage is 100%, so the baseline is 3. The description reinforces the key filters (permit type, status, council district, address) but adds no detail beyond the schema; limit and days_back are left entirely to the 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?
Uses a specific verb and resource: 'Search City of Dallas building permits,' with concrete permit categories and filter dimensions. This clearly distinguishes it from sibling tools about crime, property, schools, 311, and weather.
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 implies this is the tool for Dallas permit searches and notes the authoritative data source, but it does not explicitly state when to prefer it over siblings or when not to use it. Context is clear, but exclusionary guidance is absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dallas_propertyARead-onlyIdempotent
Look up a Dallas-area tax parcel by street name or account number: owner name, situs address, legal description, property class, and council district, from the City of Dallas GIS parcels layer (built from certified county appraisal-district data). This layer does NOT carry dollar appraised/market value or current tax bill/payment status directly, but each record includes a direct link to that parcel's county appraisal district detail page, where that information lives.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 10). | |
| account_number | No | Exact appraisal district account/parcel number, if known. | |
| address_contains | No | Partial street NAME (not full address) -- the layer indexes street name separately from number, e.g. "San Lucas" or "Main". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnly, idempotent, openWorld, and non-destructive behavior. Beyond that, the description honestly discloses a key limitation: the layer contains no appraised value or payment status, only a link to the external source. This prevents an agent from promising data the tool cannot return.
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?
Three sentences front-load the core purpose, then add the crucial limitation and redirect. There is no filler, and each sentence earns its place.
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?
The description covers search inputs, return fields, source provenance, domain boundary, and a fallback path for missing data. It is slightly light on output shaping or how limit/partial matching behaves, but no output schema exists and the essential invocation context is present.
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 description coverage is 100%, so parameters already carry full documentation. The description adds a brief framing ('street name or account number') but does not materially go beyond the schema's own parameter descriptions. 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 uses a specific verb ('Look up') with a clear resource ('Dallas-area tax parcel'), identifies the key search paths ('street name or account number'), and lists the returned fields. It clearly distinguishes this tool from its data-domain siblings like dallas_permits, dallas_crime, and dallas_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 states when the tool is appropriate: when you need parcel data by street name or account number. It also tells the agent what this layer does NOT provide (dollar values, tax bills) and where to find that information (county appraisal district page), which helps route the request appropriately even though it doesn't explicitly name sibling alternatives.
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.
7 tool updates
v0.2.1- First observed
about - First observed
dallas_311 - First observed
dallas_crime - First observed
dallas_nws_alerts - First observed
dallas_permits - First observed
dallas_property - First observed
dallas_tea_schools
TDQS
Scored across 7 tools
Each tool targets a distinct civic dataset: weather alerts, school data, 311 service requests, permits, crime, and property. There is no functional overlap between the domain tools, and the 'about' meta-tool is clearly separated. An agent would have little trouble selecting the right tool for a query.
Domain tools consistently use a 'dallas_' prefix followed by a clear noun (e.g., dallas_crime, dallas_property). The exception is 'about', which lacks the prefix but is a common server metadata tool. Overall naming is coherent and readable with only a minor deviation.
Seven tools (six data tools plus one meta tool) are well within the ideal range for a focused civic data MCP server. Each tool adds a distinct data source and the set feels appropriately scopedβneither sparse nor bloated.
The server covers the main civic data areas expected for the City of Dallas: alerts, schools, 311, permits, crime, and property records. Some adjacent areas (e.g., traffic, transit, city budgets) are missing, and the property tool deliberately excludes appraised values, so completeness is strong but not exhaustive.
Maintenance
Related MCP Connectors
DataDallas MCP β Dallas open data (www.dallasopendata.com, Socrata SODA API).
Resolve any government entity worldwide and submit service requests. Open civic data for AI agents.
Public building permits, property assessments, parcels and development intelligence.
Provides access to Civic Plus - See Click Fix, allowing you to interact with your data via an LLM.β¦
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables querying Dallas open data via the Socrata SODA API, allowing access to municipal datasets through natural language.2 npmMIT
- AlicenseNot gradedqualityCmaintenanceEnables querying and searching Lincoln & Lancaster County GIS open geospatial datasets (parcels, zoning, public works) through natural language.3 npmMIT
- AlicenseAqualityBmaintenanceEnables AI assistants to answer DFW civic and property questions using official data sources without API keys.987 npm2Apache 2.0
- AlicenseAqualityCmaintenanceProvides AI assistants with plain-English access to official Houston-area public data including weather alerts and school ratings, no API keys required.31Apache 2.0