Token导航 LogoToken导航TokenDH.com
AI Code Review Agent logo
开发工具stdio官方级别未说明来源级核验

AI Code Review Agent

MCP Server

一个多代理AI系统,用于审查GitHub拉取请求,结合了LLM代理和Semgrep静态分析,以检测安全漏洞、性能问题、风格违规和测试缺口。

工具数

4

提示词数

0

GitHub Stars

0

资源数

0
代码审查安全PythonClaude静态分析Claude DesktopClaudeCursor

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

Siddhart-Yadav

提供方

Siddhart-Yadav

最后核验

2026/5/17 20:20

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

python backend/cli.py https://github.com/owner/repo/pull/123

详细介绍

AI代码审查代理

多代理人工智能系统,使用4个专门的LLM代理+并行运行的Semgrep静态分析来审查GitHub拉取请求,捕捉安全漏洞、性能问题、风格违规和测试差距——按严重程度和确切的行号分类。

为什么这很重要

手动代码审查受到审查员可用性和认知负荷的限制。该代理在30-90秒内审查PR,在安全性、性能、风格和测试方面具有一致的覆盖范围——由于时间压力,人工审查人员经常跳过或匆匆通过这些领域。

建筑

                          ┌─────────────────┐
                          │  Entry Points    │
                          │ Web UI │ CLI │   │
                          │ GitHub Action    │
                          │ MCP Server       │
                          └────────┬────────┘
                                   │
                          ┌────────▼────────┐
                          │    FastAPI       │
                          │  Backend API     │
                          └────────┬────────┘
                                   │
                   ┌───────────────▼───────────────┐
                   │     GitHub Service (PyGithub)  │
                   │     Fetch PR diff + metadata   │
                   └───────────────┬───────────────┘
                                   │
                   ┌───────────────▼───────────────┐
                   │     Diff Parser & Chunker      │
                   │  Smart splitting by function   │
                   │  boundaries + file priority     │
                   └───────────────┬───────────────┘
                                   │
              ┌────────────────────▼────────────────────┐
              │        LangGraph Orchestration           │
              │                                          │
              │  ┌────────────────────────────────────┐  │
              │  │  Semgrep MCP (deterministic SAST)  │  │
              │  │  Security scan → ground truth       │  │
              │  └──────────────┬─────────────────────┘  │
              │                 │                         │
              │  ┌──────────┐ ┌▼─────────┐ ┌──────────┐ │
              │  │ Security │ │  Perf    │ │  Style   │ │
              │  │  Agent   │ │  Agent   │ │  Agent   │ │
              │  │+Semgrep  │ └────┬─────┘ └────┬─────┘ │
              │  └────┬─────┘      │             │       │
              │       │  ┌─────────┴─────────────┘       │
              │       │  │  ┌──────────┐                 │
              │       │  │  │  Tests   │                 │
              │       │  │  │  Agent   │                 │
              │       │  │  └────┬─────┘                 │
              │       │  │       │                       │
              │  ┌────▼──▼───────▼────────────────────┐  │
              │  │           Aggregator                │  │
              │  │    Dedup + rank + cross-validate    │  │
              │  └──────────────┬─────────────────────┘  │
              │                 │                         │
              │       ┌────────▼────────┐                │
              │       │  Meta Reviewer  │                │
              │       │ Score & Verdict │                │
              │       └────────┬────────┘                │
              └────────────────┼─────────────────────────┘
                               │
              ┌────────────────▼────────────────┐
              │  PostgreSQL        Redis         │
              │  (review history)  (diff cache)  │
              └─────────────────────────────────┘

技术栈

技术为什么
前端Next.js 14,TypeScript,顺风,shadcn/uiSSR,优秀的DX,现代组件库
后端FastAPI,Python 3.12,Pydantic异步原生,自动生成OpenAPI,强类型
代理框架LangGraph真正的并行扇出/扇入、条件路由、状态管理
LLM顶点AI(Gemini 3.1 Pro)直接SDK,保证结构化JSON的response_schema
静态分析Semgrep(通过MCP+CLI)确定性SAST——已知漏洞模式的零假阴性
结构化输出Pydantic模式+Gemini response_schema每次LLM调用都会返回经过验证的JSON;对格式错误的输出自动重试
MCPFastMCP服务器+Semgrep MCP客户端将代理作为工具公开,并通过模型上下文协议使用外部工具
GitPyGithubPR差异提取,评论发布
数据库PostgreSQL 16查看历史记录,通过asyncpg异步
缓存Redis 7跳过重新查看相同的差异(SHA-256哈希)
部署Docker Compose,Vercel全栈本地开发,前端部署

关键设计:混合分析管道

代理人结合 确定性的概率性的 分析:

工具强度弱点
确定性的Semgrep(3000多条规则)已知模式、精确的CWE/OWASP标签、精确的行无法推理业务逻辑或新的错误
概率性的Gemini LLM(4个代理)发现逻辑错误、设计问题、缺失的测试、上下文问题可能会产生幻觉或错过事情
混合Semgrep→ 安全代理Semgrep的发现作为基础事实注入,LLM验证+扩展两者兼而有之:覆盖范围和推理

结构化输出执行

每次LLM调用都使用三层保证:

  1. 双子座 response_schema --模型被迫输出与Pydantic模式匹配的JSON
  2. Pydantic验证 --使用严格类型解析和验证响应
  3. 自动重试 --验证失败时,错误将附加到提示中并重试(最多2x)

这完全消除了“有时LLM返回垃圾”的问题。

评估套件

8个已知错误的故意错误代码测试用例:

