Server has 27 tools with complete input schemas derived from Zod validators and descriptions present for all tools. Naming follows verb_noun convention consistently (create_, get_, list_, search_, update_, delete_). However, parameter descriptions are minimal (often 10-30 chars), lacking actionable constraints, format guidance, and dependency hints. Output schemas are not documented, LLMs cannot predict response structure. Error handling is categorized (GitHubError subclasses) but recovery guidance is absent from tool descriptions. No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk levels (WRITE, IRREVERSIBLE, DESTRUCTIVE). Destructive operations (delete_repository, merge_pull_request) lack confirmation or dry-run patterns.
Add a comment to an existing issue
Create a new branch in a GitHub repository
Create a new issue in a GitHub repository
Create or update a single file in a GitHub repository
Create a new pull request in a GitHub repository
Create a review on a pull request
Create a new GitHub repository in your account or in an organization
Parameter descriptions are minimal (10-30 chars) and lack actionable constraints. E.g., 'Branch to create/update the file in' does not specify format, valid characters, or whether it must exist. LLMs cannot validate input without explicit constraints.
Output schemas are not documented. Tool descriptions state what they do but not what fields the response contains. LLMs cannot plan downstream tool calls or extract required IDs without knowing response structure.
Destructive operations (delete_repository, merge_pull_request) lack confirmation or dry-run patterns. Agents can irreversibly delete repos or merge PRs without safeguards. No tool description warns of irreversibility.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 58 | 2026-07-28+ | v2 |
Delete a GitHub repository
Fork a GitHub repository to your account or specified organization
Get the contents of a file or directory from a GitHub repository
Get details of a specific issue in a GitHub repository.
Get details of a specific pull request
Get the review comments on a pull request
Get the list of files changed in a pull request
Get the reviews on a pull request
Get the combined status of all status checks for a pull request
Get list of commits of a branch in a GitHub repository
List issues in a GitHub repository with filtering options
List and filter repository pull requests
Merge a pull request
Push multiple files to a GitHub repository in a single commit
Search for code across GitHub repositories
Search for issues and pull requests across GitHub repositories
Search for GitHub repositories
Search for users on GitHub
Update an existing issue in a GitHub repository
Update a pull request branch with the latest changes from the base branch
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk levels assigned (READ_ONLY, WRITE, IRREVERSIBLE, DESTRUCTIVE). Protocol supports these hints; server does not use them.
Error handling is categorized internally (GitHubError subclasses) but tool descriptions do not guide recovery. E.g., 'Not Found' error does not suggest calling search_repositories() first. LLMs receive no actionable next steps.