返回市场
MCP代码审查服务器

MCP代码审查服务器

作者:crazyrabbitLTC29 星标更新:2025-03-25

项目介绍

代码审查服务器

这是一个使用Repomix和大型语言模型(LLMs)执行代码审查的自定义MCP服务器。

特性

  • 使用Repomix展开代码库
  • 使用大型语言模型分析代码
  • 获取带有具体问题和建议的结构化代码审查结果
  • 支持多个LLM提供商(OpenAI、Anthropic、Gemini)
  • 处理大型代码库的分块

安装

# 克隆仓库
git clone https://github.com/yourusername/code-review-server.git
cd code-review-server

# 安装依赖
npm install

# 构建服务器
npm run build

配置

在根目录下基于.env.example模板创建一个.env文件:

cp .env.example .env

编辑.env文件以设置您首选的LLM提供商和API密钥:

# LLM提供商配置
LLM_PROVIDER=OPEN_AI
OPENAI_API_KEY=your_openai_api_key_here

使用方法

作为MCP服务器

代码审查服务器实现了模型上下文协议(MCP),可以与任何MCP客户端一起使用:

# 启动服务器
node build/index.js

该服务器公开了两个主要工具:

  1. analyze_repo:使用Repomix展开代码库
  2. code_review:使用LLM进行代码审查

何时使用MCP工具

此服务器提供了两种不同的工具,用于不同类型的代码分析需求:

analyze_repo

当您需要以下功能时,请使用此工具:

  • 获取代码库结构和组织的高层次概述
  • 将存储库展平为文本表示形式,以便进行初步分析
  • 在不进行详细审查的情况下理解目录结构和文件内容
  • 准备进行更深入的代码审查
  • 快速扫描代码库以识别进一步分析的相关文件

示例情况:

  • “在审查之前,我想了解这个存储库的结构”
  • “显示这个代码库中的文件和目录”
  • “给我一个展平后的代码视图,以便了解其组织”

code_review

当您需要以下功能时,请使用此工具:

  • 进行全面的代码质量评估
  • 识别特定的安全漏洞、性能瓶颈或代码质量问题
  • 获得改进代码的操作建议
  • 进行带有问题严重程度评级的详细审查
  • 根据最佳实践评估代码库

示例情况:

  • “审查这个代码库的安全漏洞”
  • “分析这些特定JavaScript文件的性能”
  • “给我这个存储库的详细代码质量评估”
  • “审查我的代码并告诉我如何提高其可维护性”

何时使用参数:

  • specificFiles:当您只想审查某些文件而不是整个存储库时
  • fileTypes:当您希望专注于特定的文件扩展名(例如.js、.ts)时
  • detailLevel:使用“basic”进行快速概览或使用“detailed”进行深入分析
  • focusAreas:当您希望优先考虑某些方面(安全、性能等)时

使用CLI工具

为了测试目的,您可以使用包含的CLI工具:

node build/cli.js <repo_path> [options]

选项:

  • --files <file1,file2>:要审查的具体文件
  • --types <.js,.ts>:要包含在审查中的文件类型
  • --detail <basic|detailed>:详细级别(默认:详细)
  • --focus <areas>:要关注的领域(安全、性能、质量、可维护性)

示例:

node build/cli.js ./my-project --types .js,.ts --detail detailed --focus security,quality

开发

# 运行测试
npm test

# 开发监视模式
npm run watch

# 运行MCP检查器工具
npm run inspector

LLM集成

代码审查服务器直接集成了多个LLM提供商的API:

  • OpenAI(默认:gpt-4o)
  • Anthropic(默认:claude-3-opus-20240307)
  • Gemini(默认:gemini-1.5-pro)

提供商配置

.env文件中配置您首选的LLM提供商:

# 设置要使用的提供商
LLM_PROVIDER=OPEN_AI  # 选项:OPEN_AI, ANTHROPIC, 或 GEMINI

# 提供商API密钥(添加您选择提供商的密钥)
OPENAI_API_KEY=your-openai-api-key
ANTHROPIC_API_KEY=your-anthropic-api-key
GEMINI_API_KEY=your-gemini-api-key

模型配置

您可以选择指定每个提供商使用的模型:

# 可选:覆盖默认模型
OPENAI_MODEL=gpt-4-turbo
ANTHROPIC_MODEL=claude--3-sonnet-20240229
GEMINI_MODEL=gemini-1.5-flash-preview

LLM集成的工作原理

  1. code_review工具使用Repomix处理代码以展开存储库结构
  2. 如果必要,代码会被格式化和分块以适应LLM上下文限制
  3. 根据关注领域和详细级别生成详细的提示
  4. 提示和代码直接发送到您选择提供商的LLM API
  5. 解析LLM响应为结构化格式
  6. 审查以包含问题、优点和建议的JSON对象的形式返回

实现包括针对API错误的重试逻辑,并确保适当的格式以包含最相关的代码进行审查。

代码审查输出格式

代码审查以结构化的JSON格式返回:

{
  "summary": "代码及其用途的简要概述",
  "issues": [
    {
      "type": "SECURITY|PERFORMANCE|QUALITY|MAINTAINABILITY",
      "severity": "HIGH|MEDIUM|LOW",
      "description": "问题描述",
      "line_numbers": [12, 15],
      "recommendation": "推荐修复"
    }
  ],
  "strengths": ["代码优点列表"],
  "recommendations": ["总体建议列表"]
}

许可证

MIT