Texas Education Data Explorer: A Model Context Protocol server for public school data.
TEA Data MCP demonstrates solid definition quality with consistent naming conventions, comprehensive descriptions, and proper parameter documentation. All 16 tools follow verb_noun naming patterns (get_, search_, find_, map_, compare_). Tool descriptions are detailed and context-rich (median ~180 chars), exceeding the 10-1024 character baseline. All parameters include type definitions and descriptions. However, output schemas are not explicitly documented in the provided code, and error handling guidance is minimal. The server maintains good composition with minimal overlap between tools.
Compare two or more campuses side-by-side. Returns comparative metrics across the specified campuses.
List campuses within a district boundary. Returns table-format results with optional campus metadata.
List charter campuses within a district boundary. Supports optional network filtering (e.g., IDEA). Returns table-format results.
Calculate aggregate metrics across multiple campuses. Useful for district-level summaries and comparative analysis.
Fetch detailed information about a specific campus. Returns campus profile with optional meta_fields for additional metrics. Use campus_number from search results or list tools.
Inspect available data fields (metrics) for a campus or district. Use this tool to discover what specific data points are available in the local database before searching the web. It returns a list of keys (e.g., 'campus_2025_sat_average') that can be requested via meta_fields in other tools.
Output schemas not explicitly documented in source code. While input schemas are complete with proper JSON Schema types and descriptions, return types and structures are not formally specified in the tool definitions.
Minimal error handling guidance in tool descriptions. Tools do not specify what errors might occur, how to interpret them, or what actions to take on failure. No recovery guidance provided to LLM consumers.
Inferred effective spec: 2025-06-18+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | B | 75 | 2025-06-18+ | v2 |
| 2026-03-09 | F | 42 | - | v1 |
Look up a Texas school district by TEA number or name (wildcards like 'ALDINE*' or 'AUSTIN%' are supported). Use this to anchor district-level questions or to supply identifiers for detail, boundary, or campus list queries. Optionally request specific meta_fields for additional metrics. DO NOT search the web for basic district info; this tool provides it locally. Example: "Find Austin ISD" or "Get district 227901".
Fetch district-level summary with optional campus aggregates. Use this to get district-wide statistics and metadata.
Retrieve geometry (GeoJSON) for a district or campus. Use this to get boundary coordinates and spatial data.
Find campuses near a specified location (by coordinates or another campus). Supports pagination and optional meta_fields for additional metrics.
Retrieve staffing metrics and workforce data for campuses or districts.
Retrieve prompt-to-tool guidance for MCP clients. Returns suggested tool calls and parameters for common user intents.
Analyze student transfer flows (school choice patterns). Returns Sankey-ready nodes/links plus map flows for primary destinations. Includes charter vs traditional shares, rating shift counts, and distance patterns.
Find campuses within district boundaries and return map-ready results with GeoJSON geometry. Supports pagination, filtering by status/rating/grade level, and optional meta_fields for styling.
Find charter campuses within district boundaries and return map-ready results with GeoJSON geometry. Supports optional network filtering and pagination.
Search for campuses by name or district. Supports filtering by status (ISD, charter, private), rating (A-F), and grade level. Use pagination.next_cursor or next_tool_call when more results are available. Set include_total=true if you need total_matches. If completeness.needs_follow_up is true, follow next_tool_call before finalizing results.
compare_campuses and get_campus_aggregates lack detailed description of what metrics are compared/aggregated and in what format. Descriptions are below baseline for complex analytical tools.
get_transfer_insights has all optional parameters (no required fields). While flexibility is useful, the description should explain what happens when all parameters are omitted (what is the default scope?).
Pagination patterns inconsistently documented. Some tools mention 'pagination.next_cursor' and 'completeness.needs_follow_up' in descriptions, but these field names are not formalized across all paginated tools. Inconsistency risks LLM confusion.