MCP、Skill有什么区别

54 阅读3分钟

MCP(Model Context Protocol)Skill 是两个在 AI Agent 架构中常被提及的概念,但它们来自不同的技术体系、设计目标和抽象层次。下面从定义、来源、用途、关系等角度清晰对比:


✅ 一、核心定义

概念全称定义
MCPModel Context Protocol一种标准化协议,用于让 LLM 与外部工具/服务进行结构化通信(类似函数调用的通用接口规范)
Skill一种功能单元抽象,代表 Agent 能执行的具体能力(如“查天气”、“发邮件”),通常包含工具 + 提示词 + 逻辑

🌐 二、来源与生态

MCPSkill
提出方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})

📊 五、对比总结表

维度MCPSkill
类型通信协议(Protocol)功能模块(Module)
作用范围跨框架、跨模型限于 Semantic Kernel
是否标准化✅ 是(开源规范)❌ 否(微软私有抽象)
部署方式独立 MCP Server集成在 Agent 应用中
典型工具mcp-server-filesystem, mcp-server-slackTextSkill, 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 是货车(运输货物的功能单元)
货车可以跑在高速公路上,但高速公路不是货车。