代码审查专家系统

一个基于Python的代码审查系统,利用模型上下文协议(MCP)提供代码审查功能,模拟Martin Fowler和Robert C. Martin等专家角色进行代码审查。

  • by tomsiwik
  • Python
  • 本地部署
  • 3 星标
  • 更新于
在 GitHub 查看 tomsiwik/mcp-experts

使用说明

MCP代码专家系统

基于Python的代码审查系统,使用模型上下文协议(MCP)。它通过模拟的专家角色(如Martin Fowler和Robert C.Martin(Bob叔叔))提供代码审查功能。

特性

  • 基于Martin Fowler重构原则的代码审查
  • 基于Robert C.Martin清洁代码原则的代码审查
  • 代码、评论和关系的知识图存储
  • 与Ollama集成,进行人工智能审查
  • web集成的服务器端事件(SSE)支持

先决条件

Python 3.10+

这个项目需要Python 3.10或更高版本。

没有

没有 AI驱动的代码审查需要。

  1. 为您的平台安装Ollama:

    • macOS:从下载 ollama.com
    • Linux: curl -fsSL https://ollama.com/install.sh | sh
    • 视窗:通过Linux指令支持Windows WSL2
  2. 拉一个推荐的模型:

    ollama pull llama3:8b
    
  3. 启动Ollama服务器:

    ollama serve
    

安装

运行安装脚本以安装依赖项并创建虚拟环境:

chmod +x setup.sh
./setup.sh

配置

编辑 .env 要配置的文件(从创建 .env.example 如果需要):

# Knowledge Graph Settings
KNOWLEDGE_GRAPH_PATH=data/knowledge_graph.json

# Ollama Configuration (local AI models)
OLLAMA_HOST=http://localhost:11434
OLLAMA_MODEL=llama3:8b

用法

运行服务器

标准模式(用于光标集成)

source .venv/bin/activate
python server.py

HTTP/SSE模式(用于Web集成)

source .venv/bin/activate
python server.py --transport sse

这将在以下位置启动服务器 http://localhost:8000/sse 对于SSE运输。

对于自定义端口:

python server.py --transport sse --port 9000

在Cursor中安装

要在Cursor IDE中安装:

source .venv/bin/activate
mcp install server.py --name "Code Expert System"

可用工具

服务器公开了这些工具:

  • ask_martin:请Martin Fowler审查代码并提出重构建议
  • ask_bob:请Robert C.Martin(Bob叔叔)根据干净代码原则审查代码
  • read_graph:阅读整个知识图谱
  • search_nodes:在知识图中搜索节点
  • open_nodes:按名称打开特定节点

示例用法

与Martin Fowler一起查看代码片段:

{
  "code": "function calculateTotal(items) {\n  var total = 0;\n  for (var i = 0; i < items.length; i++) {\n    total += items[i].price;\n  }\n  return total;\n}",
  "language": "javascript",
  "description": "Calculate the total price of items"
}

项目结构

  • server.py:主服务器实现与MCP集成
  • experts/:实现代码审查功能的专家模块
    • __init__.py:共享模型和接口
    • martin_fowler/:Martin Fowler专家实施
    • robert_c_martin/:Robert C.Martin专家执行
  • knowledge_graph.py:用于存储代码和评论的知识图
  • ollama_service.py:与Ollama集成,进行人工智能审查
  • examples/:不同语言的示例代码供审查
  • requirements.txt:Python依赖关系
  • setup.sh:安装脚本

建筑

该系统遵循模块化架构:

  1. 服务器层:处理MCP协议通信和路由请求
  2. 专家层:为每个专家封装代码审查逻辑
  3. 服务层:提供人工智能集成和知识图谱功能

每个专家都实现了一个标准接口,允许一致的处理和轻松添加新专家。

许可证

麻省理工学院