返回市场
代码审查MCP

代码审查MCP

作者:praneybehl21 星标更新:2025-05-16

项目介绍

@vibesnipe/code-review-mcp

版本:1.0.0

这是一个MCP(模型上下文协议)服务器,提供了一个强大的工具,使用各种大型语言模型(LLMs)进行代码审查。该服务器设计为可以无缝集成到如Anthropic的Claude Code、Cursor、Windsurf或其他兼容MCP客户端的人工智能编码助手中。

注意: 此工具最初是为Claude Code创建的,但后来扩展支持其他人工智能IDE和Claude Desktop。请参阅Claude CodeCursorWindsurf的集成指南。

它分析git diff输出,包括暂存更改、与HEAD的差异或分支之间的差异,并根据任务描述和项目细节提供上下文化的审查。

功能

  • 审查git diff(暂存更改、当前HEAD、分支差异)。
  • 通过Vercel AI SDK与Google Gemini、OpenAI和Anthropic模型集成。
  • 允许指定任务描述、审查重点以及整体项目背景,以获得定制化的审查。
  • 输出清晰、可操作的markdown格式审查结果。
  • 设计为可以从您希望分析的任何Git仓库根目录运行。
  • 可通过npx轻松安装并立即使用。

兼容性

  • Node.js:需要版本18或更高。
  • 操作系统:适用于Windows、macOS和Linux。
  • Git:建议使用2.20.0或更高版本。

预备条件

  • Node.js:需要版本18或更高。
  • Git:必须已安装并在系统PATH中可访问。服务器执行git命令。
  • LLM提供商的API密钥:您需要使用计划使用的LLM提供商的API密钥。这些应设置为环境变量:
    • GOOGLE_API_KEY用于Google模型。
    • OPENAI_API_KEY用于OpenAI模型。
    • ANTHROPIC_API_KEY用于Anthropic模型。 这些可以在您的环境中全局设置,或者方便地在您当前正在审查的项目的根目录中的.env文件中设置。服务器会自动尝试加载它们。

安装及使用

使用此服务器的主要方式是通过npx,这确保您始终使用最新版本而无需全局安装。

推荐:使用npx

  1. 导航到您的项目: 打开终端并切换到您要审查的Git仓库的根目录。

    cd /path/to/your-git-project
    
  2. 运行MCP服务器: 执行以下命令:

    npx -y @vibesnipe/code-review-mcp
    

    该命令将下载(如果尚未缓存)并运行@vibesnipe/code-review-mcp服务器。您应该会在终端中看到类似以下的输出: [MCP Server] Code Reviewer MCP Server is running via stdio and connected to transport. 现在服务器正在运行,并等待MCP客户端(如Claude Code、Cursor或Windsurf)连接。

通过Smithery安装

要通过Smithery自动安装code-review-mcp供Claude Desktop使用:

npx -y @smithery/cli install @praneybehl/code-review-mcp --client claude

与Claude Code的集成

一旦claude-code-review-mcp服务器运行(理想情况下通过npx从项目的根目录运行):

  1. 作为MCP服务器添加到Claude Code: 在单独的终端中(或将在其中运行的终端),配置它以使用此MCP服务器。 如果全局安装并位于PATH中,Claude Code运行服务器的命令将是code-review-mcp;如果您希望Claude Code始终获取它,则使用npx ...命令。

    要将其添加到Claude Code:

    claude mcp add code-reviewer -s <user|local> -e GOOGLE_API_KEY="key" -- code-review-mcp 
    

    如果希望Claude Code使用npx(这是为了确保版本一致性而不进行全局安装的好做法):

    claude mcp add code-reviewer -s <user|local> -e GOOGLE_API_KEY="key" -- npx -y @vibesnipe/code-review-mcp
    

    这告诉Claude Code如何在请求“code-reviewer”工具集时启动MCP服务器。此配置可以是项目特定的(保存在项目中的.claude/.mcp.json中)或用户特定的(全局Claude Code设置)。

  2. 在Claude Code中使用智能斜杠命令: 在项目的.claude/commands/目录中创建自定义斜杠命令文件,以便轻松调用审查工具。包中包含几个示例命令,位于examples/claude-commands/目录下,您可以复制到您的项目中。

    这些改进的斜杠命令不需要手动指定任务描述或项目背景——它们利用Claude Code对您项目的现有了解和您当前的工作任务。

    使用斜杠命令在Claude Code中调用示例:

    claude > /project:review-staged-claude
    

    不需要额外参数!Claude将理解您当前的工作内容,并将其作为审查的背景。

    对于需要参数的命令(例如review-branch-custom-gemini.md,它使用自定义分支名称),可以直接在命令后传递它们:

    claude > /project:review-branch-custom-gemini main
    

    这将传递“main”作为$ARGUMENTS_BASE_BRANCH参数。

