Git & GitHub integration — version control and GitHub operations
This server provides 20 git/GitHub tools with reasonable naming (git_*, gh_*) and consistent schema structure, but has significant gaps in parameter descriptions, output documentation, and error handling guidance. Most tool descriptions are present but brief (10-50 chars), leaving LLMs uncertain about when to use each tool over similar alternatives. Parameter descriptions exist but lack detail on constraints, formats, and dependencies. No visible output schema documentation means LLMs cannot predict what fields are returned or plan chained calls. Error handling is minimal, no recovery guidance or classification (retryable vs fatal). The server lands solidly in the 'fair/poor' range due to accumulated description and output schema gaps, despite decent tool organization.
Show GitHub Actions CI/CD workflow run status
Add a comment to a GitHub issue
Create a GitHub issue with optional labels and assignees
List GitHub issues with optional filters
Create a GitHub pull request
List GitHub pull requests with optional filters
Merge a GitHub pull request (merge, squash, or rebase)
Output schemas not documented. No visible response field definitions mean LLMs cannot predict what data is returned or plan downstream tool chaining. Example: git_log and git_diff return results but no schema shows field names, types, or structure.
Descriptions too brief and lack context on tool differentiation. 'Show working tree status' and similar 40-50 char descriptions do not explain WHEN to use git_status vs git_diff, or what the output contains. Descriptions should be 50-200 chars and include purpose + prerequisites.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 53 | 2026-07-28+ | v2 |
| 2026-03-09 | D | 56 | - | v1 |
Submit a review on a GitHub pull request (approve, comment, request changes)
Create a GitHub release with optional notes
Show GitHub repository metadata (stars, forks, languages, etc.)
Show line-by-line blame annotation for a file
Create, list, delete, or switch branches
Checkout a branch, tag, commit, or specific files
Stage files and create a commit with a message
Show diff between refs or working tree changes (staged or unstaged)
Show commit history with optional filters (author, date, file)
Merge a branch into the current branch
Stash or unstash working directory changes
Show working tree status (staged, unstaged, untracked files)
Create, list, or delete tags
Parameter descriptions are missing or minimal. 'path' parameter in all 20 tools has description 'Working directory path (defaults to current directory)' but no guidance on format/validation. Parameters like 'filter' in gh_pr_review and 'workflow' in gh_actions_status lack detail on what values are valid.
No error handling or recovery guidance. Test file shows 'validation_error' code for missing message in git_commit, but there is no recovery guidance (e.g., 'Message is required. Provide a string describing your changes'). No error classification (retryable/user-fixable/fatal) visible in error handling.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Tools like git_commit, git_branch (delete), gh_pr_merge, and gh_issue_create are modifying/destructive but lack explicit hints. Agents cannot infer which calls are safe to retry.
Parameter dependencies and constraints not documented. git_branch 'create' requires 'name', but 'base' is optional, no doc explains what base defaults to. gh_pr_create has 'draft' as boolean but no enum/example values. Enums are under-utilized (git_branch and git_tag have them; others lack clear constraint docs).
No pagination or result-limit documentation. Tools like git_log, gh_pr_list, gh_issue_list, and gh_actions_status likely return multiple results but no visible limit or pagination parameters (offset, limit, next_cursor). Large result sets risk context window overflow.
Tests show tools return plain text in 'text' field (see responseText helper), but no schema documents this or other response fields. Agents cannot extract structured data (commit hash, PR number, issue ID) for chaining unless they parse free-form text.