AI代码审查服务

GitHub Code Review MCP是一个基于AI的代码审查服务,通过Claude对GitHub仓库进行自动化代码审查,提供详细反馈和改进建议。

  • by kl63
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 kl63/mcp-server-demo

使用说明

GitHub代码审查MCP

MCP(模型上下文协议)服务,使用Claude对GitHub存储库进行AI驱动的代码审查。

什么是MCP?

模型上下文协议(MCP)是一种开放协议,可实现LLM应用程序与外部数据源和工具之间的无缝集成。无论您是在构建基于AI的IDE、增强聊天界面,还是创建自定义AI工作流程,MCP都提供了一种标准化的方式将LLM与所需的上下文连接起来。

概述

此服务提供了一组工具,允许用户:

  1. 提交GitHub仓库进行代码审查
  2. 获取有关其代码库的详细反馈和建议
  3. 重点审查特定的利益领域(如安全、绩效、最佳实践)
  4. 跟踪评论历史并访问以前的评论

特性

  • 存储库分析:只需提供URL即可分析GitHub存储库
  • 重点评论:指定代码审查的重点领域
  • 改进建议:获取改进代码库的具体建议
  • 文件级分析:获取特定文件的详细反馈
  • 安全扫描:识别安全漏洞并获得补救建议
  • 相关性分析:分析过时软件包和漏洞的项目依赖关系
  • 代码质量度量:深入了解代码复杂性、重复性和可维护性
  • 性能分析:识别性能瓶颈和优化机会
  • 最佳实践比较:将代码与框架的行业最佳实践进行比较
  • PR描述生成器:自动生成全面的拉取请求描述
  • 级联提示生成:创建现成的提示,以使用Cascade实施改进

MCP工具

此MCP服务器提供以下工具:

存储库审查工具

  • review_repository(repo_url: str, focus_areas: Optional[str] = None):通过提供URL查看GitHub存储库。您可以选择指定要关注的领域(例如,“安全性、性能、最佳实践”)。

  • list_reviewed_repos():列出所有已审查的存储库,包括审查日期和重点领域。

  • get_review_details(repo_key: str):使用“所有者/仓库”格式的密钥获取特定仓库的详细审查结果。

改进和分析工具

  • suggest_improvements(repo_key: str, file_path: Optional[str] = None):获取整个存储库或特定文件的具体改进建议。

  • analyze_dependencies(repo_key: str):分析存储库依赖关系,以识别过时的软件包、潜在漏洞,并提供建议。

  • scan_security_vulnerabilities(repo_key: str):扫描存储库中的安全漏洞并提供补救步骤。

  • analyze_code_quality(repo_key: str):获取代码质量指标,包括复杂性、重复性和可维护性得分。

  • analyze_performance(repo_key: str):识别性能瓶颈并获得优化建议。

  • compare_with_best_practices(repo_key: str, framework: Optional[str] = None):将代码与行业最佳实践进行比较,并进行可选的框架特定比较。

代码生成工具

  • generate_pull_request_description(repo_key: str, review_id: str):根据代码审查结果生成全面的拉取请求描述。

  • generate_cascade_prompt(repo_key: str):创建一个特定于Cascade的提示,可用于实施建议的改进。

  • generate_improved_code(repo_key: str, file_path: str):根据审查结果为特定文件生成改进的代码。

安装

先决条件

  • Python 3.12或更高版本
  • MCP 1.6.0或更高版本

设置

  1. 克隆此存储库:

    git clone https://github.com/kl63/Mcp-Server-Demo.git
    cd Mcp-Server-Demo
    
  2. 设置虚拟环境:

    python -m venv .venv
    source .venv/bin/activate  # On Windows: .venv\Scripts\activate
    
  3. 安装依赖项:

    pip install -e .
    
  4. (可选)设置GitHub API令牌:

    为了避免GitHub API速率限制,建议设置一个GitHub API令牌:

    • 在GitHub上创建个人访问令牌(设置>开发人员设置>个人访问令牌)
    • 将令牌设置为环境变量:
      export GITHUB_API_TOKEN=your_github_token  # On Windows: set GITHUB_API_TOKEN=your_github_token
      

    如果没有令牌,您将被限制为每小时60个请求,这可能不足以分析更大的存储库。

用法

启动MCP服务器

运行以下命令以启动MCP服务器:

python main.py

与Claude一起使用服务

MCP服务器运行后,您可以通过Claude使用以下命令与之交互:

  1. 查看存储库:

    Please review the GitHub repository at https://github.com/username/repo-name
    
  2. 关注特定领域:

    Review https://github.com/username/repo-name with focus on security and performance
    
  3. 获取改进建议:

    Suggest improvements for the repository https://github.com/username/repo-name
    
  4. 列出以前审查过的存储库:

    Show me all the repositories that have been reviewed
    
  5. 生成级联提示以实施改进:

    Generate a Cascade prompt for the improvements to https://github.com/username/repo-name
    
  6. 获取特定文件的改进代码:

    Show me improved code for the file src/components/Button.js in https://github.com/username/repo-name
    

许可证

麻省理工学院

参考文献