MCP专家评审
一个基于Python的系统,通过模拟像Martin Fowler和Robert C. Martin这样的专家角色,使用模型上下文协议(MCP)提供人工智能驱动的代码评审。
服务介绍
MCP 代码专家系统
一个基于 Python 的代码审查系统,使用 Model Context Protocol (MCP)。它通过模拟 Martin Fowler 和 Robert C. Martin (Uncle Bob) 等专家角色提供代码审查功能。
功能
- 基于 Martin Fowler 的重构原则进行代码审查
- 基于 Robert C. Martin 的《Clean Code》原则进行代码审查
- 代码、审查和关系的知识图谱存储
- 与 Ollama 集成以支持 AI 驱动的审查
- 支持服务器端事件 (SSE) 以便网页集成
先决条件
Python 3.10+
该项目需要 Python 3.10 或更高版本。
Ollama
Ollama 是进行 AI 驱动代码审查所必需的。
-
为你的平台安装 Ollama:
- macOS: 从 ollama.com 下载
- Linux:
curl -fsSL https://ollama.com/install.sh | sh - Windows: 通过 Linux 指令支持 Windows WSL2
-
拉取推荐模型:
ollama pull llama3:8b -
启动 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
使用
运行服务器
标准模式(用于 Cursor 集成)
source .venv/bin/activate
python server.py
HTTP/SSE 模式(用于网页集成)
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 (Uncle Bob) 根据《Clean Code》原则审查代码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 集成以支持 AI 驱动的审查examples/: 不同语言的示例代码供审查requirements.txt: Python 依赖项setup.sh: 设置脚本
架构
系统遵循模块化架构:
- 服务器层: 处理 MCP 协议通信并路由请求
- 专家层: 封装每个专家的代码审查逻辑
- 服务层: 提供 AI 集成和知识图谱功能
每位专家都实现了一个标准接口,以实现一致的处理方式并方便新增专家。
许可证
MIT