blob: 11b37e3cbc378e25505b4d3870a10e8ceb08908b [file] [log] [blame] [view]
# 🐍 Gerrit MCP Server
An MCP (Model Context Protocol) server for interacting with the Gerrit code
review system. This server allows a language model like Gemini to query changes,
retrieve details, and manage reviews by executing `curl` commands against the
Gerrit REST API.
This server can be run as a persistent **HTTP server** or on-demand via **STDIO**.
## 📚 Documentation
For detailed information, please see the documents in the `docs/` directory:
* **[Configuration](docs/configuration.md)**: A detailed guide to the `gerrit_config.json` file and all authentication methods.
* **[Testing Guide](docs/testing.md)**: Instructions on how to run the unit, integration, and E2E tests.
* **[Gemini CLI Setup](docs/gemini-cli.md)**: How to configure the Gemini CLI to use this server.
* **[Best Practices](docs/best_practices.md)**: Tips for using the server effectively.
* **[Contributing](docs/contributing.md)**: Guidelines for contributing to the project.
* **[Available Tools](docs/available_tools.md)**: A list of all available tools and their descriptions.
* **[Example Use Cases](docs/use_cases.md)**: Scenarios demonstrating how to use the server.
## 🚀 Getting Started
### 1. Prerequisites
Before you begin, ensure you have the following tools installed and available in
your system's `PATH`.
* **Python 3.11+**: The build script requires a modern version of Python.
* **curl**: The standard command-line tool for transferring data with URLs.
### 2. Build the Environment
Run the build script from the root of the `gerrit-mcp-server` project directory.
This will create a Python virtual environment, install all dependencies, and
make the server ready to run.
```bash
./build-gerrit.sh
```
### 3. Configure the Server
You will need to create a `gerrit_config.json` file inside the
`gerrit_mcp_server` directory. Copy the provided sample file
`gerrit_mcp_server/gerrit_config.sample.json` and customize it for your
environment. See the **[Configuration Guide](docs/configuration.md)** for
details on all available options.
```bash
cp gerrit_mcp_server/gerrit_config.sample.json gerrit_mcp_server/gerrit_config.json
```
### 4. Run the Server (HTTP Mode)
To run the server as a persistent background process, use the `server.sh` script:
* **Start the server:**
```bash
./server.sh start
```
* **Check the status:**
```bash
./server.sh status
```
* **Stop the server:**
```bash
./server.sh stop
```
For on-demand STDIO mode, please see the **[Gemini CLI Setup Guide](docs/gemini-cli.md)**.
### Security
This is not an officially supported Google product. This project is not
eligible for the [Google Open Source Software Vulnerability Rewards
Program](https://bughunters.google.com/open-source-security).