代码审查服务器
使用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服务器公开了两个主要工具:
analyze_repo:使用Repomix扁平化代码库code_review:使用LLM执行代码审查
何时使用MCP工具
此服务器为不同的代码分析需求提供了两种不同的工具:
分析报告
需要时使用此工具:
- 获取代码库结构和组织的高级概述
- 将存储库扁平化为文本表示,以便进行初步分析
- 无需详细审查即可了解目录结构和文件内容
- 准备进行更深入的代码审查
- 快速扫描代码库以识别相关文件以进行进一步分析
示例情况:
- “在查看此存储库之前,我想了解它的结构”
- “显示此代码库中的文件和目录”
- “给我一个代码的平面视图,以了解它的组织”
代码查看
需要时使用此工具:
- 执行全面的代码质量评估
- 识别特定的安全漏洞、性能瓶颈或代码质量问题
- 获取改进代码的可行建议
- 对问题的严重性评级进行详细审查
- 根据最佳实践评估代码库
示例情况:
- “检查此代码库是否存在安全漏洞”
- “分析这些特定JavaScript文件的性能”
- “给我一份关于此存储库的详细代码质量评估”
- “检查我的代码,并告诉我如何提高其可维护性”
何时使用参数:
specificFiles:当您只想查看某些文件,而不是整个存储库时fileTypes:当你想专注于特定的文件扩展名(例如.js、.ts)时detailLevel:使用“基本”进行快速概述,或使用“详细”进行深入分析focusAreas:当你想优先考虑某些方面(安全性、性能等)时
使用CLI工具
出于测试目的,您可以使用附带的CLI工具:
node build/cli.js [options]选项:
--files:要审查的具体文件--types:要包含在审核中的文件类型--detail:详细程度(默认:详细)--focus:重点领域(安全、性能、质量、可维护性)
例子:
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 inspectorLLM集成
代码审查服务器直接与多个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-previewLLM整合是如何运作的
- 这
code_review该工具使用Repomix处理代码以扁平化存储库结构 - 必要时对代码进行格式化和分块,以适应LLM上下文限制
- 根据重点区域和详细程度生成详细提示
- 提示和代码将直接发送到所选提供商的LLM API
- LLM响应被解析为结构化格式
- 评论以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"]
}许可证
麻省理工学院
