Skip to content

Skills 与 MCP 的关系

核心观点:Skills 和 MCP 是相辅相成的,不是替代关系


最重要的一句话

Skills 是"怎么用工具",MCP 是"提供什么工具"


重新认识 MCP

MCP 是什么?

MCP(Model Context Protocol) 是一个开放协议,用于连接 AI 和外部工具。

类比

  • MCP = USB 接口
  • 各种工具(数据库、API、文件系统)= USB 设备
  • AI Agent = 电脑

有了 MCP

  • AI 可以用统一的方式访问各种工具
  • 不需要为每个工具写专门的代码

MCP 提供什么?

MCP 提供三种能力

  1. 工具(Tools)

    • AI 可以调用的函数
    • 例如:read_file、search_database
  2. 资源(Resources)

    • AI 可以读取的数据
    • 例如:配置文件、数据库记录
  3. 提示(Prompts)

    • 预定义的提示模板
    • 例如:代码审查提示

Skills 和 MCP 的关系

核心关系图

┌─────────────────────────────────────────────────────────┐
│                        AI Agent                          │
│                     (Claude/GPT 等)                      │
└───────────────────────┬─────────────────────────────────┘

                        │ 使用

┌─────────────────────────────────────────────────────────┐
│                       Skills                             │
│                   (技能层)                             │
│                                                         │
│  Skills 告诉 AI:                                         │
│  - 什么时候用什么工具                                     │
│  - 如何组合使用多个工具                                   │
│  - 完成任务的步骤是什么                                   │
│                                                         │
│  例如:code_search Skill                                 │
│  "当用户要搜索代码时,使用 grep 工具搜索文件内容"          │
└───────────────────────┬─────────────────────────────────┘

                        │ 调用

┌─────────────────────────────────────────────────────────┐
│                       MCP 工具                           │
│                   (工具层)                             │
│                                                         │
│  MCP 提供具体的执行能力:                                 │
│  - 文件系统操作(read_file, write_file)                 │
│  - 代码搜索(grep)                                      │
│  - 数据库查询(execute_sql)                             │
│  - API 调用(http_request)                              │
│                                                         │
│  这些工具通过 MCP 协议统一暴露给 AI                       │
└─────────────────────────────────────────────────────────┘

关系总结

层次角色职责类比
AI Agent大脑思考、决策指挥官
Skills战术知道怎么完成任务作战手册
MCP 工具武器具体的执行能力枪支、弹药

详细对比

MCP:工具提供者

职责

  • 提供底层的执行能力
  • 统一的接口标准
  • 不关心任务逻辑

例子

yaml
# MCP 服务器提供的工具
tools:
  - name: grep
    description: "在文件中搜索文本"
    parameters:
      - pattern: 搜索模式
      - path: 搜索路径

特点

  • ✅ 通用性强
  • ✅ 可复用
  • ❌ 没有任务逻辑

Skills:任务编排者

职责

  • 知道什么时候用什么工具
  • 知道如何组合工具
  • 知道完成任务的步骤

例子

yaml
# code_search Skill
instructions: |
  你是一个代码搜索专家。

  工作流程:
  1. 理解用户搜索意图
  2. 选择工具(优先用 grep)
  3. 构建搜索查询
  4. 执行并返回结果

  工具依赖:
  - grep(来自 MCP)
  - find(来自 MCP)

特点

  • ✅ 有任务逻辑
  • ✅ 可以组合工具
  • ❌ 依赖 MCP 工具

实际例子对比

场景:搜索代码

只用 MCP(没有 Skills)

你:搜索所有使用 useState 的地方

AI:(需要自己判断用什么工具)
我该用哪个工具?
- read_file?不对,这个只能读单个文件
- grep?对,这个可以搜索

[调用 MCP 的 grep 工具]
grep -r "useState" --include="*.js"

找到结果...

问题

  • AI 每次都要重新判断
  • 不知道最佳实践
  • 可能选错工具

用 Skills + MCP

你:搜索所有使用 useState 的地方

AI:(code_search Skill 自动知道怎么做)
我是代码搜索专家,我用 grep 工具来搜索。

[自动调用 MCP 的 grep 工具]
grep -r "useState" --include="*.js" --include="*.jsx"

找到结果...

优势

  • Skill 已经封装了最佳实践
  • AI 直接执行,不需要判断
  • 结果更可靠

