Gerrit MCP服务器
Gerrit的模型上下文协议(MCP)服务器,使AI助手能够与Gerrit代码评论进行交互、创建评论和发布评论。
概述
此服务器实现了用于与Gerrit代码审查交互的模型上下文协议(MCP)。它使AI模型能够检索提交消息,创建草稿评论,并通过定义良好的工具发布评论。
特性
- 获取Gerrit更改的提交消息
- 创建单个或多个草稿评论
- 直接发布评论
- 完全支持特定行和多行评论
- 支持未解决/已解决的评论状态
需求
- Gerrit实例(云、服务器或DC)
- 用于身份验证的HTTP凭据
- Python 3.8+
设置
1.克隆或导航到此目录
cd /home/cohesity/workspace/GerritMCPServer2.安装依赖项
此项目使用JiraMCPServer的共享虚拟环境:
source /home/cohesity/workspace/JiraMCPServer/venv/bin/activate
pip install -r requirements.txt或者,创建一个新的虚拟环境:
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt3.配置环境变量
创建一个 .env 项目根目录中的文件:
cp .env.example .env编辑 .env 并填写您的Gerrit凭据:
GERRIT_HOST=your-gerrit-host.com
GERRIT_USERNAME=your-username
GERRIT_PASSWORD=your-http-password注: 要生成HTTP密码,请执行以下操作:
- 转到您的Gerrit实例
- 单击您的个人资料图标→ 设置
- 导航到HTTP凭据
- 生成新密码
用法
MCP检验员测试
测试服务器最简单的方法是使用内置的MCP检查器:
source /home/cohesity/workspace/JiraMCPServer/venv/bin/activate
mcp dev gerrit_mcp_server.py这将在浏览器中启动MCP检查器。要连接,请执行以下操作:
- 在“命令”字段中,输入Python可执行文件的路径:
/home/cohesity/workspace/JiraMCPServer/venv/bin/python- 在“Args”字段中,输入服务器脚本的完整路径:
/home/cohesity/workspace/GerritMCPServer/gerrit_mcp_server.py- 点击“连接”启动MCP服务器
- 测试检查器界面中的可用工具
运行服务器
要直接运行服务器,请执行以下操作:
python gerrit_mcp_server.py与Claude Desktop集成
添加到您的 claude_desktop_config.json:
{
"mcpServers": {
"gerrit": {
"command": "/home/cohesity/workspace/JiraMCPServer/venv/bin/python",
"args": [
"/home/cohesity/workspace/GerritMCPServer/gerrit_mcp_server.py"
]
}
}
}重要提示: 为Python二进制文件和服务器脚本使用完整的绝对路径。
可用工具
此MCP服务器提供了4个与Gerrit交互的主要工具:
- get_commit_message -检索更改修订的提交消息
- 创建草稿 -创建单个草稿评论
- create_draft_commits -一次创建多个草稿评论
- publish_review -立即发布评论(不是草稿)
有关所有可用工具的详细文档,包括参数、返回值和使用示例,请参阅 TOOLS.md.
可用提示
此MCP服务器提供提示,指导AI助手执行代码审查:
- code_review_指令 -针对单片微服务存储库(Go、C++、Shell、Protocol Buffers)的全面分步代码审查工作流程
如何使用提示
在Claude Desktop或兼容的AI助手中,使用更改ID调用它:
Use the code_review_instructions prompt with change_id=12345或者更自然:
Review Gerrit change 12345 using the code_review_instructions prompt参数:
change_id(必填):Gerrit更改ID或编号以进行审核revision_id(可选):要审查的修订(默认:“当前”)
例子:
Use code_review_instructions prompt for change 12345, revision 2提示包括:
- 说明中预先填写的变更ID和修订
- 从理解上下文到生成反馈的分步工作流程
- 与Gerrit和JIRA MCP工具集成
- 特定语言的最佳实践(Go、C++、Shell脚本、协议缓冲区)
- 微服务架构指南
- 用于评审反馈的结构化JSON输出格式
示例用例
获取提交消息
get_commit_message(
change_id="12345",
revision_id="current"
)创建草稿评论
create_draft_comments(
change_id="12345",
revision_id="current",
comments=[
{
"path": "src/main.py",
"line": 42,
"message": "Consider using a more descriptive variable name",
"unresolved": True
},
{
"path": "src/util.py",
"line": 15,
"message": "Good refactoring!",
"unresolved": False
}
]
)发布带有评论的评论
publish_review(
change_id="12345",
revision_id="current",
comments={
"src/main.py": [
{"line": 10, "message": "Fix this bug", "unresolved": True},
{"line": 20, "message": "Good work"}
]
},
review_message="Overall looks good, a few minor issues to address"
)项目结构
GerritMCPServer/
├── gerrit_client/
│ ├── __init__.py
│ ├── client.py # Gerrit API client with authentication
│ └── changes.py # Change/revision operations
├── models/
│ └── __init__.py # Data models and schemas
├── gerrit_mcp_server.py # Main MCP server with tool definitions
├── requirements.txt # Python dependencies
├── .env.example # Environment variable template
├── .gitignore # Git ignore rules
├── README.md # This file
└── TOOLS.md # Detailed tool documentation建筑
- gerrit_mcp_server.py:使用FastMCP实现主服务器
- gerrit_client/client.py:Gerrit API的HTTP客户端,带身份验证
- gerrit_client/changes.py:变更操作的业务逻辑
- 模型/:数据模型和常量
错误处理
服务器包括全面的错误处理:
- 401未经授权:凭据无效
- 404未找到:更改或修订不存在
- 网络错误:连接超时和失败
- 验证错误:参数或数据无效
所有错误都会记录到stderr中,并以结构化格式返回。
技术细节
Gerrit API规范
- 基本URL:
https://{GERRIT_HOST}/a/(经过身份验证的端点) - XSSI保护:Gerrit前缀
)]}'对响应进行自动剥离 - 身份验证:使用用户名和密码进行HTTP基本身份验证
- 草稿注释:使用PUT方法创建
- 评论发布:使用POST到评论端点
评论结构
注释支持以下字段:
{
"path": "file/path.ext", # Required
"line": 42, # Required
"message": "Comment text", # Required
"unresolved": True, # Optional (default: True)
"range": { # Optional (for multi-line comments)
"start_line": 40,
"start_character": 0,
"end_line": 45,
"end_character": 10
}
}贡献
该服务器遵循MCP规范以及JiraMCPServer和Confluence MCPServer建立的架构模式。
相关项目
- JiraMCPServer 服务器 -Jira的MCP服务器
- Confluence MCP服务器 -Confluence的MCP服务器
- gerrit审核助理 -AI驱动的Gerrit审核助手
许可证
MIT许可证
