Zing 论坛

正文

sefc-pr-review-agent:基于MCP的AI驱动代码审查工作流

quishop开源的MCP Agent驱动PR审查系统,通过Claude Sonnet自动分析代码变更,结合Jira验收标准进行结构化review,支持多技术栈skill动态加载。

MCP代码审查GitHub ActionsClaudeAI自动化DevOpsCI/CD代码质量
发布时间 2026/04/09 16:42最近活动 2026/04/09 16:45预计阅读 9 分钟
sefc-pr-review-agent:基于MCP的AI驱动代码审查工作流
1

章节 01

导读 / 主楼:sefc-pr-review-agent:基于MCP的AI驱动代码审查工作流

sefc-pr-review-agent:基于MCP的AI驱动代码审查工作流

代码审查的痛点与自动化需求

在软件开发团队中,代码审查(Code Review)是保证代码质量的关键环节,但也面临诸多挑战:

  • 人力成本高:资深工程师需要花费大量时间审查PR
  • 标准不统一:不同审查者的关注点和严格程度差异大
  • 遗漏风险:人工审查容易忽略安全漏洞、命名规范等问题
  • 反馈延迟:审查者忙碌时,PR可能长时间处于待审状态

随着AI能力的提升,越来越多的团队开始探索AI辅助代码审查。quishop开源的sefc-pr-review-agent项目,展示了一种基于MCP协议的完整解决方案。

项目概述

sefc-pr-review-agent是一个MCP Agent驱动的PR审查自动化系统,专为quishop组织下的所有仓库设计。它通过GitHub Actions触发,利用Claude Sonnet大模型自动分析代码变更,并发布结构化的审查评论。

核心特点

  • 技能驱动(Skills-based):根据变更文件类型动态加载对应的审查规则
  • 跨项目复用:一套配置,整个组织共享
  • 仅评论模式:AI只提供建议,不阻塞合并(continue-on-error)
  • MCP原生:基于Anthropic MCP协议,无缝集成Jira和GitHub

系统架构与工作流程

整个系统的工作流程设计精巧,实现了从PR创建到AI审查评论的完整闭环:

