## MCP 与 Skills 的区别

MCP(Model Context Protocol)和 Skills 是两种不同层面的 AI 能力扩展机制。简单来说:**MCP 是“连接外部工具”的协议,Skills 是“封装复杂能力”的框架**。

---

## 一、核心定位对比

| 维度 | MCP | Skills |
|------|-----|--------|
| **本质** | 一种**协议/通信标准** | 一种**能力封装框架** |
| **目的** | 让 AI 能够连接和调用外部工具、数据源 | 让 AI 掌握复杂的、多步骤的专业能力 |
| **关注点** | 如何连接(How to connect) | 如何做事(How to do) |
| **类比** | USB 接口协议 | 一个完整的软件应用 |
| **抽象层级** | 基础设施层 | 应用能力层 |

---

## 二、MCP(Model Context Protocol)详解

### 2.1 是什么?

MCP 是 Anthropic 推出的**开放协议**,旨在标准化 AI 应用与外部数据源、工具之间的连接方式。

### 2.2 核心架构

```
┌─────────────────────────────────────────────────┐
│                   AI 应用                        │
│              (Dify / Claude / ...)              │
└─────────────────────┬───────────────────────────┘
                      │ MCP 协议
┌─────────────────────▼───────────────────────────┐
│                 MCP Server                       │
│         (实现标准化接口的中间层)                   │
└─────────────────────┬───────────────────────────┘
                      │ 具体 API/驱动
┌─────────────────────▼───────────────────────────┐
│          外部工具 / 数据源                        │
│     (数据库 / 文件系统 / API / 浏览器)            │
└─────────────────────────────────────────────────┘
```

### 2.3 MCP 解决的问题

| 问题 | 传统方式 | MCP 方式 |
|------|---------|---------|
| 连接数据库 | 每个应用自己写连接代码 | 统一 MCP Server,一次开发处处使用 |
| 调用工具 | 硬编码 API 调用 | 通过 MCP 协议动态发现和调用 |
| 多工具集成 | 每个工具单独对接 | 标准化接入,可复用 |
| 上下文传递 | 需要手动管理 | 协议内置上下文管理 |

### 2.4 MCP 的实际应用

**场景示例**:让 AI 查询公司数据库

1. 开发一个 MCP Server,封装数据库查询能力
2. 在 Dify 中配置 MCP 服务地址
3. AI 可以通过自然语言调用:“查询上个月的销售额”
4. MCP Server 将自然语言转换为 SQL 并执行

**典型 MCP Server 示例**:
- 文件系统 MCP:让 AI 读写本地文件
- GitHub MCP:让 AI 操作仓库、Issue
- PostgreSQL MCP:让 AI 执行数据库查询
- 浏览器 MCP:让 AI 控制浏览器进行网页操作

---

## 三、Skills 详解

### 3.1 是什么?

Skills 是一种**能力封装框架**,将专业知识、工作流程、提示词、工具调用等组合成一个可复用的“技能包”。

### 3.2 核心架构

```
┌─────────────────────────────────────────────────┐
│                    Skills                        │
│         (完整的专业能力封装)                      │
├─────────────────────────────────────────────────┤
│  • 专业知识(领域知识库)                         │
│  • 工作流程(多步骤 SOP)                        │
│  • 提示词模板(专用 Prompt)                     │
│  • 工具调用(可能通过 MCP)                      │
│  • 输出格式(结构化结果)                        │
└─────────────────────────────────────────────────┘
```

### 3.3 Skills 的核心特点

| 特点 | 说明 |
|------|------|
| **封装性** | 将复杂能力打包成一个可调用的“技能” |
| **组合性** | 一个 Skill 可以调用其他 Skill |
| **领域专属** | 针对特定任务优化(如代码审查、数据分析) |
| **可复用** | 一次创建,可在不同场景复用 |
| **协作性** | 多个 Skill 可协同完成复杂任务 |

### 3.4 Skills 的实际应用

**场景示例**:创建“代码审查”Skill

```
┌─────────────────────────────────────────┐
│         Code Review Skill               │
├─────────────────────────────────────────┤
│ 1. 获取待审查代码(通过 MCP 从 GitHub)  │
│ 2. 按规范检查:                         │
│    - 代码风格                           │
│    - 安全隐患                           │
│    - 性能问题                           │
│    - 测试覆盖                           │
│ 3. 生成审查报告(结构化输出)            │
│ 4. 提交评论到 PR(通过 MCP)            │
└─────────────────────────────────────────┘
```

