A Model Context Protocol server that provides tools for interacting with GitHub repositories, issues, pull requests, users, and other GitHub features via the GitHub API
68 tools with highly inconsistent quality. Only 4 tools (get_me, enable_toolset, list_available_toolsets, get_toolset_tools) have visible descriptions and input schemas in source. Remaining 64 tools lack visible schema definitions and descriptions in provided code, only tool names and risk classifications are shown. This creates a floor of ~6% per tool (naming only). Average across all 68 tools: (4 tools × ~65) + (64 tools × ~6) / 68 ≈ 42. No evidence of parameter descriptions, output schemas, or error recovery guidance for the majority.
64 of 68 tools lack visible descriptions and input schemas in source code. Only 4 tools (get_me, enable_toolset, list_available_toolsets, get_toolset_tools) have documented schemas and descriptions.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 33 | <=2025-11-25 | v2 |
Enable one of the sets of tools the GitHub MCP server provides, use get_toolset_tools and list_available_toolsets first to see what this will enable
Get details of the authenticated GitHub user. Use this when a request includes "me", "my". The output will not change unless the user changes their profile, so only call this once.
Lists all the capabilities that are enabled with the specified toolset, use this to get clarity on whether enabling a toolset would help you to complete a task
List all available toolsets this GitHub MCP server can offer, providing the enabled status of each. Use this when a task could be achieved with a GitHub tool and the currently available tools aren't enough. Call get_toolset_tools with these toolset names to discover specific tools you can call
Tool names 'create_and_submit_pull_request_review' and 'add_pull_request_review_comment_to_pending_review' violate single-responsibility principle. Names containing 'and' or excessively long names (>30 chars) signal multiple concerns. Split into separate tools.
No evidence of output schemas, pagination parameters (limit, offset, cursor), or result count documentation for list_* and search_* tools. LLMs cannot plan downstream calls or handle large result sets without this metadata.
Destructive tools (delete_file, delete_pending_pull_request_review, delete_workflow_run_logs) lack confirmation/dry-run patterns. No evidence of error recovery guidance or actionable error messages to guide LLM retry logic.
No visible parameter descriptions for any of the 64 undocumented tools. Even 'reason' parameter in get_me lacks clarity on when/why to use it. LLMs cannot infer parameter semantics from names alone.