Two tools with basic schemas and descriptions, but significant gaps in parameter documentation and output schema clarity. list_reports has empty input schema ({}), which is acceptable for discovery tools. get_report_results has proper Zod schema with descriptions for all three parameters. However, neither tool documents its output structure, making it difficult for LLMs to plan downstream operations. Descriptions are present but minimal (10-30 chars), below the 50-200 char baseline for LLM-optimized tools. No error recovery guidance, no pagination support despite potential for large result sets, and no indication of which fields are returned. The prompt 'analyze_report_results' is well-structured but adds no tool capability.
Fetch results for a specific report with optional date filtering
List all available reports
Output schemas not documented. Neither tool specifies what fields are returned, forcing LLMs to guess structure and plan blind. list_reports returns {reports: [{id, name, type}]} and get_report_results returns {data: [], metadata?: {}} but this is inferred from code, not declared in tool definitions.
Descriptions too brief (10-30 chars). 'List all available reports' and 'Fetch results for a specific report with optional date filtering' lack context on when to use each tool, what data they reveal, or how to chain them. Baseline for LLM-optimized descriptions is 50-200 chars.
No pagination or result limits declared. get_report_results accepts optional date filters but does not specify max result count, pagination parameters (limit, offset, cursor), or guidance on handling large datasets. If a report spans years, response could exhaust context window.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 44 | 2026-07-28+ | v2 |
No error recovery guidance. Both tools catch errors and return isError: true with a message, but do not guide the LLM on next steps. E.g., 'Error listing reports: 401 Unauthorized' tells the agent nothing, should be 'Authentication failed. Check KAYZEN_BASIC_AUTH environment variable.'
Date parameter format not validated. start_date and end_date accept strings with description 'YYYY-MM-DD format' but no regex pattern or validation. LLMs frequently pass invalid dates like '2024-1-5' or '01/15/2024'. Should enforce format via Zod pattern or validate in handler.