Gemini PR Reviews MCP Server
Fetch Gemini Code Assist PR reviews from GitHub. Auto-detects last PR, filters reviews after your last /gemini review comment, and returns raw JSON.
Features
- Auto-Auth — Uses
ghCLI token automatically, falls back toGITHUB_TOKENenv var - Smart Defaults — Auto-detects repository owner and last PR number
- Filtered Reviews — Get only reviews after your last
/gemini reviewcomment - All Comment Types — PR reviews, line comments, and issue comments
- Full Pagination — Handles large PRs with many comments
- Structured Output — Comments come back as typed JSON with per-kind counts, not a text blob
- Progress Reporting — Long fetches report which stage they are on
- Review Resource —
review://{owner}/{repo}/{pr}reads a PR's full Gemini history directly - Prompt —
address_reviewwalks the model through triaging and fixing the findings
Quick Start
Claude Code
# If you have gh CLI authenticated, no token needed:
claude mcp add gemini-reviews -- uvx gemini-reviews-mcp
# Or with explicit token:
claude mcp add gemini-reviews \
-e GITHUB_TOKEN="ghp_your_token" \
-- uvx gemini-reviews-mcp
Claude Desktop
Add to your config file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"gemini-reviews": {
"command": "uvx",
"args": ["gemini-reviews-mcp"]
}
}
}
If
ghCLI is installed and authenticated, noGITHUB_TOKENenv var is needed.
Cursor
Add to ~/.cursor/mcp.json:
{
"mcpServers": {
"gemini-reviews": {
"command": "uvx",
"args": ["gemini-reviews-mcp"]
}
}
}
Windsurf
Add to Windsurf MCP config:
{
"mcpServers": {
"gemini-reviews": {
"command": "uvx",
"args": ["gemini-reviews-mcp"]
}
}
}
VS Code
Add to your VS Code settings (JSON):
"mcp": {
"servers": {
"gemini-reviews": {
"type": "stdio",
"command": "uvx",
"args": ["gemini-reviews-mcp"]
}
}
}
Gemini CLI
Add to ~/.gemini/settings.json:
{
"mcpServers": {
"gemini-reviews": {
"command": "uvx",
"args": ["gemini-reviews-mcp"]
}
}
}
GitHub Copilot
Add to ~/.copilot/mcp-config.json:
{
"mcpServers": {
"gemini-reviews": {
"command": "uvx",
"args": ["gemini-reviews-mcp"]
}
}
}
OpenAI Codex
Add to ~/.codex/config.toml:
[mcp_servers.gemini-reviews]
command = "uvx"
args = ["gemini-reviews-mcp"]
Install from Source
cd gemini-reviews-mcp
pip install -e .
Authentication
The server resolves GitHub authentication in this order:
-
ghCLI (preferred) — If GitHub CLI is installed and authenticated (gh auth login), the token is obtained automatically viagh auth token. No configuration needed. -
GITHUB_TOKENenv var (fallback) — Set manually ifghCLI is not available:# Create a token at https://github.com/settings/tokens with `repo` scope export GITHUB_TOKEN="ghp_your_token_here"
-
No token — Works for public repos only, with 60 requests/hour rate limit.
Tool
get_gemini_reviews — Fetch Gemini Code Assist PR reviews
Get Gemini Code Assist reviews from a GitHub PR. By default, fetches only reviews after your last /gemini review comment.
| Parameter | Type | Required | Description |
|---|---|---|---|
repo |
string | Yes | Repository name (repo) or full path (owner/repo) |
pr |
integer | No | PR number (uses last PR if omitted) |
after_last_review |
boolean | No | Only fetch reviews after your last /gemini review comment (default: true) |
username |
string | No | GitHub username for filtering (defaults to authenticated user) |
Returns structured output:
| Field | Type | Description |
|---|---|---|
repo |
string | Resolved owner/repo |
pr |
integer | Resolved PR number |
after_date |
string | null | Cutoff applied, or null when the whole history was returned |
counts |
object | reviews, line_comments, issue_comments |
comments |
array | Reviews first, then line comments, then issue comments; each group oldest first |
Missing token, unresolvable owner, or no PR found are returned as tool errors the model can act on, not as text that looks like a successful answer.
Resources
| URI | Description |
|---|---|
review://{owner}/{repo}/{pr} |
Every Gemini comment on that PR, as JSON |
Prompts
| Name | Description |
|---|---|
address_review |
Fetch the review, rank the findings by severity, fix or justify each one |
Usage Examples
# Simplest — auto-detect owner, last PR, filtered reviews
Use get_gemini_reviews for repo MyProject
# Specific PR
Use get_gemini_reviews for repo MyProject pr 42
# Get ALL reviews (not just after last comment)
Use get_gemini_reviews for repo MyProject with after_last_review false
# Full repo path
Use get_gemini_reviews for repo someone/TheirRepo
Requirements
Python 3.10+ and MCP SDK 2.x (mcp>=2.2,<3). The server speaks the 2026-07-28 protocol
revision and still serves older MCP clients from the same process.
License
MIT
Metadata
Release files for gemini-reviews-mcp 2.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| gemini_reviews_mcp-2.0.0.tar.gz | 14.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| gemini_reviews_mcp-2.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 25.8 kB
Release files / gemini_reviews_mcp-2.0.0.tar.gz
| Download URL | gemini_reviews_mcp-2.0.0.tar.gz |
|---|---|
| Size | 14.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
26b71f69ab6f0db57ac93b763553b55d08f9ead26c0178ccebe705525a21a07a
|
|
BLAKE2b-256 checksum How to use checksums |
8c1e4d35985ab43f96abdbf490f7cb4765e173b2d4cc1356fc27335616b1a13b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.11
|
Release files / gemini_reviews_mcp-2.0.0-py3-none-any.whl
| Download URL | gemini_reviews_mcp-2.0.0-py3-none-any.whl |
|---|---|
| Size | 11.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a2cddae9313535f3475f28f6b200057560132ce359afb8696199f0ca5b2837d5
|
|
BLAKE2b-256 checksum How to use checksums |
9d790e6a0aa0ed10a806c68389eac91f85dd48eef674cfce79b6e159e4811ac4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.11
|