Model Context Protocol server for GitHub API operations
Server provides 7 tools with complete JSON schemas and descriptions. Naming follows verb_noun convention (gh_manage_*, gh_search). Schemas are comprehensive with enums and constraints. However, descriptions are generic and lack LLM-optimized guidance on WHEN to use each tool vs alternatives. Parameter descriptions exist but many lack actionable format/constraint details. Output schemas are not documented. Error handling is basic (errorReporting=true but no recovery guidance visible in code). Tool composition has issues: gh_manage_repos, gh_manage_issues, gh_manage_pulls, gh_manage_branches, gh_manage_releases, gh_manage_actions all use a single 'operation' enum parameter, creating 6 mega-tools instead of focused single-purpose tools. This violates the single-responsibility pattern and forces LLMs to reason about operation selection rather than tool selection.
Comprehensive GitHub Actions management - workflows, runs, artifacts, and automation
Comprehensive GitHub branch management - create, delete, get, list, and manage branch protection settings
Comprehensive GitHub issue management - create, update, close, assign, label, comment, search, and list issues
Comprehensive GitHub pull request management - create, update, merge, review, approve, request changes, list, and get pull requests
Comprehensive GitHub release management - create, update, delete, get, list, upload assets, and manage release information
Comprehensive GitHub repository management - create, delete, get, list, update, fork, and manage repository settings
Mega-tools with operation enums: gh_manage_repos, gh_manage_issues, gh_manage_pulls, gh_manage_branches, gh_manage_releases, gh_manage_actions each accept 8-10 different operations via a single 'operation' enum parameter. This violates single-responsibility principle, LLMs must reason about operation selection instead of tool selection, increasing cognitive load and error rates.
Descriptions lack LLM-optimized guidance. Tool descriptions state WHAT the tool does but not WHEN to use it vs similar tools. E.g., gh_manage_issues description does not explain when to call it vs gh_search (which also searches issues). Descriptions average ~120 chars; baseline for A+ is 50-200 chars with clear selection criteria.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 54 | 2026-07-28+ | v2 |
Comprehensive GitHub search - repositories, code, issues, pull requests, users, and topics
Output schemas not documented. Tools return ToolOutput with content array but no schema describing what fields are in the returned objects (e.g., what does a repo object contain? what fields does an issue response include?). LLMs cannot plan downstream calls without knowing response structure.
Parameter descriptions lack actionable constraints. Many parameters (e.g., 'body', 'description', 'comment_body') have generic descriptions without format guidance, length limits, or markdown support hints. Baseline: descriptions should state expected format, range, and allowed values explicitly.
No error recovery guidance in tool definitions. Error handling is reported as true but tool descriptions do not include recovery hints (e.g., 'If user not found, call gh_search with a partial name'). Agents need explicit guidance on what to do when a call fails.