一个完全独立的基于 Model Context Protocol (MCP) 的智能代码审查服务器,为AI编程工具提供专业的代码审查能力。
- 多维度代码审查:支持代码片段、Git提交、文件列表的全面审查
- 多AI服务支持:原生集成Gemini、ClaudeCode等AI服务
- 智能故障转移:自动切换AI服务,确保审查的可靠性
- 灵活配置管理:支持环境变量和.env文件配置
- 专业提示词系统:内置专业代码审查提示词,支持自定义
- 详细错误处理:提供用户友好的错误信息和解决建议
- 完整日志记录:详细的操作日志,便于调试和监控
- Node.js: >= 18.0.0
- AI服务API密钥: 至少配置一个AI服务(Gemini、ClaudeCode)
使用 npx 直接运行,无需全局安装:
# 直接启动 CodeRocket MCP 服务器
npx @yeepay/coderocket-mcp
# 查看帮助信息
npx @yeepay/coderocket-mcp help
# 查看版本信息
npx @yeepay/coderocket-mcp version
如果需要全局安装:
# 1. 全局安装CodeRocket MCP
npm install -g @yeepay/coderocket-mcp
# 2. 验证安装
npx -y @yeepay/coderocket-mcp --version
# 3. 运行测试
npx -y @yeepay/coderocket-mcp test
# 4. 启动服务器
npx -y @yeepay/coderocket-mcp
如果您想从源码安装或参与开发:
# 1. 克隆项目
git clone https://github.com/im47cn/coderocket-mcp.git
cd coderocket-mcp
# 2. 运行安装脚本
./install.sh
# 3. 或手动安装
npm install
npm run build
npm start
使用新的 review_changes
工具,无需手动传递代码内容,自动检测并审查当前Git仓库中所有未提交的变更:
# 零参数调用,自动审查所有未提交变更
npx @yeepay/coderocket-mcp review_changes
配置至少一个AI服务的API密钥:
# 配置Gemini(推荐)
export GEMINI_API_KEY="your_gemini_api_key"
# 或配置ClaudeCode
export CLAUDECODE_API_KEY="your_claudecode_api_key"
# 运行功能测试
npx -y @yeepay/coderocket-mcp test
编辑 ~/Library/Application Support/Claude/claude_desktop_config.json
:
{
"mcpServers": {
"coderocket": {
"command": "npx",
"args": ["-y", "@yeepay/coderocket-mcp@latest"],
"env": {
"GEMINI_API_KEY": "your_gemini_api_key"
}
}
}
}
对于其他支持MCP的AI工具,使用类似配置:
{
"mcp_servers": [
{
"name": "coderocket",
"command": ["coderocket-mcp"],
"environment": {
"AI_SERVICE": "gemini",
"GEMINI_API_KEY": "your_api_key"
}
}
]
}
CodeRocket MCP 提供以下工具:
审查代码片段,提供详细的质量分析和改进建议。
参数:
-
code
(string): 要审查的代码内容 -
language
(string, 可选): 代码语言 -
context
(string, 可选): 代码上下文信息 -
ai_service
(string, 可选): 指定AI服务 -
custom_prompt
(string, 可选): 自定义审查提示词
审查Git提交,分析代码变更的质量和影响。
参数:
-
commit_hash
(string, 可选): 提交哈希,默认为最新提交 -
repository_path
(string, 可选): Git仓库路径 -
ai_service
(string, 可选): 指定AI服务 -
custom_prompt
(string, 可选): 自定义审查提示词
审查指定文件列表,提供全面的代码质量评估。
参数:
-
files
(array): 要审查的文件路径列表 -
repository_path
(string, 可选): Git仓库路径 -
ai_service
(string, 可选): 指定AI服务 -
custom_prompt
(string, 可选): 自定义审查提示词
自动检测并审查当前Git仓库中所有未提交的变更,无需手动传递代码内容。
参数:
-
repository_path
(string, 可选): Git仓库路径,默认为当前目录 -
ai_service
(string, 可选): 指定AI服务 -
custom_prompt
(string, 可选): 自定义审查提示词 -
include_staged
(boolean, 可选): 是否包含已暂存的变更,默认为true -
include_unstaged
(boolean, 可选): 是否包含未暂存的变更,默认为true
重要说明:
-
边界情况: 当
include_staged=false
且include_unstaged=false
时,工具将返回错误提示"没有可审查的变更类型",避免静默无操作 -
变更类型: 已暂存变更指通过
git add
添加到暂存区的文件;未暂存变更指工作目录中已修改但未暂存的文件 - 优先级: 当两个标志都为 true 时,工具会合并审查所有类型的变更,不存在冲突
-
性能提示: 对于大型仓库,可设置
include_unstaged=false
仅审查已确认提交的暂存变更
配置AI服务设置,包括服务选择、API密钥等。
参数:
-
service
(string): AI服务名称 (gemini/claudecode) -
scope
(string, 可选): 配置范围 (project/global) -
api_key
(string, 可选): API密钥 -
timeout
(number, 可选): 超时时间 -
max_retries
(number, 可选): 最大重试次数
获取所有AI服务的状态信息,包括可用性和配置状态。
参数: 无
# AI服务配置
AI_SERVICE=gemini # 默认AI服务
AI_AUTO_SWITCH=true # 启用自动切换
AI_TIMEOUT=30 # 超时时间(秒)
AI_MAX_RETRIES=3 # 最大重试次数
# API密钥
GEMINI_API_KEY=your_gemini_key
CLAUDECODE_API_KEY=your_claudecode_key
# 日志配置
NODE_ENV=development # 开发模式启用详细日志
全局配置: ~/.coderocket/env
项目配置: ./.env
配置优先级:环境变量 > 项目配置 > 全局配置 > 默认值
{
"tool": "review_code",
"arguments": {
"code": "function add(a, b) {\n return a + b;\n}",
"language": "javascript",
"context": "简单的加法函数"
}
}
{
"tool": "review_commit",
"arguments": {
"repository_path": "/path/to/repo",
"commit_hash": "abc123"
}
}
{
"tool": "configure_ai_service",
"arguments": {
"service": "gemini",
"scope": "project",
"api_key": "your_api_key"
}
}
{
"tool": "get_ai_service_status",
"arguments": {}
}
CodeRocket MCP 使用统一的提示词系统,所有代码审查功能都使用同一个提示词模板:
-
统一模板:
git-commit-review-prompt.md
- 适用于所有代码审查场景 - 功能覆盖:Git 提交审查、代码片段审查、文件审查、变更审查
-
项目级提示词(最高优先级):
./prompts/git-commit-review-prompt.md
-
全局提示词:
~/.coderocket/prompts/git-commit-review-prompt.md
- 内置默认提示词(最低优先级)
创建项目级提示词:
mkdir -p prompts
echo "# 自定义代码审查提示词..." > prompts/git-commit-review-prompt.md
创建全局提示词:
mkdir -p ~/.coderocket/prompts
echo "# 全局代码审查提示词..." > ~/.coderocket/prompts/git-commit-review-prompt.md
- 一致性:所有审查功能使用相同的评判标准
- 维护性:只需维护一个提示词文件
- 可预测性:审查结果风格和格式保持一致
问题 1: MCP服务器启动失败
# 检查Node.js版本
node --version # 应该 >= 18.0.0
# 检查依赖安装
npm install
# 重新构建
npm run build
问题 2: AI服务不可用
# 检查API密钥配置
echo $GEMINI_API_KEY
echo $CLAUDECODE_API_KEY
# 检查配置文件
cat ~/.coderocket/env
cat .env
# 使用get_ai_service_status工具检查服务状态
npx @yeepay/coderocket-mcp get_ai_service_status
问题 3: 配置文件权限问题
# 检查配置目录权限
ls -la ~/.coderocket/
chmod 700 ~/.coderocket/
chmod 600 ~/.coderocket/env
# 检查项目配置文件
ls -la .env
chmod 600 .env
启用详细日志:
DEBUG=true NODE_ENV=development npx @yeepay/coderocket-mcp
查看详细错误信息:
# 启用调试模式
export DEBUG=true
export NODE_ENV=development
npx @yeepay/coderocket-mcp
coderocket-mcp/
├── src/
│ ├── index.ts # MCP服务器入口
│ ├── coderocket.ts # 核心服务类
│ ├── types.ts # 类型定义
│ └── logger.ts # 日志和错误处理
├── dist/ # 编译输出
├── package.json
├── tsconfig.json
└── README.md
# 安装开发依赖
npm install
# 开发模式运行
npm run dev
# 代码检查
npm run lint
# 格式化代码
npm run format
# 运行测试
npm test
- 在
types.ts
中定义新的类型 - 在
coderocket.ts
中实现业务逻辑 - 在
index.ts
中注册新的MCP工具 - 添加相应的测试用例
- 更新文档
我们欢迎社区贡献!请参考 CodeRocket-MCP贡献指南。
- Fork 本仓库
- 创建功能分支:
git checkout -b feature/new-feature
- 提交更改:
git commit -am 'Add new feature'
- 推送分支:
git push origin feature/new-feature
- 创建 Pull Request
本项目采用 Apache 2.0 许可证。
- Model Context Protocol - MCP官方文档
- 问题反馈 - 报告问题或建议
- NPM包 - NPM官方页面
功能 | CodeRocket-CLI | CodeRocket-MCP |
---|---|---|
独立运行 | ❌ (需要配置) | ✅ (开箱即用) |
MCP协议支持 | ❌ | ✅ |
代码片段审查 | ❌ | ✅ |
AI工具集成 | ❌ | ✅ |
多AI服务支持 | ✅ | ✅ |
Git Hooks集成 | ✅ | ❌ |
自动MR创建 | ✅ | ❌ |
详细审查报告 | ✅ | ✅ |
环境变量配置 | ✅ | ✅ |
CodeRocket MCP - 让AI编程工具拥有专业的代码审查能力 🚀