与现代AI IDE的集成

Cursor集成

Cursor是一个基于VS Code的流行AI驱动IDE,支持MCP服务器。以下是将代码审查MCP服务器与Cursor集成的方法:

  1. 配置Cursor的规则以进行代码审查

    创建或打开项目中的.cursor/rules/project.mdc文件,并添加以下部分:

    ## 斜杠命令
    
    /review-staged: 使用来自code-reviewer MCP服务器的perform_code_review工具来审查暂存更改。使用anthropic提供商和claude-3-7-sonnet-20250219模型。根据我们当前的对话上下文为基础的任务描述,并专注于代码质量和最佳实践。
    
    /review-head: 使用来自code-reviewer MCP服务器的perform_code_review工具来审查所有未提交的更改(HEAD)。使用openai提供商和o3模型。根据我们当前的对话上下文为基础的任务描述,并专注于代码质量和最佳实践。
    
    /review-security: 使用来自code-reviewer MCP服务器的perform_code_review工具来审查暂存更改。使用anthropic提供商和claude-3-5-sonnet-20241022模型。根据我们当前的对话上下文为基础的任务描述,并特别关注安全漏洞、输入验证和安全编码实践。
    
  2. 在Cursor中添加MCP服务器

    • 打开Cursor设置
    • 导航到MCP服务器部分
    • 添加一个新MCP服务器,使用以下JSON配置:
    "code-reviewer": {
      "command": "npx",
      "args": ["-y", "@vibesnipe/code-review-mcp"],
      "env": {
        "GOOGLE_API_KEY": "your-google-api-key",
        "OPENAI_API_KEY": "your-openai-api-key",
        "ANTHROPIC_API_KEY": "your-anthropic-api-key"
      }
    }
    
  3. 使用命令

    在Cursor的AI聊天界面中,现在只需键入:

    /review-staged
    

    Cursor将使用claude-code-review-mcp服务器来执行暂存更改的代码审查。

Windsurf集成

Windsurf(以前称为Codeium)是另一个支持通过斜杠命令实现自定义工作流的高级AI IDE。以下是与Windsurf集成的方法:

  1. 在Windsurf中配置MCP服务器

    • 打开Windsurf
    • 单击级联顶部右侧的自定义图标
    • 导航到MCP服务器面板
    • 添加一个新MCP服务器,使用以下JSON配置:
    "code-reviewer": {
      "command": "npx",
      "args": ["-y", "@vibesnipe/code-review-mcp"],
      "env": {
        "GOOGLE_API_KEY": "your-google-api-key",
        "OPENAI_API_KEY": "your-openai-api-key",
        "ANTHROPIC_API_KEY": "your-anthropic-api-key"
      }
    }
    
  2. 为代码审查创建工作流

    Windsurf支持可以通过斜杠命令调用的工作流。在.windsurf/workflows/review-staged.md中创建一个文件:

    # 审查暂存更改
    
    对当前暂存更改进行代码审查。
    
    ## 第一步
    
    使用来自code-reviewer MCP服务器的perform_code_review工具,使用以下参数:
    

    { "target": "staged", "llmProvider": "anthropic", "modelName": "claude-3-7-sonnet-20250219", "taskDescription": "我在这个代码库中当前工作的任务", "reviewFocus": "一般代码质量、安全最佳实践和性能考虑", "projectContext": "该项目是在Windsurf中开发的。请仔细检查代码中的任何问题。" }

    类似地,根据需要创建其他类型的审查工作流。

  3. 使用工作流

    在Windsurf的级联界面中,可以使用以下命令调用这些工作流:

    /review-staged
    

    Windsurf将执行工作流,该工作流将使用claude-code-review-mcp服务器来执行代码审查。

由该MCP服务器提供的工具

perform_code_review

描述: 使用指定的大型语言模型对当前Git仓库内的git更改进行代码审查。此工具必须从被审查的仓库根目录运行。

输入模式(参数):

