Gerrit Review MCP Server
by cayirtepeomer
This MCP server provides integration with Gerrit code review system, allowing AI assistants to review code changes and their details through a simple interface. It offers a streamlined toolset for code review.
Last updated: N/A
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
- Clone this repository:
git clone <repository-url>
cd gerrit-review-mcp
- 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
- Install this package in editable mode with its dependencies:
pip install -e .
Configuration
- 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
- 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:
- Verify your HTTP password is correctly set
- Check GERRIT_HOST setting
- Ensure HTTPS access is enabled on Gerrit server
- Test connection using curl:
curl -u "username:http-password" https://your-gerrit-host/a/changes/
- Verify Gerrit access permissions for your account
License
This project is licensed under the MIT License.
Contributing
We welcome contributions! Please:
- Fork the repository
- Create a feature branch
- Make your changes
- Submit a pull request