MCP 代码审查代理
个人使用仓库\ 这是一个我个人使用的存储库。如果你觉得它有帮助,欢迎随意使用。
一款基于模型上下文协议(MCP)框架构建的高级代码审查工具,旨在通过多种具有不同角色和专业领域的AI驱动分析策略来提升代码质量。
🔐 先决条件
Codex CLI 登录与权限
这个工具需要 Codex CLI(注:CLI通常指命令行界面,但在此上下文中,Codex CLI可能是一个特定软件或工具的名称,直接翻译为“Codex 命令行接口”或保持原样以指代该特定工具) 需进行安装和认证。您需要登录Codex,并拥有使用AI分析功能的必要权限。
必要步骤:
- 安装Codex CLI (如果尚未安装)
- 登录Codex 使用您的凭据
- 确保适当的权限 用于AI分析功能
Codex CLI 资源:
注若未进行适当的Codex CLI认证,基于AI的分析策略(Codex、Toxic Architect、Accessibility Expert)将无法运行。仅静态分析策略将可用。
🚀 快速入门
安装
# Clone and build the tool locally (package not yet published to npm)
git clone https://github.com/lodado/MCP-Code-Review-Agent
cd MCP-Code-Review-Agent
npm install
npm run build
npm link
基本用法
# Get balanced AI review (Codex)
echo '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"codex_review","arguments":{"reviewType":"modified","analysisType":"codex"}}}' | node mcp-code-review-agent
# Get accessibility expert review
echo '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"codex_review","arguments":{"reviewType":"full","analysisType":"accessibility"}}}' | node mcp-code-review-agent
# Get brutally honest architect review (prepare for tough love!)
echo '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"codex_review","arguments":{"reviewType":"full","analysisType":"toxic-architect"}}}' | node mcp-code-review-agent🤖 AI评论代理与角色设定
这个工具具有多个AI代理,每个代理都拥有独特的个性和专业领域,能够从不同角度提供全面的代码审查。
1. 《科德克斯分析》(或根据上下文可译为“文献分析”、“典籍分析”等,具体译名需结合语境确定) (codex- 全能型人才
- Persona(人设/角色)均衡的AI代码审查员
- 专业知识全面分析所有领域
- 风格专业、细致且具有建设性
- 焦点安全性、性能、架构和逻辑问题
- 最适合于通用代码质量提升
2. 有毒建筑师 (toxic-architect- 完美主义者
- Persona(人设/角色)直言不讳的资深架构师,对劣质代码零容忍
- 专业知识;专长SOLID原则,整洁架构,设计模式
- 风格讽刺、傲慢,但技术上准确
- 焦点建筑缺陷、违反SOLID原则、设计模式误用
- 最适合于当你需要严厉的爱和建筑学上的严谨时
3. 网页无障碍专家 (accessibility- 包容性设计师
- Persona(人设/角色)拥有10年以上无障碍设计经验的高级前端发布人员
- 专业知识;专长WCAG合规性,语义网,React无障碍性
- 风格专业、注重细节、以用户为中心
- 焦点网页无障碍性、包容性设计、语义化HTML
- 最适合用于前端代码,特别是React/TypeScript组件
4. 静态分析器 (static) - 规则执行者
- Persona(人设/角色)一致的、基于规则的代码分析器
- 专业知识TypeScript 模式、代码度量、复杂度分析
- 风格系统、客观、快速
- 焦点代码度量、复杂度、基本模式
- 最适合于快速反馈和一致的规则执行
5. 混合分析 (hybrid- 团队合作精神强的成员
- Persona(人设/角色)结合多种分析方法
- 专业知识集大成者;集各种优点于一身
- 风格全面且均衡
- 焦点一篇评论中的多重视角
- 最适合用于当你需要全面覆盖时
📖 详细用法
方法1:直接执行(开发)
# Get balanced AI review (Codex)
echo '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"codex_review","arguments":{"reviewType":"modified","analysisType":"codex"}}}' | node dist/index.js
# Get accessibility expert review
echo '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"codex_review","arguments":{"reviewType":"full","analysisType":"accessibility"}}}' | node dist/index.js
# Get brutally honest architect review (prepare for tough love!)
echo '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"codex_review","arguments":{"reviewType":"full","analysisType":"toxic-architect"}}}' | node dist/index.js
# Get quick static analysis
echo '{"jsonrpc":"2.0","id":4,"method":"tools/call","params":{"name":"codex_review","arguments":{"reviewType":"modified","analysisType":"static"}}}' | node dist/index.js
# Get comprehensive hybrid review
echo '{"jsonrpc":"2.0","id":5,"method":"tools/call","params":{"name":"codex_review","arguments":{"reviewType":"full","analysisType":"hybrid"}}}' | node dist/index.js方法2:全局安装(生产环境)
跑步之后 npm link,你可以从任何目录全局使用这个工具:
# Install globally (run once after npm link)
npm link
# Now you can use it from anywhere:
# Get balanced AI review (Codex)
echo '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"codex_review","arguments":{"reviewType":"modified","analysisType":"codex"}}}' | mcp-code-review-agent
# Get accessibility expert review
echo '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"codex_review","arguments":{"reviewType":"full","analysisType":"accessibility"}}}' | mcp-code-review-agent
# Get brutally honest architect review
echo '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"codex_review","arguments":{"reviewType":"full","analysisType":"toxic-architect"}}}' | mcp-code-review-agent
# Get quick static analysis
echo '{"jsonrpc":"2.0","id":4,"method":"tools/call","params":{"name":"codex_review","arguments":{"reviewType":"modified","analysisType":"static"}}}' | mcp-code-review-agent
# Get comprehensive hybrid review
echo '{"jsonrpc":"2.0","id":5,"method":"tools/call","params":{"name":"codex_review","arguments":{"reviewType":"full","analysisType":"hybrid"}}}' | mcp-code-review-agent方法3:MCP客户端集成
如果你正在使用MCP客户端(如Cursor、Claude Desktop等),该工具将自动可用 codex_review 具有以下参数:
{
"name": "codex_review",
"arguments": {
"repositoryPath": "/path/to/your/repo",
"reviewType": "modified",
"analysisType": "codex",
"includeSuggestions": true,
"outputFormat": "text",
"noEmoji": false
}
}何时使用每个代理
- 《Codex》(拉丁语,意为“法典”或“典籍”)日常开发,总体代码质量
- 有毒建筑师当你需要建筑学的严谨性和严厉的反馈时
- 无障碍专家前端开发,React组件,面向用户的代码
- 静态分析器快速反馈、持续集成/持续交付(CI/CD)流水线、规则一致执行
- 混合(的)全面回顾,重要里程碑,最终检查
参数
repositoryPathGit 仓库的路径(默认:当前目录)reviewType要审查的文件类型(full,staged,modified)analysisType分析策略(codex,static,hybrid,accessibility,toxic-architect)includeSuggestions包含改进建议(默认:true)outputFormat输出格式(text,json)noEmoji在输出中禁用表情符号
环境变量
DEFAULT_REPO_PATH默认仓库路径DEFAULT_INCLUDE_SUGGESTIONS默认建议包含DEFAULT_USE_CODEX默认使用 Codex(已弃用)DEFAULT_ANALYSIS_TYPE默认分析类型NO_EMOJI全局禁用表情符号
🤖 人工智能提供商与MCP连接
当前的人工智能提供商:OpenAI Codex
这个工具目前使用的是 OpenAI Codex 作为智能代码分析领域的首要AI提供商,Codex的集成提供了对多种编程语言的深入代码理解和审查能力。
注该工具设计为与供应商无关,未来可扩展以支持其他人工智能供应商。
MCP(模型上下文协议)连接
这个工具被构建为一个MCP服务器,可以与MCP兼容的客户端进行连接。以下是连接方法:
适用于MCP兼容的IDE/编辑器
- 克隆并在本地构建该工具 (包尚未发布到 npm):
git clone https://github.com/lodado/MCP-Code-Review-Agent
cd MCP-Code-Review-Agent
npm install
npm run build
npm link未来一旦发布到npm,您就可以通过以下命令进行安装:
npm install -g mcp-code-review-agent- 配置您的MCP客户端 (例如,codex,Claude Desktop):
{
"mcpServers": {
"code-review-agent": {
"command": "mcp-code-review-agent",
"args": []
}
}
}- 使用这个工具 通过您的MCP客户端界面
⚠️ Cursor IDE 的限制
重要的由于Cursor IDE中的权限限制,当通过Cursor的MCP集成进行连接时,此MCP工具可能无法正常工作。该工具需要访问文件系统并执行Git操作,而这些操作可能会受到Cursor安全模型的限制。
权宜之计;变通方法通过命令行直接使用该工具,或通过具有适当权限的其他MCP兼容客户端使用。
🚀 核心能力
- 多人评审从不同的人工智能个性和专业领域获取反馈
- 并行处理使用(某种工具或方法)并发分析多个文件
p-limit - 路径安全安全路径验证,防止目录遍历攻击
- 文件过滤基于文件类型、大小和复杂度的智能过滤
- Git 集成与Git仓库无缝集成
- 多种输出格式文本和JSON输出支持
- 可配置分析可定制的分析参数和限制
- 个人代码质量提升之旅通过人工智能驱动的反馈实现持续改进
🎯 目的与目标
这个项目旨在探索……的潜力 基于人工智能的代码审查 使用不同的专业角色。目标是展示如何通过具有不同个性和专业知识的各种人工智能代理,从多个角度提供全面的代码质量提升。
为何此项目存在
- 个人代码质量提升使用MCP代理通过自动化审查持续提升代码质量
- 多视角分析利用不同的AI角色(如高级架构师、无障碍专家等)来获取多样化的反馈
- 学习工具了解不同人工智能个性在代码审查中的处理方式以及它们提供的见解
- MCP框架探索尝试使用模型上下文协议构建AI驱动的开发工具
愿景
想象一下,拥有一支全天候24/7可用的专家代码评审团队,每位成员都有自己的专业领域:
- A. 直言不讳的资深建筑师 检测SOLID原则违规和架构缺陷的人
- A. 网页无障碍专家 谁来确保包容性设计
- 一 基于人工智能的通用型人才/全能型助手 谁提供全面分析
- A. 基于规则的分析器 为了获得一致且快速的反馈
这个工具通过具有不同个性和专业领域的MCP代理,将这一愿景变为现实。
🏗️ 架构概览
这个项目实现了 清洁架构 具有明确关注点分离的模式。该架构是基于MCP代理提供的全面代码审查反馈而设计的——我并未参与架构决策!
架构层
┌─────────────────────────────────────┐
│ Presentation Layer │ ← CLI output, JSON reports
├─────────────────────────────────────┤
│ Application Layer │ ← Use Case orchestration
├─────────────────────────────────────┤
│ Domain Layer │ ← Business logic, port interfaces
├─────────────────────────────────────┤
│ Infrastructure Layer │ ← Git, FS, AI Provider implementations
└─────────────────────────────────────┘该架构遵循整洁架构原则,具有明确的职责分离,使得添加新的分析策略和维护代码库变得轻松简单。
📁 项目结构
src/
├── domain/ # Domain Layer
│ ├── ports.ts # Port interfaces (contracts)
│ └── entities.ts # Business entities and logic
├── application/ # Application Layer
│ ├── CodeReviewUseCase.ts # Main business orchestration
│ └── AnalysisOrchestrator.ts # Analysis strategy coordination
├── infrastructure/ # Infrastructure Layer
│ ├── git/
│ │ └── NodeGitClient.ts # Git operations adapter
│ ├── filesystem/
│ │ └── NodeFileSystem.ts # File system operations adapter
│ ├── ai/
│ │ └── CodexClient.ts # AI provider adapter
│ └── path/
│ └── SafePathPolicy.ts # Path security validation
├── presentation/ # Presentation Layer
│ ├── CliReporter.ts # Text output formatter
│ └── JsonReporter.ts # JSON output formatter
├── strategies/ # Analysis Strategies
│ ├── CodeAnalysisStrategy.ts # Abstract base strategy
│ ├── CodexAnalysisStrategy.ts # AI-powered analysis
│ ├── WebAccessibilityAnalysisStrategy.ts # Accessibility-focused
│ ├── ToxicArchitectAnalysisStrategy.ts # Architecture-focused
│ ├── TypeScriptStaticAnalysisStrategy.ts # Rule-based analysis
│ └── AnalysisStrategyFactory.ts # Strategy factory
├── composition/ # Dependency Injection
│ └── container.ts # DI container and wiring
├── config/ # Configuration
│ └── analysisConfig.ts # Analysis settings
└── tools/ # MCP Tools
└── CodexReviewTool.ts # Main MCP tool (thin wrapper)🏛️ 建筑细节
领域层
领域层包含核心业务逻辑,并定义了外部依赖必须实现的合约(端口)。
关键组件:
ports.ts所有外部依赖的接口定义entities.ts具有领域逻辑的业务实体
应用层
应用层负责协调业务逻辑,并在不同服务之间进行协调。
关键组件:
CodeReviewUseCase主要编曲逻辑AnalysisOrchestrator管理分析策略的选择与执行
基础设施层
基础设施层提供了领域接口的具体实现。
关键组件:
NodeGitClient使用 Node.js 子进程执行 Git 操作NodeFileSystem使用 Node.js fs 模块进行文件系统操作CodexClientOpenAI Codex SDK 集成SafePathPolicy以安全为重点的路径验证
表示层(或称会话层中的表示层,但在OSI模型中通常独立为一层)
表示层负责输出格式化和用户界面相关的问题。
关键组件:
CliReporter人类可读的文本输出JsonReporter机器可读的JSON输出
🔧 配置
分析配置
export const defaultAnalysisConfig: AnalysisConfig = {
maxFileSize: 50 * 1024, // 50KB
maxLines: 2500, // Maximum lines per file
maxFunctions: 50, // Maximum functions per file
maxClasses: 10, // Maximum classes per file
concurrency: 3, // Parallel processing limit
supportedExtensions: [".ts", ".tsx"],
excludedPatterns: [
"\\.d\\.ts$",
"\\.(test|spec)\\.tsx?$",
"/node_modules/",
"/dist/",
"/build/",
],
};🧪 测试
# Build the project
npm run build
# Test with different analysis strategies
npm test🔒 安全功能
- 路径遍历防护防止目录遍历攻击
- 文件大小限制防止因大文件导致内存耗尽
- 输入验证全面的输入净化和验证
- 安全的Git操作安全执行Git命令
🚀 性能特性
- 并行处理使用并发文件分析
p-limit - 智能过滤尽早跳过不合适的文件
- 内存管理高效的文件大小和复杂度检查
- 缓存带有实例缓存的依赖注入容器
📝 开发
添加新的分析策略
- 创建一个新的策略类,继承(或扩展)自
CodeAnalysisStrategy - 实现所需的抽象方法
- 在(某处)注册该策略
AnalysisStrategyFactory - 更新模式验证
添加新的输出格式
- 创建一个实现新报告者的(类/实例)
Reporter接口 - 在依赖容器中注册报告者
- 更新工具的输出格式处理
🤝 贡献
这个项目遵循了干净架构原则和SOLID设计模式。在贡献时:
- 保持关注点的分离
- 使用依赖注入
- 为新功能编写测试
- 遵循现有的代码结构
📄 许可证
MIT 许可证 - 详情请参阅 LICENSE 文件。
______________________________________________________________________
注:这一架构是基于MCP代理提供的全面代码审查反馈而设计的。架构决策、设计模式和代码结构均由AI审查过程确定——我并未参与架构设计!
