代码审查智能服务

一个专为代码审查设计的MCP服务器,通过连接LLMs(如Claude Desktop或GEMINI)到Git托管平台(GitLab和GitHub),分析合并/拉取请求,理解项目上下文并提供专家反馈。

  • by danielefavi
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 danielefavi/mcp-server-code-review

使用说明

代码审查MCP服务器

MCP服务器旨在充当 只读情报提供者 用于代码审查。它将LLM(如Claude Desktop或Gemini)连接到Git托管平台(GitLab和GitHub),以分析合并/拉取请求,了解项目上下文,并提供专家反馈。

特性

  • 平台不可知: 支持两者 GitLab公司 和 GitHub.
  • 列出PR/MR: 查看需要审查的内容。
  • 获取详细信息: 理解描述、作者和意图。
  • 获取差异: 检索和分析代码更改。
  • 读取文件: 从任何ref(commit、branch、tag)的存储库中获取特定文件。
  • 自定义指南: 配置自己的代码审查准则。

安装和设置

您可以通过两种方式使用此MCP服务器:

选项A:全局安装(推荐)

通过npm全局安装包:

npm install -g mcp-server-code-review

选项B:克隆和构建(用于开发)

克隆存储库并在本地构建:

git clone <your-repo-url> mcp-server-code-review
cd mcp-server-code-review
npm install
npm run build

配置

服务器需要环境变量进行身份验证。您应该将这些添加到MCP客户端配置中(例如,Claude Desktop)。

环境变量

变量 描述 必填
GITLAB_TOKEN 您的GitLab个人访问令牌。 GitLab
GITLAB_URL GitLab实例URL(默认值: https://gitlab.com).GitLab(自我管理)
GITHUB_TOKEN 您的GitHub个人访问令牌。 GitHub
CODE_REVIEW_GUIDELINES_FILE 包含自定义代码审查指南的文件的路径。 可选(自定义规则)
CODE_REVIEW_GUIDELINES 内联自定义代码审查指南文本。 可选(自定义规则)

注: 至少一个 GITLAB_TOKEN 或 GITHUB_TOKEN 必须提供。如果 CODE_REVIEW_GUIDELINES_FILE 已设置,它优先于 CODE_REVIEW_GUIDELINES.

MCP服务器配置

使用全局安装

{
  "mcpServers": {
    "code-review": {
      "command": "mcp-server-code-review",
      "env": {
        "GITLAB_TOKEN": "your_token_here",
        "GITHUB_TOKEN": "your_token_here"
      }
    }
  }
}

使用本地克隆

替换 /absolute/path/to/... 带有项目目录的实际完整路径。

{
  "mcpServers": {
    "code-review": {
      "command": "node",
      "args": ["/absolute/path/to/mcp-server-code-review/dist/index.js"],
      "env": {
        "GITLAB_TOKEN": "your_token_here",
        "GITHUB_TOKEN": "your_token_here"
      }
    }
  }
}

使用自我管理的GitLab

{
  "mcpServers": {
    "code-review": {
      "command": "mcp-server-code-review",
      "env": {
        "GITLAB_TOKEN": "your_token_here",
        "GITLAB_URL": "https://gitlab.yourcompany.com"
      }
    }
  }
}

使用自定义代码审查指南

您可以以文件路径或内联文本的形式提供自定义指南:

{
  "mcpServers": {
    "code-review": {
      "command": "mcp-server-code-review",
      "env": {
        "GITHUB_TOKEN": "your_token_here",
        "GITLAB_TOKEN": "your_token_here",
        "GITLAB_URL": "https://gitlab.yourcompany.com",
        "CODE_REVIEW_GUIDELINES_FILE": "/path/to/your/guidelines.md"
      }
    }
  }
}

或者使用内联指南:

{
  "mcpServers": {
    "code-review": {
      "command": "mcp-server-code-review",
      "env": {
        "GITHUB_TOKEN": "your_token_here",
        "CODE_REVIEW_GUIDELINES": "Focus on performance and security. Ensure all functions have proper error handling."
      }
    }
  }
}

Claude桌面配置

将以下内容添加到您的 claude_desktop_config.json 文件。

路径位置:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • 窗户: %APPDATA%\Claude\claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json

Claude代码(CLI)配置

将以下内容添加到您的 settings.json 全局配置文件,或 .claude/settings.local.json 在项目目录中进行特定于项目的配置。

路径位置(全局):

  • macOS: ~/.claude/settings.json
  • 窗户: %USERPROFILE%\.claude\settings.json
  • Linux: ~/.claude/settings.json

Gemini配置

将以下内容添加到您的 settings.json 文件。

路径位置:

  • macOS: ~/.gemini/settings.json
  • 窗户: %USERPROFILE%\.gemini\settings.json
  • Linux: ~/.gemini/settings.json

ChatGPT配置

将以下内容添加到您的 mcp.json 文件。

路径位置:

  • macOS: ~/.chatgpt/mcp.json
  • 窗户: %USERPROFILE%\.chatgpt\mcp.json
  • Linux: ~/.chatgpt/mcp.json

可用工具

GitHub工具

工具 说明
github_list_prs 使用可选状态过滤器列出拉取请求
github_get_pr_details 获取拉取请求的详细信息
github_get_pr_diff 检索拉取请求的代码更改/diff
github_read_file 读取特定引用处的文件内容
github_get_project_metadata 获取README和清单文件(package.json等)

GitLab工具

工具 说明
gitlab_list_mrs 使用可选状态筛选器列出合并请求
gitlab_get_mr_details 获取合并请求的详细信息
gitlab_get_mr_diff 检索合并请求的代码更改/diff
gitlab_read_file 读取特定引用处的文件内容
gitlab_get_project_metadata 获取README和清单文件(package.json等)

可用提示

提示 描述
review_merge_request 从首席工程师的角度指导GitLab MR审查
review_pull_request 从首席工程师的角度指导GitHub PR审查

这些提示指示LLM:

  • 担任首席软件工程师
  • 关注逻辑错误、竞争条件、安全问题和架构一致性
  • 提供结构化反馈(总结、关键问题、建议、小细节)
  • 请求问题/票证详细信息以获取更多上下文

开发与调试

运行单元测试

npm test              # Run all tests
npm run test:coverage # Run tests with coverage report

格式码

npm run format        # Format code with Prettier
npm run format:check  # Check code formatting

使用MCP检查员进行测试

这 MCP 检查员 允许您在浏览器中交互式测试服务器和工具调用,而无需Claude Desktop应用程序。

  1. 构建项目:

    npm run build
    
  2. 运行检查器: (用实际值替换标记)

    GITLAB_TOKEN=your_token npx @modelcontextprotocol/inspector node dist/index.js
    
  3. 打开: http://localhost:6274 (或终端中显示的端口)。


许可证

ISC