
代码审查 MCP 服务器
一个Gemini-CLI(目前为Gemini命令行接口),一个由模型上下文协议(MCP)服务器驱动的代码审查助手。
为什么这个项目存在
手动代码审查既耗时,又常常错失将静态分析与上下文相关的、人性化的反馈相结合的机会。本项目旨在试验一种MCP(可能指某种代码审查或开发工具平台)工具,使AI助手能够访问一个专门设计的审查员:
- 自动化处理从本地未提交更改中收集差异(diffs)和代码规范检查结果的繁琐工作。
- 将上下文信息输入到Gemini CLI中,以便模型能够专注于提供可操作的见解。
- 返回一个结构化的JSON评论,该评论能自然地融入MCP兼容的客户端中。
它的功能/作用是什么
- 通过标准输入输出(stdio)使用官方方法连接到MCP客户端
@modelcontextprotocol/sdk。 - 运行一个“混合”评审工作流程,该流程汇集了
git diff输出结果和代码检查器的发现。 - 在项目中灵活使用ESLint、JSHint和TypeScript,以最大限度地提高覆盖率。
- 安全地调用Gemini CLI,处理长提示和超时情况。
- 以TypeScript形式提供,配备Zod支持的类型以确保MCP响应的可预测性。
要求
- Node.js 18 或更高版本(全程使用 ES 模块和 AbortSignals)。
- npm(随Node.js一起安装)。
- Git(用于收集本地差异)。
- Google Gemini 命令行界面 (CLI)
gemini已安装并验证。请参阅 双子座快速入门指南 用于设置说明。
安装
git clone https://github.com//ndlovu-code-reviewer.git
cd ndlovu-code-reviewer
npm install
npm run build如果你计划对TypeScript源代码进行迭代,可以跳过 npm run build 并依赖于下文描述的开发脚本。
使用
启动MCP服务器
npm start服务器通过标准输入输出(stdio)进行通信,因此它可以与任何兼容MCP的客户端(例如,集成开发环境(IDE)插件或助手沙箱)进行注册。一旦连接成功,请调用 review-local-changes 用于触发混合分析并接收JSON格式评审结果的工具。
如何调用MCP工具
服务器提供了一个名为(此处可接具体工具名,但原文未给出)的单一工具 review-local-changes 对您的本地、未提交的代码更改进行全面分析。
先决条件:
- 你的Git仓库中肯定有未提交的更改
- 更改的文件应该是JavaScript、TypeScript或Vue文件(
.js,.ts,.tsx,.vue) - 必须安装并认证Gemini CLI
使用该工具:
一旦您的MCP客户端连接到服务器,您就可以调用 review-local-changes 工具。该工具:
- 自动检测变化 - 使用(某工具/方法)查找所有已修改/添加的JS/TS/Vue文件
git diff - 进行静态分析 - 执行最佳可用的代码检查工具(ESLint、JSHint 或 TypeScript 编译器)
- 执行AI审查 - 将组合后的上下文发送给Gemini CLI进行智能分析
- 返回结构化结果 - 提供一个包含发现结果和建议的JSON响应
如何与Claude Code一起使用它:
为了获得最佳效果,请明确使用代码审查功能。虽然自然语言请求有时也能奏效,但最可靠的方法是使用特定关键词:
最可靠的请求(推荐):
- “使用代码审查工具来分析我的更改”
- “在我本地的更改上运行代码审查”
- “对我未提交的更改进行全面代码审查”
- “使用静态分析工具分析我的代码更改”
自然语言请求(可能有效但可靠性较低):
- “请查看我的本地更改”
- “你能分析一下我所做的代码更改吗?”
显式调用工具(最可靠):
- “使用审查本地更改工具”
- “调用审查本地更改工具来检查我的修改”
该工具已进行了增强,加入了更详细的描述,以帮助Claude识别何时使用它,但具体提及“代码审查”、“分析更改”或直接说出工具名称,将为您带来最一致的结果。
示例输出格式:
{
"summary": "Overview of changes made",
"assessment": "Overall code quality evaluation",
"findings": [
{
"filePath": "src/example.js",
"lineNumber": 42,
"severity": "warning",
"category": "style",
"comment": "Detailed explanation of the issue",
"suggestion": "Specific recommendation for improvement"
}
]
}注: 如果未更改任何相关文件,该工具将返回“未更改相关文件”的消息,这是正常行为。
本地开发
npm run dev– 启动服务器,使用ts-node为了快速迭代。npm run build– 生成编译后的JavaScript输出dist/.
项目结构特意设计得较小:
src/– MCP服务器的TypeScript源代码。dist/– 由(某人/某工具)创建的编译型JavaScriptnpm run build.assets/– 静态资源,包括上述使用的标识。
从MCP客户端进行连接
在将服务器连接到任何客户端之前,请确保您已经运行 npm run build 所以 dist/index.js 存在。以下命令假设您从仓库根目录执行客户端,以便服务器可以读取您的 Git 工作区。
Claude Code(VS Code 扩展)
- 在 VS Code 中,打开命令面板(
Cmd/Ctrl+Shift+P) 并运行Claude: Edit Config File。
- 找到
mcpServers(如需创建)添加一个部分,并加入一条类似以下的条目:
{
"mcpServers": {
"ndlovu-code-reviewer": {
"command": "node",
"args": ["/absolute/path/to/ndlovu-code-reviewer/dist/index.js"],
"cwd": "/absolute/path/to/ndlovu-code-reviewer"
}
}
}- 保存文件并运行
Claude: Restart Claude Code(或重新加载VS Code)以便服务器显示在 工具。
- 启用该工具进行对话;Claude Code 将实时传输
review-local-changes结果直接显示在侧边栏。
Gemini 命令行界面 (CLI)
- 在项目根目录下运行:
gemini mcp add ndlovu-code-reviewer node $(pwd)/dist/index.js- 验证注册信息与
gemini mcp list。
- 发射;启动
gemini从同一个仓库目录中使用review-local-changes工具(例如,运行:tools在命令行界面(CLI)中选择它)。CLI 会启动服务器,并将标准输出(stdout)作为评审 JSON 返回。
Roo Code 翻译成中文是“鲁代码”或“鲁编程”(具体翻译可能根据上下文有所调整,但“鲁代码”较为直白且易于理解)。不过,需要注意的是,“Roo Code”可能是一个特定项目、工具或概念的名称,因此在没有具体上下文的情况下,翻译可能不完全准确。如果“Roo Code”有特定的含义或背景,建议根据具体情况进行翻译
- 打开Roo代码,并点击Roo面板顶部的服务器图标。
- 选择 添加 MCP 服务器 → STDIO 并填写:
- 名字: ndlovu-code-reviewer - 命令: node - 论点;论据: /absolute/path/to/ndlovu-code-reviewer/dist/index.js - 工作目录: /absolute/path/to/ndlovu-code-reviewer
- 保存配置并为您的工作区启用服务器。Roo 将其存储在全局(配置)中或(存储)在(某个位置,根据上下文可能需要具体指定,但原文未给出具体位置,所以这里简化为“在某个位置”)
mcp_settings.json或者这个项目.roo/mcp.json文件。
- 与队友分享,提交一个(注:这里的“commit a”可能需要根据上下文来具体翻译,因为“commit”在编程中常指提交代码,但在此处可能是一个泛指,所以翻译为“提交一个”以保持句子的通顺性)
.roo/mcp.json包含您首选的启动命令,例如:
{
"mcpServers": {
"ndlovu-code-reviewer": {
"command": "npm",
"args": ["run", "start"],
"cwd": "."
}
}
}Roo 会将工作目录解析为相对于项目根目录的路径,因此 npm run start 该脚本是基于仓库自身的包脚本构建的。
Codex CLI(注:CLI通常代表“Command Line Interface”,即命令行界面,但在此上下文中,“Codex CLI”可能是一个特定项目或工具的名称,直接翻译为“Codex 命令行界面”或保持原样以指代该特定项目或工具)
- 一次性注册服务器:
codex mcp add ndlovu-code-reviewer node $(pwd)/dist/index.js- 使用
codex mcp list确认入口后,从仓库根目录启动Codex。命令行界面(CLI)提供了review-local-changes作为一种工具,您可以在交互式运行中调用它。
做出贡献
非常欢迎贡献。如果您有新的工具想法、更优质的代码检查器,或是改进后的提示:
- 提出一个问题或展开讨论,以便我们明确范围。
- 克隆该仓库并创建一个功能分支。
- 在有助于未来贡献者的地方添加或更新文档/测试。
- 提交一个拉取请求,描述所做的更改以及你是如何验证这些更改的。
如果你不确定从哪里开始,欢迎随时联系我们——我们有很大的空间来提升评审员的能力、增加客户案例,并优化提示内容。
许可证
这个项目遵循ISC许可证。详见 LICENSE (如有)详情见下。
