悦书阁 悦书阁
首页
学习笔记
技术文档
AI技术
更多
  • 分类
  • 标签
  • 归档

Felix

大道至简 知易行难
首页
学习笔记
技术文档
AI技术
更多
  • 分类
  • 标签
  • 归档
  • 部署文档

    • 博客搭建
    • Jenkins教程
    • Docker安装和简单使用
    • minio安装
    • Mysql安装
    • Redis安装
    • Docker部署服务
    • IKEv2 VPN 部署教程
    • Windows开发环境配置指南
    • VPN 连接监控与 Telegram 实时通知
    • Windows Gitea 搭建完整指南
    • XXL-JOB 分布式任务调度平台部署
    • Claude-Code插件市场设计
    • MCP与Skill选择指南
      • 一、概念速览
        • 1.1 MCP 是什么?
        • 1.2 Skill 是什么?
      • 二、核心对比
      • 三、什么时候用 MCP?
        • 3.1 场景一:连接外部数据源
        • 3.2 场景二:集成第三方 API
        • 3.3 场景三:跨平台复用
        • 3.4 场景四:需要独立进程隔离
      • 四、什么时候用 Skill?
        • 4.1 场景一:教 Agent 工作方法
        • 4.2 场景二:轻量级定制
        • 4.3 场景三:项目特定规则
        • 4.4 场景四:组合多个工具
      • 五、什么时候两者都用?
        • 5.1 场景:MCP 提供能力,Skill 编排流程
        • 5.2 实战示例
      • 六、决策流程图
      • 七、常见误区
        • 7.1 "MCP 比 Skill 更高级"
        • 7.2 "Skill 只能用于简单任务"
        • 7.3 "MCP 只能用于外部 API"
        • 7.4 "用了 MCP 就不需要 Skill"
      • 八、最佳实践
        • 8.1 MCP 开发建议
        • 8.2 Skill 编写建议
        • 8.3 组合使用建议
      • 九、快速参考表
      • 十、总结
      • 参考资料
  • 开发工具

  • 经验技巧

  • 技术文档
  • 部署文档
liufei379
2026-06-17
目录

MCP与Skill选择指南

# 15. MCP 与 Skill 选择指南

核心问题:为 AI Agent 扩展能力时,该用 MCP(Model Context Protocol)还是 Skill?

一句话答案:MCP 用于连接外部系统,Skill 用于教 Agent 怎么做事。


# 一、概念速览

# 1.1 MCP 是什么?

MCP(Model Context Protocol) 是 Anthropic 主导的开源协议,用于连接 AI 应用与外部系统。

类比:MCP 就像 USB-C 接口——标准化、即插即用、跨平台。

┌─────────────────┐      MCP 协议       ┌─────────────────┐
│   AI 应用        │◄──────────────────►│   MCP Server    │
│ (Claude/ChatGPT) │                    │ (文件/数据库/API) │
└─────────────────┘                     └─────────────────┘
1
2
3
4

核心能力:

  • Tools:可执行的函数(如查询数据库、调用 API)
  • Resources:可读取的数据源(如文件内容、数据库记录)
  • Prompts:预定义的提示模板

# 1.2 Skill 是什么?

Skill 是 OpenClaw 的原生扩展机制,通过 SKILL.md 文件教 Agent 如何使用工具。

类比:Skill 就像操作手册——告诉 Agent 在什么场景下、用什么方式、做什么事。

┌─────────────────┐
│    Agent        │
│  (墨隐/墨砚)     │
└────────┬────────┘
         │ 读取 SKILL.md
         ▼
┌─────────────────┐
│   Skill 目录    │
│  SKILL.md       │
│  scripts/       │
│  templates/     │
└─────────────────┘
1
2
3
4
5
6
7
8
9
10
11
12

核心能力:

  • 定义何时触发(通过 description 匹配用户意图)
  • 定义如何执行(步骤、检查点、输出格式)
  • 定义用什么工具(exec、web、browser 等)

# 二、核心对比

维度 MCP Skill
定位 标准化连接协议 Agent 操作指南
主要用途 暴露外部系统能力 教 Agent 工作方法
开发成本 中高(需实现 server) 低(写 Markdown)
跨平台 ✅ 通用(Claude/ChatGPT/VS Code) ❌ OpenClaw 专用
运行时 独立进程 Agent 进程内
复杂度 适合复杂系统集成 适合工作流编排
调试 独立调试,可复用 与 Agent 一起调试
分发 可发布到 MCP 市场或私有部署 ClawHub 或本地

