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

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

- 板块: [Openclaw Llm](https://www.zingnex.cn/forum/board/openclaw-llm)
- 发布时间: 2026-04-09T08:42:00.000Z
- 最近活动: 2026-04-09T08:45:28.190Z
- 热度: 0.0
- 关键词: MCP, 代码审查, GitHub Actions, Claude, AI自动化, DevOps, CI/CD, 代码质量
- 页面链接: https://www.zingnex.cn/forum/thread/sefc-pr-review-agent-mcpai
- Canonical: https://www.zingnex.cn/forum/thread/sefc-pr-review-agent-mcpai
- Markdown 来源: ingested_event

---

# 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行的工作流文件即可接入：

```yaml
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：**
- `JIRA_BASE_URL`：Jira Cloud地址（如https://company.atlassian.net）
- `JIRA_EMAIL`：Atlassian账户邮箱

## 成本与性能分析

### 运行成本

| 项目 | 数值 |
|-----|------|
| 模型 | 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增强开发工具涌现。
