RestCSV server has 16 tools with basic Zod schemas and descriptions, but significant quality gaps limit production readiness. All tools have descriptions (10-100 chars, mostly short), and input schemas are present with type definitions. However, descriptions are generic and lack actionable context for LLM selection. Parameter descriptions are minimal (e.g., 'The csv UUID' repeated 6+ times). No output schemas documented. Error handling is primitive (raw error.message). No pagination support despite list_* tools. Tool names are clear (verb_noun pattern), but composition issues exist: store_csv accepts both file path and contents, creating ambiguity. No idempotency guarantees, no permission gates, no audit logging. Baseline: 549 production tools average 194-char descriptions; this server averages ~60 chars. Per-tool scores range 35 - 55, averaging 42.
Bulk store multiple CSV rows
Create a new action
Delete an action
Delete a CSV file
Execute an action
List all actions
List all rows in a CSV
Descriptions are generic and lack LLM-selection context. 'List all actions' and 'Show details of a specific action' do not explain WHEN to call these tools or what distinguishes them. Baseline: A+ tools average 194 chars; this server averages ~60 chars.
No output schemas documented. LLMs cannot plan downstream calls or extract required fields. E.g., create_action returns JSON but structure is unknown to the agent.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 47 | 2026-07-28+ | v2 |
List all CSV files
Remove a CSV row
Show details of a specific action
Show details of a specific CSV
Show details of a specific CSV row
Store a CSV file
Store a new row in a CSV
Update an existing action
Update an existing CSV row
store_csv parameter ambiguity: accepts both 'file' (path) and 'contents' (string). LLM cannot determine which to use. Should split into store_csv_from_path and store_csv_from_contents, or clarify mutual exclusivity.
Error handling is primitive. All errors return raw error.message (e.g., 'Error: Network timeout'). No recovery guidance, no categorization (retryable vs fatal), no actionable next steps for LLM.
No pagination support on list_* tools. list_actions, list_csvs, list_csv_rows lack limit/offset/cursor parameters and total count in response. Large result sets will blow context window.