MCP server for interacting with GitHub - supports CLI, self-hosted VPS, and hosted key-service modes
Good foundation with 19 well-defined tools across GitHub's core APIs (issues, PRs, repos, search). All tools have descriptions (10-200 chars) and proper JSON Schema inputs with typed parameters and enums. However, output schemas are undocumented, the server provides no schema definitions for tool responses, forcing LLMs to infer structure. Error handling lacks recovery guidance. Several tools accept array parameters (assignees, labels) without batch operation consolidation. The 'hello' test tool is unnecessary in production. Tool naming follows verb_noun pattern consistently (get_*, create_*, search_*, list_*, update_*). Parameter descriptions are present but often generic; many lack constraints on format/range. Missing: documented output types, error recovery paths, rate-limit guidance, and dry-run/confirmation for destructive ops.
Add a comment to a specific issue in a GitHub repository.
Create a new issue in a GitHub repository.
Get details for a commit from a GitHub repository
Get details of a specific issue in a GitHub repository.
Get details of a specific pull request in a GitHub repository.
Get the files changed in a specific pull request.
No output schemas documented for any tool. Responses are untyped, forcing LLMs to infer structure from examples or context. This violates pattern:tool and risks hallucination of non-existent fields.
Error handling provides no recovery guidance. No tool documents what errors can occur (e.g., 'issue not found', 'permission denied') or what the LLM should do next (retry, ask user, try alternative tool). This violates pattern:recovery-guide.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 69 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 47 | - | v1 |
Get detailed information about a GitHub repository including README and file structure
A simple test tool to verify that the MCP server is working correctly
List branches in a GitHub repository
Get list of commits of a branch in a GitHub repository
List issues in a GitHub repository.
List pull requests in a GitHub repository.
Merge a pull request in a GitHub repository.
Search for code across GitHub repositories. Returns a concise list with file paths and repositories. Use 'get_file_contents' for full file content.
Search for issues in GitHub repositories.
Search for GitHub repositories. Returns a concise list with essential information. Use 'get_repository' for detailed information about a specific repository.
Search for GitHub users.
Update an existing issue in a GitHub repository.
Update an existing pull request in a GitHub repository.
Destructive operations (create_issue, add_issue_comment, update_issue, merge_pull_request, create_pull_request implied) lack dry-run or confirmation steps. Agents may commit irreversible changes without safeguards. Violates pattern:confirmation-request.
Parameter naming inconsistency: issues tools use 'issue_number', PR tools use 'pullNumber'. This forces LLMs to remember different param names for analogous operations. Violates pattern:tool-naming.
Array parameters (assignees, labels in create_issue/update_issue) are accepted but no batch API guidance provided. If an agent needs to add 10 labels to 100 issues, it must call update_issue 100 times instead of batching. Violates pattern:tool-composition.
'hello' test tool is present in production tool list. Test tools should be removed or gated behind a development flag. Wastes agent reasoning.