AI bug triage MCP server — classifies Sentry issues by severity and routes to owning team
Three tools with clear naming (verb_noun pattern) and basic schemas, but significant gaps in parameter descriptions and output documentation. Tool descriptions are adequate (60-90 chars) but lack actionable context for LLM selection. Input schemas use Zod validation but parameter descriptions are minimal or missing. No output schema documentation. Error handling returns isError flag but lacks recovery guidance. The multi-step workflow (blame → location → git context) is well-structured but not reflected in tool composition patterns.
Step 1 of 2. Pass in a stack trace and receive instructions on what to find. Then call submit_trace_location with the result.
Step 3 of 3. Submit the commit message, PR info, and comments found via git blame/log. The context is validated and returned as the final triage result.
Step 2 of 2. Submit the file path and line range you identified from the stack trace. The location is validated and returned as the final result.
Output schemas not documented. LLMs cannot plan downstream calls or extract structured data from responses. blame_stack_trace returns a text prompt; submit_trace_location returns a text prompt; submit_git_context returns JSON but no schema is declared.
Parameter descriptions are minimal or missing context. 'stackTrace' has a description, but 'lineRangeStart' and 'lineRangeEnd' lack guidance on what values are valid or why the ±2 offset matters. LLMs cannot infer intent from names alone.
Error responses lack recovery guidance. isError=true with a message like 'Invalid location: ...' tells the LLM nothing about what to do next. Should suggest 'Verify the file path exists in the repo' or 'Retry with adjusted line numbers'.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 50 | 2026-07-28+ | v2 |
Tool composition assumes human-in-the-loop execution. The workflow requires an LLM to call blame_stack_trace, read instructions, manually run git commands, then call submit_git_context. This is not a tool composition pattern, it's a prompt-based workflow. Tools should encapsulate the git operations.
No input validation constraints documented. lineRangeStart and lineRangeEnd are positive integers, but no min/max bounds are stated. Can an LLM pass line 999999? Should there be a repo-specific upper bound?