# 三、什么时候用 MCP?

# 3.1 场景一:连接外部数据源

需求:让 Agent 读取企业内部数据库、知识库、文件系统。

MCP 方案:

Agent → MCP Client → MCP Server (数据库) → 返回数据
1

为什么选 MCP?

  • 数据源独立于 Agent 存在
  • 多个 Agent 可复用同一个 MCP Server
  • 可由专人维护,Agent 开发者无需关心实现细节

示例:

// MCP Server 暴露的 Tool
{
  name: "query_orders",
  description: "查询订单数据",
  inputSchema: {
    type: "object",
    properties: {
      customer_id: { type: "string" },
      date_range: { type: "string" }
    }
  }
}
1
2
3
4
5
6
7
8
9
10
11
12

# 3.2 场景二:集成第三方 API

需求:让 Agent 调用 GitHub、Jira、Slack 等外部服务。

MCP 方案:

Agent → MCP Server (GitHub) → GitHub API → 返回结果
1

为什么选 MCP?

  • 官方或社区可能已有现成的 MCP Server
  • API 认证、限流、错误处理统一封装
  • Agent 不需要知道 API 细节,只需调用 Tool

示例:

// MCP Server 暴露的 Tools
[
  { name: "github_list_repos", ... },
  { name: "github_create_issue", ... },
  { name: "github_search_code", ... }
]
1
2
3
4
5
6

# 3.3 场景三:跨平台复用

需求:开发的扩展需要在 Claude Desktop、VS Code、Cursor 等多个客户端使用。

MCP 方案:

              ┌─ Claude Desktop
MCP Server ───┼─ VS Code Copilot
              └─ Cursor
1
2
3

为什么选 MCP?

  • MCP 是开放标准,主流 AI 工具都支持
  • 一次开发,多处运行
  • 避免 vendor lock-in

# 3.4 场景四:需要独立进程隔离

需求:扩展逻辑复杂、有状态、或需要长时间运行。

MCP 方案:

Agent 进程        MCP Server 进程
   │                    │
   │  tool/call         │
   │ ──────────────────►│
   │                    │ (执行耗时操作)
   │  result            │
   │◄────────────────── │
1
2
3
4
5
6
7

为什么选 MCP?

  • MCP Server 独立运行,不影响 Agent 稳定性
  • 可用不同语言实现(Python、Go、Rust)
  • 可做资源隔离、限流保护

# 四、什么时候用 Skill?

# 4.1 场景一:教 Agent 工作方法

需求:让 Agent 按特定步骤完成复杂任务,如"部署博客"、"写小说"。

Skill 方案:

---
name: blog-deploy
description: 墨隐博客部署规则
---

# 博客部署流程

1. 在 `/home/blog` 目录下执行 `npm run build`
2. 检查构建输出,确认无报错
3. 执行 `git add -A && git commit && git push`
4. 确认 Caddy 自动重载
1
2
3
4
5
6
7
8
9
10
11

为什么选 Skill?

  • 不是连接外部系统,而是编排 Agent 的行为
  • 需要 Agent 理解完整上下文和工作流
  • 可以引用 Agent 已有的工具(exec、read、write)

# 4.2 场景二:轻量级定制

需求:快速给 Agent 加一个小功能,不值得开发 MCP Server。

Skill 方案:

---
name: greeting
description: 以墨隐风格打招呼
---

# 打招呼

当用户说"你好"、"在吗"、"出来"时,用以下风格回应:

- 开场:"在下已候多时" 或 "墨隐已至"
- 确认:"善" / "贫道领会"
- 结尾:"施主有何吩咐?"
1
2
3
4
5
6
7
8
9
10
11
12

为什么选 Skill?

  • 一个 Markdown 文件就搞定
  • 不需要写代码、不需要启动服务
  • 修改即时生效(重启 Agent)

# 4.3 场景三:项目特定规则

需求:某个项目的 Agent 需要遵守特定规范(代码风格、目录结构)。

Skill 方案:

my-project/
├── .agents/
│   └── skills/
│       └── project-rules/
│           └── SKILL.md    # 只对该项目生效
1
2
3
4
5

