A MCP server for querying Chicago public schools data and their websites
This server has fundamental gaps in tool definition quality. Both tools have acceptable names that start with action verbs (query_*), but descriptions are generic and lack operational context. The first tool has a descriptive schema annotation embedded in its description (table schema details), but this is poor practice, schema details belong in documentation, not the tool description. Neither tool has output schema documentation. Parameters lack descriptions in some cases (query_schools_and_neighborhoods has no description for the 'query' parameter beyond its type), and the optional school_name parameter in query_school_websites has minimal guidance. Error handling is present but returns unstructured text rather than actionable error messages. Security is a concern: query_schools_and_neighborhoods accepts raw SQL queries, which creates SQL injection risk despite the attempt to block DML statements, an attacker could still use UNION SELECT to exfiltrate data or construct subqueries. The server lacks pagination support for result sets and does not document output field structures, forcing LLMs to parse free-text results.
Query a database of Chicago public school websites for context relevant to answering a given question.
Excecute a SELECT query on a table of Chicago public schools and their neighborhoods called "schooltoneighborhood" with the following schema: id INTEGER NOT NULL, created_at DATETIME NOT NULL, school_id INTEGER NOT NULL, school_name VARCHAR NOT NULL, neighborhood VARCHAR NOT NULL, PRIMARY KEY (id) "school_name" is always all-caps but "neighborhood" is not.
Missing output schema documentation for both tools
Parameter descriptions are minimal or missing operational context
SQL injection risk in query_schools_and_neighborhoods
No pagination support or result limit documentation
Descriptions lack operational context, when/why to use each tool
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 36 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 30 | - | v1 |
Error handling returns unstructured text, not actionable recovery guidance
Tool descriptions mix operational purpose with implementation details