gerrit-code-review-mcp

gerrit-code-review-mcp

3.4

If you are the rightful owner of gerrit-code-review-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

This MCP server provides integration with the Gerrit code review system, allowing AI assistants to review code changes and their details through a simple interface.

Gerrit Review MCP Server

This MCP server provides integration with Gerrit code review system, allowing AI assistants to review code changes and their details through a simple interface.

Features

The server provides a streamlined toolset for code review:

Fetch Change Details

fetch_gerrit_change(change_id: str, patchset_number: Optional[str] = None)
  • Fetches complete change information including files and patch sets
  • Shows detailed diff information for each modified file
  • Displays file changes, insertions, and deletions
  • Supports reviewing specific patch sets
  • Returns comprehensive change details including:
    • Project and branch information
    • Author and reviewer details
    • Comments and review history
    • File modifications with diff content
    • Current patch set information

Compare Patchset Differences

fetch_patchset_diff(change_id: str, base_patchset: str, target_patchset: str, file_path: Optional[str] = None)
  • Compare differences between two patchsets of a change
  • View specific file differences or all changed files
  • Analyze code modifications across patchset versions
  • Track evolution of changes through review iterations

Example Usage

Review a complete change:

# Fetch latest patchset of change 23824
change = fetch_gerrit_change("23824")

Compare specific patchsets:

# Compare differences between patchsets 1 and 2 for change 23824
diff = fetch_patchset_diff("23824", "1", "2")

View specific file changes:

# Get diff for a specific file between patchsets
file_diff = fetch_patchset_diff("23824", "1", "2", "path/to/file.swift")

Prerequisites

  • Python 3.10 or higher (Python 3.11 recommended)
  • Gerrit HTTP access credentials
  • HTTP password generated from Gerrit settings
  • Access to the mcp[cli] package repository (private package)

Installation

Installing via Smithery

To install gerrit-code-review-mcp for Claude Desktop automatically via Smithery:

npx -y @smithery/cli install @cayirtepeomer/gerrit-code-review-mcp --client claude

Manual Installation

  1. Clone this repository:
git clone <repository-url>
cd gerrit-review-mcp
  1. Create and activate a virtual environment:
# For macOS/Linux:
python -m venv .venv
source .venv/bin/activate

# For Windows:
python -m venv .venv
.venv\Scripts\activate
  1. Install this package in editable mode with its dependencies:
pip install -e .

Configuration

  1. Set up environment variables:
export GERRIT_HOST="gerrit.example.com"  # Your Gerrit server hostname
export GERRIT_USER="your-username"       # Your Gerrit username
export GERRIT_HTTP_PASSWORD="your-http-password"  # Your Gerrit HTTP password

Or create a .env file:

GERRIT_HOST=gerrit.example.com
GERRIT_USER=your-username
GERRIT_HTTP_PASSWORD=your-http-password
  1. Generate HTTP password:
  • Log into your Gerrit web interface
  • Go to Settings > HTTP Credentials
  • Generate new password
  • Copy the password to your environment or .env file

MCP Configuration

To use this MCP server with Cursor, you need to add its configuration to your ~/.cursor/mcp.json file. Here's the required configuration:

{
  "mcpServers": {
    "gerrit-review-mcp": {
      "command": "/path/to/your/workspace/gerrit-code-review-mcp/.venv/bin/python",
      "args": [
        "/path/to/your/workspace/gerrit-code-review-mcp/server.py",
        "--transport",
        "stdio"
      ],
      "cwd": "/path/to/your/workspace/gerrit-code-review-mcp",
      "env": {
        "PYTHONPATH": "/path/to/your/workspace/gerrit-code-review-mcp",
        "VIRTUAL_ENV": "/path/to/your/workspace/gerrit-code-review-mcp/.venv",
        "PATH": "/path/to/your/workspace/gerrit-code-review-mcp/.venv/bin:/usr/local/bin:/usr/bin:/bin"
      },
      "stdio": true
    }
  }
}

Replace /path/to/your/workspace with your actual workspace path. For example, if your project is in /Users/username/projects/gerrit-code-review-mcp, use that path instead.

Make sure all paths in the configuration point to:

  • Your virtual environment's Python interpreter
  • The project's server.py file
  • The correct working directory
  • The virtual environment's bin directory in the PATH

Implementation Details

The server uses Gerrit REST API to interact with Gerrit, providing:

  • Fast and reliable change information retrieval
  • Secure authentication using HTTP digest auth
  • Support for various Gerrit REST endpoints
  • Clean and maintainable codebase
  • HTTPS encryption for secure communication

Troubleshooting

If you encounter connection issues:

  1. Verify your HTTP password is correctly set
  2. Check GERRIT_HOST setting
  3. Ensure HTTPS access is enabled on Gerrit server
  4. Test connection using curl:
    curl -u "username:http-password" https://your-gerrit-host/a/changes/
    
  5. Verify Gerrit access permissions for your account

License

This project is licensed under the MIT License.

Contributing

We welcome contributions! Please:

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Submit a pull request