Skip to content

3.2 只用 MCP 的体验

小林接下来试试纯 MCP 方案——"只有工具箱没有 SOP"会怎样?


MCP 方案

小林搭建了 GitHub 和 Database 两个 MCP Server:

python
# GitHub Security Server
@mcp.tool()
def get_pr_diff(pr_number: int) -> str:
    """获取 PR 的代码变更"""

@mcp.tool()
def post_review_comment(pr_number: int, comment: str) -> str:
    """在 PR 上发布审查评论"""

@mcp.tool()
def list_open_prs() -> str:
    """列出所有待审查的 PR"""

# Database Server
@mcp.tool()
def query_vulnerability_history(file_path: str) -> str:
    """查询该文件的历史漏洞"""

@mcp.tool()
def search_similar_bugs(keyword: str) -> str:
    """搜索相似的历史 Bug"""

体验过程

1AI 自动列出待审查 PR,自动获取 diff ✅
2AI 自动查询历史漏洞模式 ✅
3AI 随机检查了几个点,但漏了 CSRF ⚠️
4输出格式这次用表格,下次用列表 ⚠️
5AI 自动在 PR 上发布了评论 ✅
6下一个 PR,AI 检查的项目又不一样了 ❌

能做到什么

能力说明
✅ 自动获取代码AI 直接调用 get_pr_diff,无需手动
✅ 自动发布评论AI 直接调用 post_review_comment
✅ 查询历史模式AI 调用 query_vulnerability_history
✅ 持续运行可以定时扫描新 PR
✅ 明确的错误反馈工具调用失败会有报错

做不到什么

局限说明
❌ 审查标准不固定AI 可能这次查 SQL 注入,下次忘了
❌ 输出格式不统一一会儿表格、一会儿列表、一会儿自由文本
❌ 流程不可控有时先查性能,有时先查安全,没有固定顺序
⚠️ 质量波动同一个 PR 审查两次,结果可能不同

质量波动实例

小林对同一个 PR 用纯 MCP 方案审查了两次:

第一次审查
• 发现 SQL 注入风险
• 发现 XSS 风险
• 遗漏了 CSRF 检查
• 输出用表格格式
• 按文件顺序审查
第二次审查(同一 PR)
• 发现 SQL 注入风险
• 遗漏了 XSS 检查
• 发现了 CSRF 风险
• 输出用列表格式
• 按安全类别审查

问题:两次审查发现的漏洞不同、输出格式不同、审查顺序不同。这是因为没有 Skill 来标准化"该查什么、怎么查、怎么输出"。


小林的评价

适合
• 需要自动化获取和执行
• 审查频率高
• 需要查询外部数据
• 需要持续自动运行
不适合
• 需要稳定一致的审查标准
• 需要统一的输出格式
• 需要可审计的审查流程
• 对合规性有要求

本节核心要点

  • 只用 MCP:自动化好,但审查标准不稳定、输出格式不统一
  • 最大的痛点:同样的 PR 审查两次,结果可能不同——质量波动大
  • MCP 的硬失效是优势——至少出了错你能知道
  • 适合需要自动化但不需要标准化的场景

← 上一节:只用 Skill 的体验 | 目录 | 下一节:Skill + MCP 协同实战 →