更复杂的例子:代码审查

场景:审查一段代码

只用 MCP

你:审查这段代码

AI:(需要自己想步骤)
1. 先读取文件(用 read_file)
2. 搜索类似的代码(用 grep)
3. 检查错误(用什么工具?不知道...)

结果:审查不全面,因为 AI 不知道完整的流程

用 Skills + MCP

code_review Skill

yaml
instructions: |
  你是一个代码审查专家。

  审查流程:
  1. 读取目标代码(read_file)
  2. 搜索类似代码做对比(grep)
  3. 运行测试(test_runner)
  4. 检查代码规范(linter)
  5. 生成审查报告

  工具依赖:
  - read_file(MCP)
  - grep(MCP)
  - test_runner(MCP)
  - linter(MCP)
你:审查这段代码

AI:(code_review Skill 知道完整流程)
我是代码审查专家,我来系统地审查这段代码。

1. [读取代码](read_file)
2. [搜索类似代码](grep)
3. [运行测试](test_runner)
4. [检查规范](linter)
5. [生成报告]

审查完成!发现以下问题:
...

优势

  • 流程完整,不会遗漏
  • 逻辑清晰,可复现
  • 结果专业

它们是互补的,不是竞争的

错误理解

误解 1:"Skills 会替代 MCP"

  • 错!Skills 依赖 MCP 提供工具

误解 2:"有了 MCP 就不需要 Skills"

  • 错!没有 Skills,AI 不知道如何用好 MCP 工具

误解 3:"Skills 和 MCP 是竞争关系"

  • 错!它们是合作关系

正确理解

MCP 提供工具能力

  • 提供底层工具
  • 统一接口
  • 标准化协议

Skills 提供任务逻辑

  • 知道什么时候用什么工具
  • 知道如何组合工具
  • 封装最佳实践

两者配合,效率最高

  • MCP = 执行层
  • Skills = 逻辑层
  • AI = 决策层

决策树:什么时候用哪个?

你需要让 AI 完成一个任务

    ├─ 需要访问外部数据/工具?
    │   └─ 是 → 需要 MCP 提供这些工具

    ├─ 任务有固定流程?
    │   └─ 是 → 用 Skills 封装流程

    └─ 需要组合多个工具?
        └─ 是 → 用 Skills 编排工具

例子 1:简单文件读取

需求:读取一个文件的内容

方案:只需要 MCP

  • 直接用 MCP 的 read_file 工具
  • 不需要 Skills

例子 2:代码搜索

需求:在代码库中搜索代码

方案:Skills + MCP

  • Skills(code_search):知道如何搜索
  • MCP(grep):提供搜索能力

例子 3:复杂代码重构

需求:重构一个模块,包括:

  • 搜索代码
  • 分析依赖
  • 重构代码
  • 运行测试
  • 更新文档

方案:Skills + MCP

  • Skills(refactor):编排整个流程
  • MCP:提供各种工具(grep、read_file、write_file、test_runner)

实际应用建议

作为使用者

  1. 优先使用官方 Skills

    • 稳定可靠
    • 持续更新
  2. 理解常用 Skills

    • code_search
    • refactor
    • file_operations
  3. 不需要深入 MCP

    • 知道概念即可
    • Skills 已经封装好了

作为开发者

  1. 需要同时了解两者

    • MCP:如何提供工具
    • Skills:如何封装逻辑
  2. 先学 MCP

    • 理解工具层
    • 再学 Skills 封装
  3. 开发自定义 Skills

    • 封装团队的最佳实践
    • 提升开发效率

总结

核心要点

  1. MCP 提供工具:文件操作、代码搜索、数据库访问
  2. Skills 封装逻辑:什么时候用什么工具、如何组合
  3. 两者配合:MCP = 执行层,Skills = 逻辑层
  4. 不是竞争关系:它们是相辅相成的

一句话记住

MCP 是"武器库",Skills 是"武功秘籍",AI 是"侠客"

  • 侠客需要武器(MCP 提供工具)
  • 侠客需要武功(Skills 告诉怎么用)
  • 两者配合,侠客才能行侠仗义

下一步

现在你已经理解了 Skills 和 MCP 的关系。

接下来,我们将通过实战案例来看看如何在实际项目中使用 Skills。


← 返回模块目录 | 继续学习:实战应用 →

最近更新

基于 Apache 2.0 许可发布