你的仓库(提交PR)
    │
    ├── .github/workflows/pr-review.yml ← 10行调用工作流
    │
    └── 触发 ─────────────────────────────┐
                                        ▼
                    sefc-pr-review-agent(本仓库)
                    ├── scripts/skill-loader.mjs ← 检测变更文件,加载对应技能
                    ├── scripts/mcp-agent.mjs ← Claude Sonnet + MCP生成审查
                    └── skills/*.md ← 审查规则定义
                                        │
                                        ▼
                        PR Review Comment(出现在PR review标签页)

技术实现细节

MCP协议的应用

项目采用Anthropic的MCP(Model Context Protocol)协议,这是其技术架构的关键亮点:

使用的MCP服务器:

  1. Atlassian MCP:从Jira读取ticket的验收标准(Acceptance Criteria)
  2. GitHub MCP:在PR上发布审查评论

这种设计的优势在于无需在CI runner上运行MCP server进程,直接通过Anthropic Messages API的server-side MCP功能完成所有交互。

动态技能加载机制

skill-loader.mjs脚本实现了智能的规则匹配系统:

必载技能(所有PR都加载):

技能 内容
review.md PR结构验证、AC覆盖确认、1-5分评分
naming.md camelCase/PascalCase/kebab-case命名规范
security.md 硬编码密钥、SQL注入、敏感目录标记

条件加载技能(根据文件类型):

技能 触发条件 内容
typescript.md .ts/.tsx文件 禁止any、async/await规范、React props规则
python.md .py文件 Type hints、禁止bare except、import排序
migration.md migration/schema目录 Rollback必需、禁止裸DROP、大表NOT NULL
api.md routes/controllers RESTful规范、request validation、认证
infra.md .tf/k8s/helm Tags必填、禁止latest tag、最小权限

这种设计确保了审查的针对性——Python项目不会收到TypeScript相关的审查建议。

部署与配置

调用方仓库配置

任何仓库只需添加一个10行的工作流文件即可接入:

name: PR Review
on:
  pull_request:
    types: [opened, synchronize, reopened, ready_for_review]

permissions:
  pull-requests: write
  contents: read

jobs:
  mcp-agent-review:
    runs-on: ubuntu-latest
    if: ${{ !github.event.pull_request.draft }}
    continue-on-error: true
    steps:
      - uses: actions/checkout@v4
        with: { fetch-depth: 0 }
      - uses: actions/checkout@v4
        with:
          repository: quishop/sefc-pr-review-agent
          path: .review-agent
      - uses: actions/setup-node@v4
        with: { node-version: '20' }
      - name: Get PR diff
        run: git diff origin/${{ github.base_ref }}...HEAD > /tmp/pr.diff
      - name: Extract Jira ticket
        id: jira
        run: echo "key=$(echo '${{ github.head_ref }}' | grep -oP '[A-Z]+-\d+' | head -1)" >> $GITHUB_OUTPUT
      - name: Run MCP Agent
        env:
          ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
          JIRA_BASE_URL: ${{ vars.JIRA_BASE_URL }}
          JIRA_EMAIL: ${{ vars.JIRA_EMAIL }}
          JIRA_TOKEN: ${{ secrets.JIRA_TOKEN }}
          GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          PR_NUMBER: ${{ github.event.pull_request.number }}
          PR_TITLE: ${{ github.event.pull_request.title }}
          JIRA_TICKET: ${{ steps.jira.outputs.key }}
        run: node .review-agent/scripts/mcp-agent.mjs

组织级密钥配置

需要在GitHub组织Settings中配置以下Secrets和Variables:

Secrets:

  • ANTHROPIC_API_KEY:Anthropic API密钥
  • JIRA_TOKEN:Atlassian API令牌

Variables:

成本与性能分析

运行成本

项目 数值
模型 Claude Sonnet(claude-sonnet-4-20250514)
单次审查 ~$0.06-0.25(取决于diff大小和MCP调用次数)
每日10个PR ~$0.60-2.50

这个成本对于中小型团队来说非常可控,相当于雇佣一名初级审查员成本的千分之一。

实际应用案例

quishop组织内多个仓库已接入该系统:

仓库 技术栈 自动加载的技能
fluffy-agent-core Python review, naming, security, python
fluffy-core Django review, naming, security, migration, api
fluffy-core-internal-dashboard Next.js review, naming, security, typescript

设计哲学与最佳实践

为什么采用"仅评论"模式?

项目明确设定continue-on-error: true,确保审查失败不会阻塞合并。这种设计体现了务实的态度:

  1. AI是助手而非守门员:最终决策权仍归人类审查者
  2. 避免过度依赖:防止团队对AI产生盲目信任
  3. 渐进式采用:降低团队接受新工具的心理门槛

技能即代码(Skills as Code)

审查规则以Markdown文件形式存储在skills/目录,这种设计带来多重好处:

  • 版本控制:规则的变更历史可追溯
  • 易于维护:非开发者也能编辑Markdown文件
  • 即时生效:修改后所有引用的仓库下次PR自动生效
  • 可扩展:新增skill只需创建.md文件并在skill-loader中注册

局限性与改进方向

当前局限

  1. 仅支持GitHub:尚未支持GitLab、Bitbucket等其他平台
  2. 依赖Anthropic API:需要有效的API密钥和额度
  3. Jira集成单一:目前只支持Atlassian Jira Cloud
  4. 语言支持有限:主要针对TypeScript和Python项目优化

潜在改进

  • 支持更多代码托管平台
  • 增加更多编程语言的skill
  • 引入代码覆盖率、测试通过率等CI数据
  • 支持自定义LLM提供商(OpenAI、本地模型等)

行业意义与启示

sefc-pr-review-agent代表了AI辅助软件开发的一个典型范式:

  1. MCP协议的应用落地:展示了MCP在企业工作流中的实际价值
  2. AI与人类协作的新模式:AI负责初筛,人类负责终审
  3. 组织级效率工具:通过标准化审查规则提升整体代码质量
  4. 成本效益优化:用极低的成本实现7x24小时代码审查覆盖

对于希望引入AI辅助审查的团队,这是一个可直接复用的参考实现。其模块化、可扩展的架构设计,也为类似工具的开发提供了有价值的借鉴。

总结

sefc-pr-review-agent通过MCP协议将Claude Sonnet与Jira、GitHub无缝集成,构建了一套完整的AI驱动代码审查工作流。它的核心创新在于动态技能加载机制和"仅评论"的设计理念,既保证了审查的针对性和全面性,又避免了AI过度干预开发流程。

对于追求代码质量又受限于审查人力的团队,这种AI辅助审查模式值得尝试。随着MCP生态的成熟,我们可以期待更多类似的AI增强开发工具涌现。