MCP server for AI-powered GitHub PR review using Claude, Antigravity, or Codex CLI. Exposes PR fetching, diff analysis, and review generation as stdio MCP tools.
Server has 9 tools with complete schemas and descriptions. Naming follows verb_noun convention (list_, fetch_, generate_, post_, review_, open_). Descriptions are present (avg ~80 chars) but lack LLM-optimized guidance on WHEN to use each tool and dependencies between them. Parameters are typed with descriptions, but lack constraints (enums, ranges, patterns). Error handling is minimal, no recovery guidance or actionable error messages visible in tool definitions. Output schemas are not documented. Tools are well-composed (single responsibility) but lack pagination support for list_open_prs. No tool annotations (readOnlyHint/destructiveHint) despite clear risk levels.
Fetch the unified diff for a pull request.
Fetch structured pull request metadata for `repo` and `pr_number`.
Generate a Markdown review for a pull request without posting it.
Return whether the GitHub CLI is installed and authenticated.
List local AI providers that gh-pr-reviewer can invoke.
List open pull requests for a repository such as `owner/repo`.
Launch the desktop GUI app and load the specific repository and PR on startup.
No tool annotations (readOnlyHint/destructiveHint/idempotentHint) despite clear risk levels. post_pr_review and review_pr (with post=true) are destructive; others are read-only. LLMs cannot infer safety without explicit hints.
Output schemas not documented. Tools return data but LLMs cannot plan downstream calls without knowing field names and types. E.g., list_open_prs returns PR objects but structure is opaque.
Descriptions lack WHEN-to-use guidance and dependency hints. E.g., generate_pr_review does not state 'Call fetch_pr_diff first' or 'Use after fetch_pr_metadata'. LLMs must infer call order.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 56 | 2026-07-28+ | v2 |
Post an existing review body as a GitHub PR review comment.
Fetch metadata and diff, generate a Markdown review, and optionally post it.
list_open_prs lacks pagination support (no offset/cursor, no total count). Returning 20 PRs by default is reasonable, but no mechanism to fetch more. Large repos will hit the limit silently.
Parameter descriptions lack constraints. 'repo' accepts 'owner/repo' but no regex/format stated. 'provider' has a default but no enum of valid values visible in schema. LLMs may pass invalid values.