Four tools with complete input schemas and descriptions. Naming is clear and action-oriented (ticket, ticket_link, ticket_board, ticket_search). Descriptions are adequate (50-150 chars) but lack LLM-optimized guidance on WHEN to use each tool vs. alternatives. Parameters are well-typed with enums for constrained inputs (action, view, fields). Critical gap: no documented output schemas, LLMs cannot infer what fields to expect from responses, forcing them to guess at downstream chaining. Error handling is present in code (mcp_error, not_found_error, recoverable_error) but not surfaced in tool descriptions. Batch operations (batch_archive, batch_move, batch_close) lack confirmation/dry-run guidance despite being destructive. ticket tool is overloaded with 16 actions, violates single-responsibility principle.
Primary CRUD + transitions for tickets
Dashboard view of tickets organized by status
Relationship management for tickets
Full-text search across tickets
No documented output schemas. Tool descriptions state what inputs are accepted but never specify what fields the response contains. LLMs cannot plan downstream tool calls or extract required IDs without guessing at response structure.
ticket tool combines 16 distinct actions (create, get, list, update, move, close, append, archive, unarchive, claim, release, claim_next, batch_archive, batch_move, batch_close, list_tags) into a single tool. Violates single-responsibility principle. LLMs must reason about which action to invoke rather than selecting a focused tool.
Batch operations (batch_archive, batch_move, batch_close) lack confirmation/dry-run pattern. confirm parameter defaults to false, but no description explains that preview mode is the safe default. Destructive operations should require explicit confirmation.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 57 | 2026-07-28+ | v2 |
Tool descriptions do not explain WHEN to use each tool vs. alternatives. E.g., ticket_search vs. ticket list with filters, when should an LLM choose search? No guidance on discovery patterns or prerequisites.
Error handling is implemented in code (mcp_error, not_found_error, recoverable_error functions exist) but not documented in tool descriptions. LLMs cannot infer recovery paths from error responses without explicit guidance in the tool description.