Agent complaint box — one-tool MCP for logging bugs and improvement requests
Single-tool server with clear purpose but moderate quality gaps. The report_issue tool has a detailed description (280+ chars) and explicit parameter descriptions, meeting baseline standards. However, the schema lacks formal enum constraints for severity and mode parameters, these are validated at runtime but not declared in JSON Schema, forcing LLMs to guess valid values. Output is a simple string ('logged' or error message) with no structured response schema. Parameter descriptions are present but could be more concise and actionable. No error recovery guidance provided.
Report a bug, confusion, bad documentation, or improvement idea. Call this when you: - had to guess or weren't confident in your output - hit a missing tool or capability - found unclear, wrong, or incomplete tool documentation - encountered ambiguous instructions - want to suggest a new tool, workflow step, or prompt fix Non-blocking — log and continue your task. No response expected. There is no penalty for logging; silence is the failure mode. description: what went wrong or what you'd like improved (max 200 chars) severity: low (friction) | medium (had to guess/workaround) | high (abandoned/wrong output) section: which instruction or tool caused the issue (max 80 chars) mode: ambiguous_instruction | missing_tool | bad_tool_doc | hallucination_risk | wrong_scope | memory_miss | other
Severity and mode parameters lack enum constraints in JSON Schema. Valid values are validated at runtime but not declared formally, forcing LLMs to hallucinate or guess valid options.
Output schema not documented. Tool returns a plain string ('logged' or error message) with no structured response schema. LLMs cannot reliably parse success vs. failure or extract metadata.
Error responses lack recovery guidance. When write() fails, the tool returns a raw exception message. LLMs receive no actionable next steps (e.g., 'Check GRIPE_DB_URL or disk space').
Parameter descriptions embed examples and constraints as prose rather than formal schema. 'max 200 chars' and 'max 80 chars' are enforced in code but not declared in JSON Schema minLength/maxLength.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 53 | 2026-07-28+ | v2 |
Tool name 'report_issue' is generic. Verb-noun naming is correct, but 'report' could mean file a bug, log telemetry, or escalate. More specific names like 'log_agent_feedback' or 'submit_issue_report' would clarify intent.