MCP(Model Context Protocol) 和 Skill 是两个在 AI Agent 架构中常被提及的概念,但它们来自不同的技术体系、设计目标和抽象层次。下面从定义、来源、用途、关系等角度清晰对比:
✅ 一、核心定义
| 概念 | 全称 | 定义 |
|---|---|---|
| MCP | Model Context Protocol | 一种标准化协议,用于让 LLM 与外部工具/服务进行结构化通信(类似函数调用的通用接口规范) |
| Skill | — | 一种功能单元抽象,代表 Agent 能执行的具体能力(如“查天气”、“发邮件”),通常包含工具 + 提示词 + 逻辑 |
🌐 二、来源与生态
| MCP | Skill | |
|---|---|---|
| 提出方 | Modular(2024年开源) | Microsoft Semantic Kernel(2023年) |
| 定位 | 跨厂商的通信协议标准(类似 gRPC for AI Tools) | Agent 能力的封装单元(框架内概念) |
| 目标 | 让任何 LLM 能调用任何工具,无需适配 | 在 Semantic Kernel 中组织可复用的功能模块 |
🔍
- MCP 是“语言”:定义了 LLM 和工具之间如何对话(请求/响应格式)。
- Skill 是“功能包”:是某个框架中实现具体任务的代码+配置。
🔧 三、技术本质区别
▶ MCP:协议层(Protocol Layer)
- 定义了一套 JSON-RPC 风格的 API 规范
- 工具通过 MCP Server 暴露能力
- LLM 通过 MCP Client 发起调用
- 与模型、框架无关
graph LR
A[LLM] -- MCP Request --> B[MCP Server]
B -- 执行工具 --> C[Weather API]
C -- MCP Response --> A
✅ 优势:
- 工具一次实现,所有支持 MCP 的 LLM 都能用
- 社区可共享 MCP 工具(如
mcp-server-browser,mcp-server-notion)
▶ Skill:应用层(Application Layer)
- 在 Semantic Kernel 中,Skill 是一个目录或类:
EmailSkill/ ├── send_email.yaml # 函数定义 └── send_email.py # 实现 - 绑定到 Kernel 后,LLM 可通过自然语言触发
- 强依赖 Semantic Kernel 框架
✅ 优势:
- 封装业务逻辑(如“发送周报” = 查询数据 + 生成摘要 + 发邮件)
- 支持上下文记忆、插件组合
🔗 四、关系:MCP 可以作为 Skill 的底层实现
虽然二者属于不同层级,但可以结合使用:
Skill 是“做什么”,MCP 是“怎么做”的标准化通道
例如:
- 你用 Semantic Kernel 定义一个
SearchSkill - 该 Skill 内部不直接调用 Google API,而是通过 MCP 协议调用一个 MCP Search Server
- 这样,Search 功能就变成了可替换、可共享的 MCP 服务
# Semantic Kernel 中的 Skill 可能这样调用 MCP
class SearchSkill:
def search(self, query):
# 通过 MCP Client 调用远程搜索服务
return mcp_client.call("search", {"query": query})
📊 五、对比总结表
| 维度 | MCP | Skill |
|---|---|---|
| 类型 | 通信协议(Protocol) | 功能模块(Module) |
| 作用范围 | 跨框架、跨模型 | 限于 Semantic Kernel |
| 是否标准化 | ✅ 是(开源规范) | ❌ 否(微软私有抽象) |
| 部署方式 | 独立 MCP Server | 集成在 Agent 应用中 |
| 典型工具 | mcp-server-filesystem, mcp-server-slack | TextSkill, TimeSkill, EmailSkill |
| 类比 | USB 接口标准 | 带 USB 接口的打印机 |
💡 六、实际应用场景
| 场景 | 用 MCP | 用 Skill |
|---|---|---|
| 想让 Ollama + DeepSeek + Claude 都能用同一个日历工具 | ✅ MCP(工具只需实现一次) | ❌ 需为每个框架写适配 |
| 在 .NET 应用中快速集成 AI 发邮件功能 | ❌ | ✅ Semantic Kernel Skill |
| 构建企业级 Agent 平台,支持第三方工具接入 | ✅ MCP 是理想选择 | 需定制扩展机制 |
✅ 结论
- MCP ≠ Skill,它们不在同一抽象层级。
- MCP 是“工具调用的通用语言”,解决互操作性问题。
- Skill 是“能力的封装单位”,解决功能组织问题。
- 未来趋势:Skill 类抽象可能会底层采用 MCP 协议,实现“一次编写,到处调用”。
🌟 简单记:
MCP 是高速公路(标准通道),Skill 是货车(运输货物的功能单元)。
货车可以跑在高速公路上,但高速公路不是货车。