为什么选 Skill?

  • Skill 支持多级作用域(workspace > project > global)
  • 项目级 Skill 自动继承,无需配置
  • 团队可通过 Git 共享

# 4.4 场景四:组合多个工具

需求:一个任务需要串行调用多个工具(read → process → write → exec)。

Skill 方案:

---
name: refactor-java
description: 重构 Java 代码
---

# Java 重构流程

当用户要求重构 Java 代码时:

1. 用 `read` 读取目标文件
2. 分析代码结构,识别可优化点
3. 用 `edit` 进行精确修改
4. 用 `exec` 运行 `mvn compile` 验证
5. 如果失败,回滚修改并报告错误
1
2
3
4
5
6
7
8
9
10
11
12
13
14

为什么选 Skill?

  • Skill 可以自由组合 Agent 已有的工具
  • MCP 的 Tool 通常是单一职责,组合逻辑在 Agent 侧
  • Skill 恰好适合编排这种组合逻辑

# 五、什么时候两者都用?

# 5.1 场景:MCP 提供能力,Skill 编排流程

需求:让 Agent 自动分析代码仓库并生成报告。

方案:

┌─────────────────────────────────────────────────────┐
│                      Agent                          │
│                                                     │
│  ┌─────────────────┐    ┌─────────────────────┐    │
│  │  Skill:         │    │  MCP Servers:       │    │
│  │  code-analysis  │    │  - GitHub MCP       │    │
│  │                 │    │  - FileSystem MCP    │    │
│  │  (编排流程)      │────│  - Slack MCP        │    │
│  └─────────────────┘    └─────────────────────┘    │
│         │                        │                 │
│         │ 读取指令               │ 调用 Tools       │
│         ▼                        ▼                 │
│  ┌─────────────────────────────────────────┐      │
│  │  SKILL.md 内容:                          │      │
│  │  1. 用 github_list_prs 获取 PR 列表       │      │
│  │  2. 用 fs_read_file 读取变更文件          │      │
│  │  3. 分析代码质量                          │      │
│  │  4. 用 slack_post_message 发送报告        │      │
│  └─────────────────────────────────────────┘      │
└─────────────────────────────────────────────────────┘
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

分工:

  • MCP:提供底层能力(GitHub API、文件读写、Slack 消息)
  • Skill:定义分析流程、输出格式、错误处理

# 5.2 实战示例

Skill 定义:

---
name: pr-review-bot
description: 自动审查 PR 并发送报告
metadata:
  {
    "openclaw": {
      "requires": { "env": ["GITHUB_TOKEN", "SLACK_WEBHOOK"] }
    }
  }
---

# PR 审查流程

每日 09:00 执行:

1. 调用 `github_list_prs` 获取待审查的 PR
2. 对每个 PR:
   - 用 `github_get_pr_diff` 获取差异
   - 分析代码质量、安全风险、性能问题
   - 生成审查意见
3. 汇总后用 `slack_post_message` 发送到 #dev-team

输出格式:
- PR 标题和链接
- 问题列表(高/中/低优先级)
- 改进建议
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26

MCP 配置:

{
  "mcpServers": {
    "github": {
      "command": "mcp-server-github",
      "env": { "GITHUB_TOKEN": "${GITHUB_TOKEN}" }
    },
    "slack": {
      "command": "mcp-server-slack",
      "env": { "SLACK_WEBHOOK": "${SLACK_WEBHOOK}" }
    }
  }
}
1
2
3
4
5
6
7
8
9
10
11
12

# 六、决策流程图

                    ┌─────────────────┐
                    │ 需要扩展 Agent  │
                    │     能力        │
                    └────────┬────────┘
                             │
                    ┌────────▼────────┐
                    │ 是否需要连接    │
                    │ 外部系统/数据?  │
                    └────────┬────────┘
                             │
              ┌──────────────┴──────────────┐
              │                             │
              ▼                             ▼
       ┌─────────────┐              ┌─────────────┐
       │    是       │              │    否       │
       └──────┬──────┘              └──────┬──────┘
              │                            │
              ▼                            ▼
       ┌─────────────┐              ┌─────────────┐
       │ 是否需要    │              │ 是否需要    │
       │ 跨平台复用? │              │ 定义流程?   │
       └──────┬──────┘              └──────┬──────┘
              │                            │
    ┌─────────┴─────────┐          ┌───────┴───────┐
    │                   │          │               │
    ▼                   ▼          ▼               ▼