**其他 Skill 示例**:
- 数据分析 Skill:自动清洗、分析、可视化数据
- 文档撰写 Skill:按照公司模板生成技术文档
- 客服处理 Skill:工单分类、自动回复、升级流程

---

## 四、MCP vs Skills 详细对比

| 维度 | MCP | Skills |
|------|-----|--------|
| **定义层级** | 协议/接口标准 | 能力/应用封装 |
| **作用范围** | AI ↔ 外部世界 | AI 的内部能力 |
| **复杂度** | 中等(实现协议) | 高(需要领域知识) |
| **复用粒度** | 工具级(数据库、API) | 任务级(报告生成、代码审查) |
| **依赖关系** | Skills 可以调用 MCP | MCP 不依赖 Skills |
| **开发主体** | 工具提供商、开发者 | 领域专家、应用开发者 |
| **典型形式** | 独立的 Server 进程 | 配置文件 + 提示词 + 流程 |

---

## 五、两者的关系

MCP 和 Skills 不是互斥的,而是**互补关系**:

```
┌─────────────────────────────────────────────────────┐
│                   AI 应用                            │
│  ┌─────────────────────────────────────────────┐   │
│  │              Skills 层                       │   │
│  │  ┌──────────┐ ┌──────────┐ ┌──────────┐   │   │
│  │  │代码审查  │ │数据分析  │ │客服处理  │   │   │
│  │  │ Skill   │ │ Skill   │ │ Skill   │   │   │
│  │  └────┬─────┘ └────┬─────┘ └────┬─────┘   │   │
│  └───────┼────────────┼────────────┼───────────┘   │
│          │            │            │               │
│          ▼            ▼            ▼               │
│  ┌─────────────────────────────────────────────┐   │
│  │              MCP 层                          │   │
│  │  ┌──────────┐ ┌──────────┐ ┌──────────┐   │   │
│  │  │GitHub    │ │数据库    │ │文件系统  │   │   │
│  │  │ MCP      │ │ MCP      │ │ MCP      │   │   │
│  │  └──────────┘ └──────────┘ └──────────┘   │   │
│  └─────────────────────────────────────────────┘   │
└─────────────────────────────────────────────────────┘
```

### 5.1 组合使用示例

**场景**:创建一个“销售周报生成”Skill

- **底层使用 MCP**:
  - PostgreSQL MCP:查询销售数据
  - 文件系统 MCP:读取历史报告模板
  - 邮件 MCP:发送报告给相关人员

- **上层封装为 Skill**:
  - 定义数据查询逻辑
  - 编排数据分析流程
  - 封装报告生成规范
  - 设置发送时机和收件人

---

## 六、选择建议

| 场景 | 推荐方案 |
|------|---------|
| 需要让 AI 访问数据库、文件、API 等外部资源 | 使用 MCP |
| 需要封装某个领域的专业工作流程 | 使用 Skills |
| 需要让 AI 执行多步骤的复杂任务 | 使用 Skills,内部调用 MCP |
| 需要开发可复用的工具供多个 AI 应用使用 | 开发 MCP Server |
| 需要标准化 AI 与外部系统的交互 | 采用 MCP 协议 |
| 需要让非技术用户也能创建 AI 能力 | 设计 Skills 模板 |

---

## 七、总结

| 维度 | MCP | Skills |
|------|-----|--------|
| **一句话定义** | AI 的“USB 接口” | AI 的“应用软件” |
| **核心价值** | 标准化连接 | 专业化能力 |
| **使用门槛** | 需要开发 | 需要领域知识 |
| **在 Dify 中的体现** | 外部知识库 API、插件 | 工作流、知识库、Agent |

**理解要点**:
- MCP 解决的是**“AI 怎么连接世界”**的问题
- Skills 解决的是**“AI 怎么专业地做事”**的问题
- 两者结合,才能构建真正强大且实用的 AI 应用

在 Dify 生态中,你可以通过**插件系统**接入 MCP 服务,通过**工作流编排**来构建类似 Skills 的复杂能力封装。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