Gemini Code Review MCP
MCP server for AI-powered task list code reviews with PRD context
Installation
npx gemini-code-review-mcpAsk AI about Gemini Code Review MCP
Powered by Claude Β· Grounded in docs
I know everything about Gemini Code Review MCP. Ask me about installation, configuration, usage, or troubleshooting.
0/500
Reviews
Documentation
Gemini Code Review MCP

π AI-powered code reviews that understand your project's context and development progress
Transform your git diffs into actionable insights with contextual awareness of your project guidelines, task progress, and coding standards.
π Table of Contents
- Why Use This?
- Quick Start
- Available MCP Tools
- Configuration
- Key Features
- CLI Usage
- Troubleshooting
- Development
Why Use This?
- π― Context-Aware Reviews: Automatically includes your CLAUDE.md guidelines and project standards
- π Progress Tracking: Understands your task lists and development phases
- π€ AI Agent Integration: Seamless MCP integration with Claude Code and Cursor
- π Flexible Workflows: GitHub PR reviews, project analysis, or custom scopes
- β‘ Smart Defaults: Auto-detects what to review based on your project state
π Claude Code Installation
Option A: Install the MCP server to Claude Code as user-scoped MCP server:
claude mcp add-json gemini-code-review -s user '{"command":"uvx","args":["gemini-code-review-mcp"],"env":{"GEMINI_API_KEY":"your_key_here","GITHUB_TOKEN":"your_key_here"}}'
(-s user installs as user-scoped and will be available to you across all projects on your machine, and will be private to you. Omit -s user to install the as locally scoped.)
Option B: Install the MCP server to Claude Code as project-scoped MCP server:
claude mcp add-json gemini-code-review -s project /path/to/server '{"type":"stdio","command":"npx","args":["gemini-code-review"],"env":{"GEMINI_API_KEY":"your_key_here","GITHUB_TOKEN":"your_key_here"}}'
The command above creates or updates a .mcp.json file to the project root with the following structure:
{
"mcpServers": {
"gemini-code-review": {
"command": "/path/to/server",
"args": ["gemini-code-review"],
"env": {"GEMINI_API_KEY":"your_key_here","GITHUB_TOKEN":"your_key_here"}
}
}
}
Get your Gemini API key: https://ai.google.dev/gemini-api/docs/api-key
Get your GitHub token: https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token
Docs for setting up MCP for Claude Code: https://docs.anthropic.com/en/docs/claude-code/tutorials#set-up-model-context-protocol-mcp
Troubleshooting MCP Installation
If the MCP tools aren't working:
- Check your installation:
claude mcp list - Verify API key is set:
claude mcp get gemini-code-review - If API key shows empty, remove and re-add:
(Make sure you replaceclaude mcp remove gemini-code-review claude mcp add-json gemini-code-review -s user '{"type":"stdio","command":"npx","args":["@modelcontextprotocol/server-gemini-code-review"],"env":{"GEMINI_API_KEY":"your_key_here","GITHUB_TOKEN":"your_key_here"}}'/path/to/serverwith the path to your server executable) - Always restart Claude Desktop after any MCP configuration changes
π Available MCP Tools
| Tool | Purpose | Key Options |
|---|---|---|
generate_ai_code_review | Complete AI code review | project_path, model, scope |
generate_pr_review | GitHub PR analysis | github_pr_url, project_path |
ask_gemini | Generate context and get AI response | user_instructions, file_selections |
π Detailed Tool Examples
AI Code Review
// Quick project review (uses default model: gemini-2.0-flash)
{
tool_name: "generate_ai_code_review",
arguments: {
project_path: "/path/to/project"
}
}
// With advanced model
{
tool_name: "generate_ai_code_review",
arguments: {
project_path: "/path/to/project",
model: "gemini-2.5-pro", // Uses alias for gemini-2.5-pro-preview-06-05
thinking_budget: 15000 // Optional: thinking tokens (when supported)
}
}
GitHub PR Review
// Analyze GitHub pull request
{
tool_name: "generate_pr_review",
arguments: {
github_pr_url: "https://github.com/owner/repo/pull/123",
thinking_budget: 20000 // Optional: thinking tokens
}
}
// With reference documentation
{
tool_name: "generate_pr_review",
arguments: {
github_pr_url: "https://github.com/owner/repo/pull/123",
url_context: ["https://docs.api.com/v2/guidelines"] // Optional: Reference docs for the review
}
}
Ask Gemini (NEW!)
// Generate context from files and get AI response in one step
{
tool_name: "ask_gemini",
arguments: {
user_instructions: "Review for security vulnerabilities and suggest fixes",
file_selections: [
{ path: "src/auth.py" },
{ path: "src/database.py", line_ranges: [[50, 100]] }
],
project_path: "/path/to/project",
model: "gemini-2.5-pro"
}
}
// Simple query without files
{
tool_name: "ask_gemini",
arguments: {
user_instructions: "Explain the security implications of the current authentication approach",
include_claude_memory: true // Includes project guidelines
}
}
Common Workflows
Quick Project Review
Human: Generate a code review for my project
Claude: I'll analyze your project and generate a comprehensive review.
[Uses generate_ai_code_review with project_path]
GitHub PR Review
Human: Review this PR: https://github.com/owner/repo/pull/123
Claude: I'll fetch the PR and analyze the changes.
[Uses generate_pr_review with github_pr_url]
Custom Model Review
Human: Generate a detailed review using Gemini 2.5 Pro
Claude: I'll use Gemini 2.5 Pro for a more detailed analysis.
[Uses generate_ai_code_review with model="gemini-2.5-pro"]
File-Specific Review with AI
Human: Review auth.py and database.py lines 50-100 for security issues
Claude: I'll analyze those specific files for security vulnerabilities.
[Uses ask_gemini with file_selections and security-focused instructions]
Quick Code Question
Human: What are the performance implications of the current caching strategy?
Claude: I'll analyze your caching implementation and provide insights.
[Uses ask_gemini with user_instructions only, leveraging project context]
βοΈ Configuration
Environment Variables
| Variable | Required | Default | Description |
|---|---|---|---|
GEMINI_API_KEY | β | - | Your Gemini API key |
GITHUB_TOKEN | β¬ | - | GitHub token for PR reviews (create one) |
GEMINI_MODEL | β¬ | gemini-2.0-flash | AI model selection |
GEMINI_TEMPERATURE | β¬ | 0.5 | Creativity (0.0-2.0) |
THINKING_BUDGET | β¬ | Auto | Thinking tokens (Pro: 128-32768, Flash: 0-24576) |
Model Configuration
Default Models
- Primary Model:
gemini-2.0-flash- Fast, efficient model for code reviews - Summary Model:
gemini-2.0-flash-lite- Used internally for quick summaries
Model Aliases
For convenience, you can use these short aliases instead of full model names:
| Alias | Full Model Name | Features |
|---|---|---|
gemini-2.5-pro | gemini-2.5-pro-preview-06-05 | Advanced reasoning, thinking mode, URL context |
gemini-2.5-flash | gemini-2.5-flash-preview-05-20 | Fast, thinking mode, URL context |
Available Models
All models support code review, with varying capabilities:
With Thinking Mode + URL Context:
gemini-2.5-pro(alias) /gemini-2.5-pro-preview-06-05gemini-2.5-flash(alias) /gemini-2.5-flash-preview-05-20
With URL Context Only:
gemini-2.0-flash(default)gemini-2.0-flash-live-001
Basic Models:
gemini-1.5-progemini-1.5-flash(used for integration tests - cost-effective)
Usage Examples
// Using default model (gemini-2.0-flash)
{ tool_name: "generate_ai_code_review", arguments: { project_path: "/path" } }
// Using alias for advanced model
{ tool_name: "generate_ai_code_review", arguments: {
project_path: "/path",
model: "gemini-2.5-pro" // Automatically resolves to gemini-2.5-pro-preview-06-05
} }
// Using full model name
{ tool_name: "generate_ai_code_review", arguments: {
project_path: "/path",
model: "gemini-2.5-pro-preview-06-05"
} }
Automatic Configuration Discovery
When enabled with flags, the tool discovers and includes:
- π CLAUDE.md files at project/user/enterprise levels (use
--include-claude-memory) - π Cursor rules (
.cursorrules,.cursor/rules/*.mdc) (use--include-cursor-rules) - π Import syntax (
@path/to/file.md) for modular configs
Configuration in pyproject.toml
You can set default values in your pyproject.toml:
[tool.gemini]
temperature = 0.5
default_prompt = "Your custom review prompt"
default_model = "gemini-1.5-flash"
include_claude_memory = true
include_cursor_rules = false
enable_cache = true
cache_ttl_seconds = 900 # 15 minutes
Configuration precedence: CLI flags > Environment variables > pyproject.toml > Built-in defaults
β¨ Key Features
- π€ Smart Context - Optionally includes CLAUDE.md (use
--include-claude-memory), task lists (use--task-list), and project structure - π― Flexible Scopes - Review PRs, recent changes, or entire projects
- β‘ Model Selection - Choose between Gemini 2.0 Flash (speed) or 2.5 Pro (depth)
- π GitHub Integration - Direct PR analysis with full context
- π Progress Aware - Understands development phases and task completion
- π URL Context - Gemini automatically fetches and analyzes URLs in prompts (or use
--url-contextflag) - ποΈ Project Scaffolding - Initialize projects with recommended structure via
gemini-code-review-init - π Performance Optimized - Built-in caching layer for faster repeated operations
- π¨ Clear Mode Indication - Explicit feedback about Task-Driven vs General Review modes
π₯οΈ CLI Usage
Alternative: Command-line interface for development/testing
Installation
# Quick start with uvx (no install needed)
uvx gemini-code-review-mcp /path/to/project
# Or install globally
pip install gemini-code-review-mcp
Commands
# Initialize a new project with recommended structure
gemini-code-review-init
# Basic review (current directory)
generate-code-review
# Review specific project
generate-code-review /path/to/project
# Advanced options
generate-code-review . \
--scope full_project \
--model gemini-2.5-pro
# Use specific task list (overrides auto-discovery)
generate-code-review \
--task-list tasks/tasks-feature-x.md \
--scope specific_phase \
--phase-number 2.0
# With thinking budget (current directory)
generate-code-review --thinking-budget 20000 --temperature 0.7
# With URL context for framework-specific review
generate-code-review \
--file-instructions "Review my async implementation against the official docs" \
--url-context https://docs.python.org/3/library/asyncio.html
# File-based context generation (for debugging - does not call AI)
generate-file-context -f src/main.py -f src/utils.py:10-50 \
--user-instructions "Review for performance issues" \
-o context.md
# Meta-prompt only (current directory)
generate-meta-prompt --stream
Review Modes
The tool operates in one of three modes:
-
π General Review Mode: Default mode (no
--task-listflag)- Comprehensive code quality analysis
- Focuses on best practices and improvements
- Best for: Maintenance, refactoring, or exploratory reviews
-
π Task-Driven Mode: When
--task-listflag is used (opt-in)- Enable with:
generate-code-review . --task-list tasks-feature.md - Or auto-select latest:
generate-code-review . --task-list - Contextualizes review based on your current development phase
- Tracks progress against planned tasks
- Best for: Active development with defined milestones
- Enable with:
-
π GitHub PR Mode: When
--github-pr-urlis provided- Analyzes specific pull request changes
- Includes PR context and discussions
- Best for: Code review workflows
Supported File Formats
- π Task Lists:
/tasks/tasks-*.md- Track development phases - π PRDs:
/tasks/prd-*.md- Project requirements - π¦ Configs:
CLAUDE.md,.cursorrules- Coding standards
π Troubleshooting
- Missing API key? β Get one at ai.google.dev
- MCP not working? β Run
claude mcp listto verify installation - Old version cached? β Run
uv cache clean
π¦ Development
# Setup
git clone https://github.com/nicobailon/gemini-code-review-mcp
cd gemini-code-review-mcp
pip install -e ".[dev]"
# Testing commands
python -m pytest tests/ # Run all tests in venv
make lint # Check code style
make test-cli # Test CLI commands
Testing Configuration
The test suite includes both mocked unit tests and real API integration tests:
Unit Tests (Default)
- Fast execution: Mock all external API calls
- No API key required: Run without any setup
- Model configuration: Tests use
gemini-2.0-flashdefaults - Run with:
pytestorpython -m pytest tests/
Integration Tests (Optional)
- Real API calls: Uses
gemini-1.5-flashfor cost-effective testing - API key required: Set
GEMINI_API_KEYenvironment variable - Limited features: Tests only features supported by
gemini-1.5-flash(no thinking mode/URL context) - Run with:
pytest -m integrationorpytest tests/integration/
Running Tests
# Run only unit tests (default, fast)
pytest
# Run only integration tests (requires API key)
export GEMINI_API_KEY=your_key_here
pytest -m integration
# Run all tests including integration
pytest -m ""
# Run specific integration test
pytest tests/integration/test_gemini_real.py::TestGeminiRealAPI::test_basic_code_review_generation
# Verbose output with integration tests
pytest -v -m integration
Test Features
- Model verification: Ensures
gemini-1.5-flashis used for integration tests - Capability testing: Validates that unsupported features are properly handled
- Error handling: Tests graceful degradation with invalid inputs
- Temperature testing: Verifies model parameter effects
π€ Contributing
Contributions are welcome! Please feel free to submit a Pull Request. See CONTRIBUTING.md for development setup and guidelines.
Release Process
This project uses a manual release process. For maintainers:
- Run
./scripts/check-release-readiness.shto verify readiness - Follow MANUAL_RELEASE_GUIDE.md for detailed steps
- Or use
./scripts/release.shfor guided release process
π License
MIT License - see LICENSE file for details.
π₯ Credits
Built by Nico Bailon.
