Skip to content

3.3 Skill + MCP 协同实战

小林体验了纯 Skill 和纯 MCP 的局限,现在来试试两者结合——"SOP + 工具箱"。


协同方案

Skill 负责知识层(定义标准、流程、格式):

markdown
# SKILL.md: security-code-review

## Instructions
你是一个安全代码审查专家。审查代码时请按以下标准:

### 审查清单(必须逐项检查)
1. SQL 注入 — 检查所有数据库查询是否使用参数化
2. XSS — 检查所有用户输入是否转义
3. CSRF — 检查状态变更操作是否有 CSRF Token
4. 敏感信息 — 检查是否有硬编码密钥/密码
5. 认证授权 — 检查是否有未保护的 API 端点

### 审查流程
1. 先调用 get_pr_diff 获取代码变更
2. 调用 query_vulnerability_history 查询该文件的历史漏洞
3. 对照审查清单逐项检查
4. 按标准格式输出结果
5. 调用 post_review_comment 发布评论

### 输出格式
对每个发现的问题:
- 严重程度:🔴高危 / 🟡中危 / 🟢低危
- 位置:文件名:行号
- 描述:问题说明
- 建议:修复方案

MCP 负责连接层(提供工具能力):

python
# GitHub Security Server(同 3.2)
@mcp.tool()
def get_pr_diff(pr_number: int) -> str: ...
@mcp.tool()
def post_review_comment(pr_number: int, comment: str) -> str: ...
@mcp.tool()
def list_open_prs() -> str: ...

# Database Server
@mcp.tool()
def query_vulnerability_history(file_path: str) -> str: ...

协同流程

SkillSkill 激活,注入审查标准、流程、格式
MCPAI 调用 list_open_prs 获取待审查 PR 列表
MCPAI 调用 get_pr_diff 获取代码变更
MCPAI 调用 query_vulnerability_history 查询历史
SkillAI 按审查清单逐项检查(标准由 Skill 定义)
SkillAI 按标准格式输出结果(格式由 Skill 定义)
MCPAI 调用 post_review_comment 发布评论
结果标准化审查 + 自动化执行 ✅

三种方案对比

只用 Skill
审查标准一致
输出格式统一
手动获取代码
手动发布评论
无法查历史
无法持续运行
只用 MCP
审查标准波动
输出格式不统一
自动获取代码
自动发布评论
能查历史
可持续运行
Skill + MCP
审查标准一致
输出格式统一
自动获取代码
自动发布评论
能查历史
可持续运行

协同的关键

Skill 和 MCP 的协同不是简单叠加,而是相互增强

没有对方有了对方
Skill 说"查询历史漏洞"——但 AI 做不到MCP 提供 query_vulnerability_history——AI 能做到
MCP 返回历史漏洞数据——AI 不知道怎么用Skill 说"历史有相似漏洞的文件要重点检查"——AI 知道怎么用
Skill 说"按严重程度排序"——AI 可能忘MCP 工具返回结构化数据——格式确定,AI 排序容易

核心:Skill 告诉 AI「应该做什么、怎么思考」,MCP 告诉 AI「能做什么、怎么操作」。两者结合才能发挥最大价值。


成本对比

Skill-onlyMCP-onlySkill+MCP
开发时间
1 小时
2 天
3 天
维护成本
中高
Token 成本
高(持续)
低(按需)
审查质量
高但不自动化
低且不稳定
高且自动化

本节核心要点

  • Skill + MCP 协同:Skill 定义标准和流程,MCP 提供工具能力
  • 协同流程:Skill 激活 → MCP 获取数据 → Skill 指导审查 → MCP 执行操作
  • 1+1 > 2:Skill 让 MCP 的数据用得更好,MCP 让 Skill 的指令能落地
  • 成本中等,但质量和自动化程度最高

练习:为你的项目设计一个 Skill + MCP 协同方案。列出 Skill 负责什么、MCP 负责什么。


← 上一节:只用 MCP 的体验 | 目录 | 下一节:失效模式与调试 →