案例预期检测类别
通过f-string进行SQL注入SQL注入+参数化查询修复安全
硬编码API密钥+密码秘密检测安全性
ORM循环中的N+1查询查询优化性能
文件I/O+API上缺少try/except错误处理样式
零测试的支付处理商测试覆盖率差距测试覆盖
阻塞异步函数中的I/O异步+资源泄漏性能
XSS+pickle反序列化+CSRF多漏洞安全
O(n²)重复查找器算法优化性能

运行评估:

docker exec ai-code-review-agent-backend-1 python -m evals.runner
docker exec ai-code-review-agent-backend-1 python -m evals.runner --case sql_injection -v

结果: 100%检测率 在测试用例上(SQL注入、硬编码秘密、缺少测试)。

入口点

方法说明
网页用户界面将PR URL粘贴到 http://localhost:3000,获取视觉审查报告
命令行界面python backend/cli.py https://github.com/owner/repo/pull/123
GitHub行动PR打开/更新时自动触发,发布评论作为PR评论
MCP服务器从Claude Desktop或Cursor使用:“为我查看此PR”

技术决策

决策权衡基本原理
CrewAI上的LangGraph更陡峭的学习曲线通过 Send API,条件路由,一流的状态管理
平行扇出更复杂的图拓扑4个代理同时运行→ ~4x比顺序快
Semgrep+LLM混合动力车额外依赖(Semgrep)确定性SAST捕捉到LLM错过的东西;LLM能够理解规则无法表达的内容
Gemini响应_模式限制输出格式消除JSON解析失败;重试处理边缘情况
直接谷歌GenAI SDK无LangChain抽象更少的依赖关系,完全控制,立即支持最新模型
Redis差异哈希缓存额外的基础设施相同的差异会立即返回;SHA-256确保正确性
条件聚合跳过图中边缘稍多如果没有发现,直接跳到元审阅者以保存LLM调用
正则表达式差异解析器+智能分块不如Tree sitter AST精确处理所有语言,按函数边界拆分,感知令牌预算
MCP双向要维护的两个协议代理既是MCP服务器(可由IDE调用),也是MCP客户端(调用Semgrep)

快速开始

先决条件

设置

git clone 
cd ai-code-review-agent

cp backend/.env.example backend/.env
# Edit backend/.env — set GCP_PROJECT_ID or GEMINI_API_KEY

docker compose up -d

用法

Web用户界面: 打开 http://localhost:3000

CLI:

python backend/cli.py https://github.com/owner/repo/pull/123

评价:

docker exec ai-code-review-agent-backend-1 python -m evals.runner -v

MCP服务器(克劳德桌面):

# See mcp-config.example.json for configuration
python backend/mcp_server.py

API终点

方法端点描述
职位/api/v1/reviews提交PR以供审核
得到/api/v1/reviews列出审核历史记录
得到/api/v1/reviews/{id}获取评论详细信息
职位/api/v1/webhook/githubGitHub webhook接收器
得到/api/v1/health健康检查

MCP工具

工具方向描述
review_pull_request服务器(公开)按URL查看GitHub PR
review_diff服务器(暴露)查看原始git差异
get_supported_languages服务器(公开)列出可分析的语言
security_check客户端(已消耗)调用Semgrep MCP进行SAST扫描

代理

代理人职责关键检查
Semgrep确定性SASTCWE/OWASP基于规则的扫描,3000多种模式
安全漏洞检测(LLM)SQL注入、XSS、硬编码秘密、身份验证缺陷、SSRF+Semgrep上下文
演出效率分析N+1查询、内存泄漏、O(N²)算法、阻塞I/O
风格代码质量命名、DRY、SOLID、错误处理、可读性、类型注释
测试覆盖率测试差距缺失测试、边缘情况、断言质量
聚合器结果合并重复数据删除、优先级排序、误报删除
元审阅者最终判定总分(0-10)、推荐、风险评估

项目结构

ai-code-review-agent/
├── backend/
│   ├── app/
│   │   ├── agents/
│   │   │   ├── graph.py          # LangGraph pipeline (Semgrep → 4 agents → aggregator)
│   │   │   ├── llm.py            # Google GenAI SDK + structured output + retry
│   │   │   ├── schemas.py        # Pydantic response models for LLM output
│   │   │   └── prompts.py        # Agent system prompts
│   │   ├── api/routes.py         # FastAPI endpoints
│   │   ├── core/
│   │   │   ├── config.py         # Pydantic settings (Vertex AI / API key)
│   │   │   ├── database.py       # PostgreSQL async
│   │   │   └── cache.py          # Redis caching
│   │   ├── models/
│   │   │   ├── review.py         # SQLAlchemy models
│   │   │   └── schemas.py        # API Pydantic schemas
│   │   ├── services/
│   │   │   ├── github_service.py # GitHub API integration
│   │   │   ├── review_service.py # Review orchestration
│   │   │   └── semgrep_service.py# Semgrep MCP client + CLI fallback
│   │   ├── utils/code_parser.py  # Diff parsing & smart chunking
│   │   └── main.py               # FastAPI app
│   ├── evals/
│   │   ├── test_cases.py         # 8 known-bad code samples
│   │   └── runner.py             # Eval CLI with scoring metrics
│   ├── mcp_server.py             # MCP Server entry point
│   ├── cli.py                    # CLI entry point
│   └── Dockerfile
├── frontend/
│   ├── src/
│   │   ├── app/                  # Next.js pages
│   │   ├── components/           # React components + shadcn/ui
│   │   └── lib/api.ts            # API client
│   └── Dockerfile
├── mcp-config.example.json       # MCP client configuration
├── docker-compose.yml
└── README.md

目录标签

目录标签

代码审查安全PythonClaude静态分析本地部署GitHub集成AI代理安全扫描

支持客户端

Claude DesktopClaudeCursor

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

api-key

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

4

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdioapi-key部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP