A remote MCP server providing database operations without authentication
Two tools with minimal descriptions and incomplete schemas. get_db_data has empty input schema ({}), violating the requirement that all tools have documented parameters. write_data has proper Zod schema with type constraints but lacks parameter descriptions. Both tool descriptions are under 50 chars and lack context on when/why to use them. No output schemas documented. No error handling guidance. No composition hints. Naming is acceptable (verb_noun pattern) but descriptions fail to meet the 10-1024 char baseline or explain prerequisites/side effects.
Read data from production DB - return 3 random users
Write data to production DB - demo function - return success message
get_db_data has empty input schema ({}). Tool lacks any documented parameters or output structure.
write_data parameters (id, name, email) lack descriptions. LLMs cannot infer what each field controls or why it matters.
Tool descriptions are too short (25-35 chars) and lack context. 'Read data from production DB - return 3 random users' does not explain when to call this vs other tools, what the output structure is, or any prerequisites. Baseline: 194 chars average.
No output schemas documented. LLMs cannot plan downstream calls or extract fields. get_db_data returns JSON array of users but this is not formally declared. write_data returns success message but structure is undocumented.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 51 | 2026-07-28+ | v2 |
write_data modifies state (writes to DB) but description does not explicitly state this. Per pattern:command-tool, destructive operations must declare their side effects so agents know they are not idempotent.