MCP server for managing GitHub issues, pull requests, and repository activity
Server has 5 tools with basic schemas and descriptions. All tools have input schemas with typed parameters and descriptions present. However, descriptions are generic (avg ~80 chars, below the 194-char baseline for A+ tools), lack WHEN/WHY context, and omit error recovery guidance. Parameter descriptions are minimal (e.g., 'Repository owner' vs 'The GitHub username or organization name that owns the repository'). No output schemas documented. Missing idempotency hints on write operations (triage_issue, add_comment). No pagination support on list_issues despite returning up to 10 items. Error handling is absent, no guidance on what to do if a GitHub API call fails.
Post a comment on a GitHub issue or pull request
Fetch a list of issues from a GitHub repository
Generate markdown release notes from recently merged pull requests
Automatically label an issue as 'bug' or 'enhancement'
Get a summary of repository activity from the last 7 days
Descriptions lack WHEN/WHY context and are below baseline length. 'Fetch a list of issues from a GitHub repository' (54 chars) vs baseline 194 chars. LLMs cannot distinguish when to call list_issues vs weekly_digest without richer context.
No output schemas documented. LLMs cannot plan downstream tool calls or extract structured data. E.g., list_issues returns 'issues' field but no schema tells the agent what structure to expect.
Write operations (triage_issue, add_comment) lack idempotency hints and confirmation patterns. No dry-run support. Agents cannot safely retry without risking duplicate labels or comments.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 56 | 2025-06-18+ | v2 |
No error handling or recovery guidance. If octokit.issues.get() fails (404, auth error, rate limit), the tool returns a raw error. LLM has no guidance on retry, fallback, or user action.
list_issues returns up to 10 items with no pagination support. No limit parameter, no next_cursor, no total count. Large repos will truncate results silently.