26 tools with complete schemas and descriptions. Naming follows verb_noun convention well (create_, get_, list_, search_, update_, merge_). Descriptions are present but often generic (avg ~80 chars, below 194-char baseline). Parameter descriptions vary: some detailed, others minimal. Output schemas not documented. Error handling present but recovery guidance sparse. Missing tool annotations (readOnlyHint, destructiveHint). No idempotency guarantees stated. Composition is sound, tools are single-responsibility and chainable via IDs.
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
Output schemas not documented. LLMs cannot predict response structure or plan downstream tool calls. No documentation of pagination, field types, or chaining IDs.
Tool annotations missing. No readOnlyHint, destructiveHint, or idempotentHint declared. LLMs cannot distinguish safe reads from destructive writes (e.g., merge_pull_request vs get_pull_request).
Error handling lacks recovery guidance. formatGitHubError() returns categorized errors but does not suggest next steps (e.g., 'Try search_users() with partial name' for not-found errors).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 55 | 2026-07-28+ | v2 |
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
Descriptions are generic and brief (avg ~80 chars vs 194-char baseline). Many lack context on WHEN to use the tool or dependencies. E.g., 'Search for GitHub repositories' does not explain query syntax or when to call it vs get_file_contents.
Pagination not consistently documented. list_issues, list_pull_requests, and search tools accept page/per_page but descriptions do not state result limits or total count availability.