Server defines 4 tools with complete input schemas and basic descriptions. All tools have verb-noun naming (create_pr, list_prs, view_pr, comment_pr) which is correct. Schemas are properly typed with required fields marked. However, descriptions are minimal (10-40 chars), parameter descriptions lack context about constraints and formats, and output schemas are not documented. Error handling exists but lacks recovery guidance. No tool annotations (readOnlyHint/destructiveHint) despite clear read vs write distinction. Missing idempotency guidance for write operations.
Add a comment to a pull request
Create a new pull request
List pull requests in the current repository
View a specific pull request
Tool descriptions are too brief (10-40 chars). LLMs cannot determine when to select each tool or what it returns. Descriptions should be 50-200 chars explaining WHAT, WHEN, and WHAT IT RETURNS.
Parameter descriptions lack format/constraint details. E.g., 'state' enum is defined in schema but description doesn't explain valid values. 'limit' has no range guidance (should be 1-100 or similar). LLMs cannot infer constraints from schema alone.
No output schema documentation. Callers don't know what fields to expect from create_pr, list_prs, view_pr, or comment_pr responses. This breaks tool chaining and forces LLMs to guess downstream parameter mappings.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 52 | 2026-07-28+ | v2 |
Missing tool annotations. create_pr and comment_pr are destructive (write operations) but lack destructiveHint annotation. list_prs and view_pr are read-only but lack readOnlyHint. Annotations guide agent planning and safety.
Error handling returns McpError but lacks recovery guidance. E.g., 'GitHub CLI error: ...' tells agent nothing about whether to retry, ask user, or abort. Should include actionable next steps.