Skip to main content
Glama

Dallas Civic MCP

License: Apache 2.0 Node 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-file

Related 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

dallas_nws_alerts

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.

dallas_tea_schools

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.

dallas_311

City of Dallas 311 service requests (code compliance, streets, sanitation, etc). Filter by type, department, status, council district, or address.

dallas_permits

City of Dallas building permits (new construction, remodels, electrical, mechanical, plumbing, etc). Filter by type, status, council district, or address.

dallas_crime

Dallas Police reported incidents (RMS data, 2014-present). Filter by keyword, council district, or address.

dallas_property

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.

about

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 gc4d-8a49

Building permits

City of Dallas Open Data (dallasopendata.com), dataset e7gq-4sah

Police incidents

City of Dallas Open Data (dallasopendata.com), dataset 4ea4-q4ui ("RMS Incidents With GeoLocation")

Property / tax parcels

City of Dallas GIS DallasTaxParcels FeatureServer, built from certified Dallas/Collin/Denton/Kaufman/Rockwall county appraisal-district data

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 tools
aboutA
Read-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)

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_311A
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results (default 25).
statusNoFilter by request status.
days_backNoOnly include requests created in the last N days. Default: no limit.
departmentNoDepartment name, fuzzy contains. Example: "Code Compliance", "Streets".
request_typeNoService request type, fuzzy contains. Example: "pothole", "code concern", "high weeds".
address_containsNoPartial street address match, e.g. "Bettywood" or "Main St".
council_districtNoDallas city council district number (1-14), e.g. "10".

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_crimeA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results (default 25).
keywordNoFree-text search across offense type/description, e.g. "burglary", "theft", "assault".
address_containsNoPartial block/address match, e.g. "Main St" or "Elm".
council_districtNoDallas city council district number (1-14), e.g. "10".

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_alertsA
Read-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).

ParametersJSON Schema
NameRequiredDescriptionDefault
latNoLatitude (WGS-84). Use with lng to skip geocoding.
lngNoLongitude (WGS-84). Use with lat to skip geocoding.
addressNoStreet address to check. Will be geocoded. If omitted, defaults to central Dallas.

TDQS

A5/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters5/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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_permitsA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results (default 25).
statusNoPermit status, fuzzy contains. Example: "Issued", "Finaled", "Applied".
days_backNoOnly include permits issued in the last N days. Default: no limit.
permit_typeNoPermit type, fuzzy contains. Example: "Residential", "Electrical", "Roofing".
address_containsNoPartial street address match, e.g. "Main St" or "Elm".
council_districtNoDallas city council district number (1-14), e.g. "10".

TDQS

A3.8/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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_propertyA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results (default 10).
account_numberNoExact appraisal district account/parcel number, if known.
address_containsNoPartial street NAME (not full address) -- the layer indexes street name separately from number, e.g. "San Lucas" or "Main".

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_schoolsA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
cityNoCampus city (e.g. "DALLAS"). Filters AskTED directory by city.
limitNoMax results (default 25).
campusNoCampus name, fuzzy contains. Example: "Booker T Washington HSPVA".
countyNoCounty name (e.g. "DALLAS"). Returns all campuses in that county.
ratingNoFilter by 2022-2023 overall rating.
districtNoDistrict name, fuzzy contains. Example: "Dallas ISD", "Plano ISD", "Highland Park ISD".
school_typeNoFilter by campus level.

TDQS

A4.5/5.0
Behavior5/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

  1. 7 tool updatesv0.2.1
    • First observedabout
    • First observeddallas_311
    • First observeddallas_crime
    • First observeddallas_nws_alerts
    • First observeddallas_permits
    • First observeddallas_property
    • First observeddallas_tea_schools

TDQS

A4.2/5.0

Scored across 7 tools

Disambiguation5/5

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.

Naming Consistency4/5

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.

Tool Count5/5

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.

Completeness4/5

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

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables querying Dallas open data via the Socrata SODA API, allowing access to municipal datasets through natural language.
    2 npm
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Enables AI assistants to answer DFW civic and property questions using official data sources without API keys.
    9
    87 npm
    2
    Apache 2.0
  • A
    license
    A
    quality
    C
    maintenance
    Provides AI assistants with plain-English access to official Houston-area public data including weather alerts and school ratings, no API keys required.
    3
    1
    Apache 2.0