代码审查服务器

一个使用Repomix和LLMs进行代码审查的自定义MCP服务器,支持多种LLM提供商,适用于代码质量评估和安全漏洞检测。

  • by crazyrabbitLTC
  • JavaScript
  • 本地部署
  • 34 星标
  • 更新于
在 GitHub 查看 crazyrabbitLTC/mcp-code-review-server

使用说明

代码审查服务器

使用Repomix和LLM执行代码审查的自定义MCP服务器。

特性

  • 使用Repomix压缩代码库
  • 使用大型语言模型分析代码
  • 获取包含特定问题和建议的结构化代码审查
  • 支持多个LLM提供商(OpenAI、Anthropic、Gemini)
  • 处理大型代码库的分块

安装

# Clone the repository
git clone https://github.com/yourusername/code-review-server.git
cd code-review-server

# Install dependencies
npm install

# Build the server
npm run build

配置

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

cp .env.example .env

编辑 .env 文件以设置首选LLM提供程序和API密钥:

# LLM Provider Configuration
LLM_PROVIDER=OPEN_AI
OPENAI_API_KEY=your_openai_api_key_here

用法

作为MCP服务器

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

# Start the server
node build/index.js

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

  1. analyze_repo:使用Repomix扁平化代码库
  2. code_review:使用LLM执行代码审查

何时使用MCP工具

此服务器为不同的代码分析需求提供了两种不同的工具:

分析报告

需要时使用此工具:

  • 获取代码库结构和组织的高级概述
  • 将存储库扁平化为文本表示,以便进行初步分析
  • 无需详细审查即可了解目录结构和文件内容
  • 准备进行更深入的代码审查
  • 快速扫描代码库以识别相关文件以进行进一步分析

示例情况:

  • “在查看此存储库之前,我想了解它的结构”
  • “显示此代码库中的文件和目录”
  • “给我一个代码的平面视图,以了解它的组织”

代码查看

需要时使用此工具:

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

示例情况:

  • “检查此代码库是否存在安全漏洞”
  • “分析这些特定JavaScript文件的性能”
  • “给我一份关于此存储库的详细代码质量评估”
  • “检查我的代码,并告诉我如何提高其可维护性”

何时使用参数:

  • specificFiles:当您只想查看某些文件,而不是整个存储库时
  • fileTypes:当你想专注于特定的文件扩展名(例如.js、.ts)时
  • detailLevel:使用“基本”进行快速概述,或使用“详细”进行深入分析
  • 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

发展

# Run tests
npm test

# Watch mode for development
npm run watch

# Run the MCP inspector tool
npm run inspector

LLM集成

代码审查服务器直接与多个LLM提供者API集成:

  • OpenAI (默认值:gpt-4o)
  • Anthropic (默认值:claude-3-opus-20240307)
  • 双子座 (默认值:gemini-1.5-pro)

提供程序配置

在中配置首选LLM提供程序 .env 文件:

# Set which provider to use
LLM_PROVIDER=OPEN_AI  # Options: OPEN_AI, ANTHROPIC, or GEMINI

# Provider API Keys (add your key for the chosen provider)
OPENAI_API_KEY=your-openai-api-key
ANTHROPIC_API_KEY=your-anthropic-api-key
GEMINI_API_KEY=your-gemini-api-key

模型配置

您可以选择为每个提供程序指定要使用的模型:

# Optional: Override the default models
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": "Brief summary of the code and its purpose",
  "issues": [
    {
      "type": "SECURITY|PERFORMANCE|QUALITY|MAINTAINABILITY",
      "severity": "HIGH|MEDIUM|LOW",
      "description": "Description of the issue",
      "line_numbers": [12, 15],
      "recommendation": "Recommended fix"
    }
  ],
  "strengths": ["List of code strengths"],
  "recommendations": ["List of overall recommendations"]
}

许可证

麻省理工学院