该工具期望参数匹配CodeReviewToolParamsSchema

  • target(枚举:'staged''HEAD''branch_diff'): 指定要审查的一组更改。

    • 'staged':仅审查当前暂存以供提交的更改。
    • 'HEAD':审查未提交的更改(包括暂存和未暂存的更改)与最后一次提交的比较。
    • 'branch_diff':审查指定基础分支/提交与当前HEAD之间的更改。需要diffBase参数。
  • taskDescription(字符串): 清晰简洁的任务、功能或bug修复的描述,导致了代码更改。这为LLM审查者提供了关键背景信息。(例如:“通过电子邮件OTP实现了密码重置功能。”)

  • llmProvider(枚举:'google''openai''anthropic'): 用于审查的大型语言模型提供商。

  • modelName(字符串): 来自所选提供商的具体模型名称。示例:

    注意: 模型名称通常随着提供商发布新版本而变化。始终查阅提供商的最新文档并相应更新模型名称。

  • reviewFocus(字符串,可选但推荐): 您希望LLM在审查过程中集中关注的具体领域、关注点或方面。(例如:“关注并发操作中的线程安全性。”,“特别注意输入验证和清理。”,“检查是否符合我们内部的React组件样式指南。”)。

  • projectContext(字符串,可选但推荐): 关于项目的通用背景信息,包括其架构、关键库、编码标准或任何有助于LLM提供更相关和深入审查的其他背景信息。(例如:“这是一个使用Rust和Actix的高性能微服务。低延迟至关重要。”,“该项目遵循Clean Architecture原则。确保新代码与此一致。”)。

  • diffBase(字符串,可选): 如果target'branch_diff'则必需。指定要比较当前HEAD的基础分支(例如:'main''develop')或特定提交SHA。

  • maxTokens(数字,可选): LLM响应的最大令牌数。默认值为32000,除非另有指定。使用此参数优化更快、成本更低的响应(较低值)或更全面的审查(较高值)。 注意:在v0.11.0中,默认值从60000减少到32000个令牌,以更好地平衡成本和质量。

输出:

  • 如果成功:一个带有isError: false的JSON对象和一个包含单个文本项的content数组。text字段包含由LLM生成的markdown格式代码审查。
  • 如果发生错误:一个带有isError: true的JSON对象和一个content数组。text字段将包含描述问题的错误消息。

环境变量

为了让LLM集成正常工作,claude-code-review-mcp服务器(由npxclaude-code-review-mcp启动的过程)需要访问相应的API密钥。

在您正在审查的项目的根目录中设置这些变量:

  • 对于Google模型: GOOGLE_API_KEY="your_google_api_key"

  • 对于OpenAI模型: OPENAI_API_KEY="your_openai_api_key"

  • 对于Anthropic模型: ANTHROPIC_API_KEY="your_anthropic_api_key"

服务器会自动从当前工作目录(即项目根目录)中的.env文件加载变量,或者您可以按照上面的示例直接在MCP服务器配置中设置它们。

Claude Code的智能斜杠命令

该包包含几个改进的斜杠命令,在examples/claude-commands/目录下,您可以复制到项目的.claude/commands/目录中。这些命令利用了Claude Code对您项目背景和当前任务的理解,消除了手动输入的需求。

可用的斜杠命令

命令文件描述
review-staged-claude.md使用Claude 3.5 Sonnet审查暂存更改
review-staged-openai.md使用OpenAI GPT-4.1审查暂存更改
review-staged-gemini.md使用Google Gemini 2.5 Pro审查暂存更改
review-head-claude.md使用Claude 3.7 Sonnet审查所有未提交更改
review-head-openai.md使用OpenAI O3审查所有未提交更改
review-head-gemini.md使用Google Gemini 2.5 Pro审查所有未提交更改
review-branch-main-claude.md使用Claude 3.7 Sonnet审查主分支更改
review-branch-develop-openai.md使用OpenAI O4-mini审查开发分支更改
review-branch-custom-gemini.md使用Google Gemini 2.5 Flash审查指定分支更改
review-staged-security-claude.md使用Claude 3.5 Sonnet对暂存更改进行安全聚焦审查
review-staged-performance-openai.md使用OpenAI O3对暂存更改进行性能聚焦审查
review-staged-maintainability-gemini.md使用Google Gemini 2.5 Flash对暂存更改进行可维护性聚焦审查

要使用这些命令:

  1. 将所需的命令文件从examples/claude-commands/目录复制到项目的.claude/commands/目录。
  2. 在Claude Code中通过/project:command-name调用命令(例如,/project:review-staged-claude)。

这些命令自动使用Claude对您当前任务和项目背景的理解,消除了手动输入长参数的需求。

安全注意事项

  • API密钥处理:LLM提供商的API密钥是敏感凭证。此工具从环境变量或.env文件中访问它们,但不会存储或传输超出必要API调用之外的内容。考虑在生产环境中使用安全的环境变量管理器。

  • Git仓库分析:该工具分析您的本地Git仓库内容。它执行Git命令并读取diff输出,但不将整个代码库传输给LLM——只传输正在审查的具体更改。

  • 代码隐私:当将代码发送给外部LLM提供商进行审查时,请注意:

    • 代码注释或字符串中的敏感信息
    • 专有算法或商业秘密
    • 配置文件中的身份验证凭据或API密钥
  • 分支名称净化:为防止命令注入,分支名称在用于Git命令之前会被净化。然而,仍然建议避免在分支名称中使用不寻常的字符。

开发(针对@vibesnipe/code-review-mcp包本身)

如果您正在贡献或修改@vibesnipe/code-review-mcp包:

  1. 克隆多仓库: 确保已克隆仓库。
  2. **