Production-grade MCP server providing LLMs deep GitHub access to repos, issues, PRs, actions, code search, and more
Server has 24 well-named tools with consistent verb_noun patterns (search_, get_, list_, create_, manage_). All tools have descriptions (avg ~80 chars, baseline 194). Input schemas are present with typed parameters and descriptions. However, output schemas are NOT documented, critical gap for LLM planning. Error handling is minimal (generic try-catch). No tool annotations (readOnlyHint, destructiveHint). Parameter descriptions are brief but present. Missing: enum constraints on sort/order/state params, pagination guidance in descriptions, and recovery hints in error messages.
Create a new issue in a repository
Create a new label in a repository
Get information about a specific branch
Get detailed information about a specific commit
Get the content of a file from a repository
Get detailed information about a specific issue
Get comments on a specific issue
Get detailed information about a specific pull request
Output schemas not documented. LLMs cannot plan downstream tool calls or extract required fields (e.g., what fields does get_repository return? Does it include owner, stars, language?). This forces agents to guess or make extra discovery calls.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Agents cannot distinguish safe reads from destructive writes. create_issue, create_label, manage_labels should be marked destructiveHint=true.
Enum constraints missing on sort/order/state parameters. E.g., list_issues accepts sort='created|updated|comments' but schema shows type:string without enum. LLMs may hallucinate invalid values like sort='relevance'.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 47 | 2026-07-28+ | v2 |
Get the files changed in a pull request
Get reviews on a specific pull request
Get detailed information about a specific repository
Get statistics about a repository including contributors, commit activity, code frequency, and participation
Get details about a specific workflow run
Get logs from a workflow run
List branches in a repository
List commits in a repository
List contents of a directory in a repository
List issues in a repository with filtering and sorting options
List labels in a repository
List pull requests in a repository with filtering and sorting options
List workflow runs for a repository
Add or remove labels from an issue or pull request
Search for code across repositories
Search for repositories on GitHub
Error handling is generic (try-catch with message only). No recovery guidance. E.g., if get_file_content fails with 'File not found', agent has no hint to try list_directory first. Errors should suggest next steps.
Pagination parameters (page, per_page) present but no guidance in descriptions. LLMs don't know default limits or max page size. Should state: 'Results paginated; default per_page=30, max=100. Use page=1,2,3... for iteration.'