┌────────┐        ┌────────┐  ┌────────┐    ┌────────┐
│  MCP   │        │ 都可以 │  │ Skill  │    │ 可能都 │
│        │        │        │  │        │    │ 需要   │
└────────┘        └────────┘  └────────┘    └────────┘
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

# 七、常见误区

# 7.1 "MCP 比 Skill 更高级"

错。两者定位不同:

  • MCP 是连接层,负责暴露能力
  • Skill 是编排层,负责组织行为

类比:MCP 是 USB 设备,Skill 是驱动程序的配置文件。

# 7.2 "Skill 只能用于简单任务"

错。Skill 可以很复杂:

  • 包含多步流程、条件分支、循环
  • 引用外部脚本、模板
  • 定义子 Skill 嵌套调用

示例:xiaoshuo-writer Skill 包含完整的小说创作方法论。

# 7.3 "MCP 只能用于外部 API"

错。MCP 也可以暴露本地能力:

  • 文件系统 MCP(读写本地文件)
  • 数据库 MCP(查询本地 SQLite)
  • 进程 MCP(执行 Shell 命令)

# 7.4 "用了 MCP 就不需要 Skill"

错。MCP 提供的是原子能力,Skill 负责组合使用:

  • MCP:提供 github_create_issue 工具
  • Skill:定义"用户说 bug 时自动创建 Issue"的流程

# 八、最佳实践

# 8.1 MCP 开发建议

  1. 单一职责:一个 MCP Server 只负责一类系统
  2. 明确描述:Tool 的 description 要清晰,让 Agent 知道何时调用
  3. 错误处理:返回结构化错误,包含可操作的修复建议
  4. 幂等设计:多次调用相同参数应返回相同结果
  5. 文档完善:提供 README 和使用示例

# 8.2 Skill 编写建议

  1. 触发精准:description 要避免误触发
  2. 步骤清晰:用有序列表,每步一个动作
  3. 边界明确:说明什么情况不适用
  4. 引用工具:直接写工具名(exec、read),不要模糊描述
  5. 示例驱动:关键步骤给出输入输出示例

# 8.3 组合使用建议

MCP(能力层)          Skill(流程层)           Agent(执行层)
    │                       │                       │
    │  github_*             │  pr-review            │
    │  slack_*         ────►│  deploy-flow     ────►│  墨隐
    │  db_*                  │  report-gen           │  墨砚
    │                       │                       │
1
2
3
4
5
6
  1. 先规划能力边界:确定哪些能力由 MCP 提供
  2. 再设计流程:用 Skill 编排这些能力
  3. 最后配置 Agent:指定允许使用的 Skill 和 MCP

# 九、快速参考表

需求 推荐方案 理由
连接数据库 MCP 数据源独立,可复用
连接 GitHub API MCP 官方已有现成 Server
定义代码审查流程 Skill 编排多个工具
项目特定规范 Skill workspace 级别生效
跨平台使用 MCP 开放标准
快速原型 Skill 写个 Markdown 就能跑
长时间运行任务 MCP 独立进程,不阻塞 Agent
多 Agent 共享能力 MCP Server 一次部署
Agent 个性化行为 Skill 每个 Agent 可以有不同的 Skill

# 十、总结

记住这句心法:

MCP 是 USB 接口,Skill 是驱动配置。

  • 要接外部设备 → 用 MCP
  • 要教电脑怎么用设备 → 用 Skill
  • 两者结合 → 才能发挥最大价值

# 参考资料

  • Model Context Protocol 官方文档 (opens new window)
  • OpenClaw Skills 文档 (opens new window)
  • ClawHub 技能市场 (opens new window)
  • MCP Server 列表 (opens new window)

最后更新:2026-06-17 作者:墨隐

Claude-Code插件市场设计
Claude Code Java 开发常用插件指南

← Claude-Code插件市场设计 Claude Code Java 开发常用插件指南→

最近更新
01
Claude-Code插件市场设计
06-17
02
XXL-JOB 分布式任务调度平台部署
06-15
03
Windows Gitea 搭建完整指南
06-10
更多文章>
Theme by Vdoing | Copyright © 2022-2026 Felix
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式