当前位置: 首页
AI教程
MCP与Agent Skill的核心区别解析

MCP与Agent Skill的核心区别解析

热心网友 时间:2026-06-06
转载

MCP 与 Skill 深度对比:AI Agent 的两种扩展哲学用 AI Agent 工具(Claude Code、Cursor、Windsurf 等)的时候,经常会遇到两个概念:MCP(Model Context Protocol)Skill(Agent Skill)它们看起来都是“扩展 AI

MCP 与 Skill 深度对比:AI Agent 的两种扩展哲学

用 AI Agent 工具(Claude Code、Cursor、Windsurf 等)的时候,经常会遇到两个概念:

别搞混了!MCP 和 Agent Skill 到底有什么区别?

  • MCP(Model Context Protocol)
  • Skill(Agent Skill)

它们看起来都是“扩展 AI 能力”的方式,但具体有什么区别?为什么需要两套机制?该在什么场景下选择哪一个?

这篇文章会从设计哲学、技术架构、使用场景三个维度,把这两个概念彻底讲清楚。

一句话区分

先给个简单的定位:

用 Anthropic 官方的说法:MCP 是 AI 的“手”(能触碰外部世界),Skill 是 AI 的“技能书”(知道怎么做某件事)。

你需要两者配合:MCP 让 AI 能连接数据库,Skill 教 AI 怎么分析查询结果。

MCP:AI 应用的 USB-C 接口

MCP 是什么

MCP(Model Context Protocol)是 Anthropic 在 2024 年 11 月发布的开源协议,用于标准化 AI 应用与外部系统的交互方式。

官方的比喻是“AI 应用的 USB-C 接口”——就像 USB-C 提供了一种通用的方式连接各种设备,MCP 提供了一种通用的方式连接各种工具和数据源。

关键点:MCP 不是 Claude 专属的。它是一个开放协议,理论上任何 AI 应用都可以实现。截至 2025 年初,已经被多个平台采用:

  • Anthropic: Claude Desktop、Claude Code
  • OpenAI: ChatGPT、Agents SDK、Responses API
  • Google: Gemini SDK
  • Microsoft: Azure AI Services
  • 开发工具: Zed、Replit、Codeium、Sourcegraph

到 2025 年 2 月,已经有超过 1000 个开源 MCP 连接器。

MCP 的架构

MCP 基于 JSON-RPC 2.0 协议,采用客户端-主机-服务器(Client-Host-Server)架构:

┌─────────────────────────────────────────────────────────┐
│                         Host                            │
│              (Claude Desktop / Cursor)                  │
│                                                         │
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐     │
│  │   Client    │  │   Client    │  │   Client    │     │
│  │  (GitHub)   │  │ (Postgres)  │  │  (Sentry)   │     │
│  └──────┬──────┘  └──────┬──────┘  └──────┬──────┘     │
└─────────┼────────────────┼────────────────┼─────────────┘
          │                │                │
          ▼                ▼                ▼
   ┌───────────┐   ┌───────────┐   ┌───────────┐
   │MCP Server │   │MCP Server │   │MCP Server │
   │ (GitHub)  │   │(Postgres) │   │ (Sentry)  │
   └───────────┘   └───────────┘   └───────────┘
  • Host:用户直接交互的应用(Claude Desktop、Cursor、Windsurf)
  • Client:Host 应用中管理与特定 Server 通信的组件
  • Server:连接外部系统的桥梁(数据库、API、本地文件等)

MCP 的三个核心原语

MCP 定义了三种 Server 可以暴露的原语:

1. Tools(工具)—— 模型控制

可执行的函数,AI 可以调用来执行操作。

{
  "name": "query_database",
  "description": "Execute SQL query on the database",
  "parameters": {
    "type": "object",
    "properties": {
      "sql": { "type": "string" }
    }
  }
}

AI 决定什么时候调用这些工具。比如用户问“这个月的收入是多少”,AI 判断需要查数据库,就会调用 query_database 工具。

2. Resources(资源)—— 应用控制

数据源,为 AI 提供上下文信息。

{
  "uri": "file:///Users/project/README.md",
  "name": "Project README",
  "mimeType": "text/markdown"
}

资源由应用控制何时加载。用户可以通过 @ 引用资源,类似于引用文件。

3. Prompts(提示)—— 用户控制

预定义的提示模板,帮助结构化与 AI 的交互。

{
  "name": "code_review",
  "description": "Review code for bugs and security issues",
  "arguments": [
    { "name": "code", "required": true }
  ]
}

用户显式触发这些提示,类似于 Slash Command。

MCP 与 Function Calling 的关系

很多人会问:MCP 和 OpenAI 的 Function Calling、Anthropic 的 Tool Use 有什么区别?

Function Calling 是 LLM 的能力——把自然语言转换成结构化的函数调用请求。LLM 本身不执行函数,只是告诉你“应该调用什么函数,参数是什么”。

MCP 是在 Function Calling 之上的协议层——它标准化了“函数在哪里、怎么调用、怎么发现”。

两者的关系:

用户输入 → LLM (Function Calling) → "需要调用 query_database"
                                             ↓
                                       MCP Protocol
                                             ↓
                                       MCP Server 执行
                                             ↓
                                      返回结果给 LLM

Function Calling 解决“决定做什么”,MCP 解决“怎么做到”。

MCP 的传输方式

MCP 支持两种主要的传输方式:

传输方式适用场景说明
Stdio本地进程Server 在本地机器运行,适合需要系统级访问的工具
HTTP/SSE远程服务Server 在远程运行,适合云服务(GitHub、Sentry、Notion)

大部分云服务用 HTTP,本地脚本和自定义工具用 Stdio。

MCP 的代价

MCP 不是免费的午餐,它有明显的成本:

1. Token 消耗大

每个 MCP Server 都会占用上下文空间。每次对话开始,MCP Client 需要告诉 LLM “你有这些工具可用”,这些工具定义会消耗大量 Token。

连接多个 MCP Server 后,光是工具定义可能就占用了上下文窗口的很大一部分。社区观察到:

2. 需要维护连接

MCP Server 是持久连接的外部进程。Server 挂了、网络断了、认证过期了,都会影响 AI 的能力。

3. 安全风险

Anthropic 官方警告:特别是能获取外部内容的 MCP Server(比如网页抓取),可能带来 prompt injection 风险。

MCP 的价值

尽管有这些代价,MCP 的价值在于标准化和可复用性:

  • 一次实现,到处使用:同一个 GitHub MCP Server 可以在 Claude Desktop、Cursor、Windsurf 中使用
  • 动态发现:AI 可以在运行时发现有哪些工具可用,而不是写死在代码里
  • 供应商无关:不依赖特定的 LLM 提供商

Skill:上下文工程的渐进式公开

Skill 是什么

Skill(全称 Agent Skill)是 Anthropic 在 2025 年 10 月发布的特性。官方定义:Skill 是一个文件夹,里面放着指令、脚本和资源,AI 会根据需要自动发现和加载。

Skill 在架构层级上和 MCP 不同。用 Anthropic 的话说:Skill 是“提示/知识层”,MCP 是“集成层”。两者解决不同层面的问题。

Skill 的核心设计:渐进式信息公开

Skill 最精妙的设计是渐进式信息公开(Progressive Disclosure)。这是 Anthropic 在上下文工程(Context Engineering)领域的重要实践。

官方的比喻:就像一本组织良好的手册:先看目录,再翻到相关章节,最后查阅附录。

Skill 分三层加载:

flowchart TD
    subgraph L1["第 1 层:元数据(始终加载)"]
        A[Skill 名称 + 描述]
        B["约 100 tokens"]
    end
    subgraph L2["第 2 层:核心指令(按需加载)"]
        C[SKILL.md 完整内容]
        D["通常 < 5k tokens"]
    end
    subgraph L3["第 3+ 层:支持文件(深度按需)"]
        E[reference.md]
        F[scripts/helper.py]
        G[templates/...]
    end
    L1 --> |"Claude 判断相关"| L2
    L2 --> |"需要更多信息"| L3
    style L1 fill:#d4edda,stroke:#28a745
    style L2 fill:#fff3cd,stroke:#ffc107
    style L3 fill:#cce5ff,stroke:#0d6efd

这个设计的好处是什么?传统方式(比如 MCP)在会话开始时就把所有信息加载到上下文。如果你有 10 个 MCP Server,每个暴露 5 个工具,那就是 50 个工具定义——可能消耗数千甚至上万 Token。

Skill 的渐进式加载让你可以有几十个 Skill,但同时只加载一两个。上下文效率大幅提升。用官方的话说:理论上,单个 Skill 可以包含无限量的知识——因为只有需要的部分才会被加载。

上下文工程:Skill 背后的思想

Skill 是 Anthropic “上下文工程”(Context Engineering)理念的产物。官方对此有专门的阐述:

  • Prompt Engineering:怎么写好提示词
  • Context Engineering:怎么管理上下文窗口里的信息

LLM 的上下文窗口是有限的(即使是 200k 窗口,也会被大量信息撑爆)。Context Engineering 的核心问题是:在有限的窗口里,放什么信息能让 AI 表现最好?

Skill 的渐进式加载就是 Context Engineering 的具体实践——只加载当前任务需要的信息,让每一个 Token 都发挥最大价值。

Skill 的触发机制

Skill 是自动触发的,这是它和 Slash Command 的关键区别。

工作流程:

  1. 扫描阶段:Claude 读取所有 Skill 的元数据(名称 + 描述)
  2. 匹配阶段:将用户请求与 Skill 描述进行语义匹配
  3. 加载阶段:如果匹配成功,加载完整的 SKILL.md
  4. 执行阶段:按照 Skill 里的指令执行任务,按需加载支持文件

用户不需要显式调用。比如你有一个 code-review Skill,用户说“帮我 review 这段代码”,Claude 会自动匹配并加载。

Skill 的本质是什么?技术上,Skill 是一个元工具(Meta-tool):Skill 不是执行具体动作,而是注入指令到对话历史中,动态修改 Claude 的执行环境。

Skill 的文件结构

一个标准的 Skill 长这样:

my-skill/
├── SKILL.md          # 必需:元数据 + 主要指令
├── reference.md      # 可选:详细参考文档
├── examples.md       # 可选:使用示例
├── scripts/
│   └── helper.py     # 可选:可执行脚本
└── templates/
    └── template.txt  # 可选:模板文件

SKILL.md 是核心,必须包含 YAML 格式的元数据:

---
name: code-review
description: >
  Review code for bugs, security issues, and style violations.
  Use when asked to review code, check for bugs, or audit PRs.
---

# Code Review Skill

## Instructions

When reviewing code, follow these steps:
1. First check for security vulnerabilities...
2. Then check for performance issues...
3. Finally check for code style...

关键字段:

  • name:Skill 的唯一标识,小写字母 + 数字 + 连字符,最多 64 字符
  • description:描述做什么、什么时候用,最多 1024 字符

description 的质量直接决定 Skill 能不能被正确触发。

Skill 的安全考虑

Skill 有一个潜在的安全问题:Prompt Injection。研究人员发现:因为 Skill 本质上是注入指令,恶意的 Skill 可以在长文件中隐藏恶意指令,窃取敏感数据。

应对措施:

  1. 只使用可信来源的 Skill
  2. 审查 Skill 中的脚本
  3. 使用 allowed-tools 限制 Skill 的能力范围
---
name: safe-file-reader
description: Read and analyze files without making changes
allowed-tools: Read, Grep, Glob  # 只允许读操作
---

Skill 的平台支持

Agent Skills 目前支持:

  • Claude.ai(Pro、Max、Team、Enterprise)
  • Claude Code
  • Claude Agent SDK
  • Claude Developer Platform

需要注意的是,Skill 目前是 Anthropic 生态专属的,不像 MCP 是跨平台的开放协议。

MCP vs Skill:架构层级对比

现在我们可以从架构层级来理解两者的区别:

┌─────────────────────────────────────────────────────────┐
│                      用户请求                           │
└────────────────────────┬────────────────────────────────┘
                         ▼
┌─────────────────────────────────────────────────────────┐
│                   提示/知识层 (Skill)                    │
│                                                         │
│        Skill 注入专业知识和工作流程                      │
│              "怎么做某类任务"                            │
└────────────────────────┬────────────────────────────────┘
                         ▼
┌─────────────────────────────────────────────────────────┐
│                      LLM 推理层                         │
│                                                         │
│                  Claude / GPT / Gemini 等               │
│                   理解请求,决定需要什么工具              │
└────────────────────────┬────────────────────────────────┘
                         ▼
┌─────────────────────────────────────────────────────────┐
│                    集成层 (MCP)                         │
│                                                         │
│                  MCP 连接外部系统                        │
│               "能访问什么工具和数据"                     │
└────────────────────────┬────────────────────────────────┘
                         ▼
┌─────────────────────────────────────────────────────────┐
│                      外部世界                           │
│                                                         │
│              数据库、API、文件系统、第三方服务            │
└─────────────────────────────────────────────────────────┘

Skill 在上层(知识层),MCP 在下层(集成层)。两者不是替代关系,而是互补关系。你可以:

  • 用 MCP 连接 GitHub
  • 用 Skill 教 AI 如何按照团队规范做 Code Review

详细对比表

维度MCPSkill
核心作用连接外部系统编码专业知识和方法论
架构层级集成层提示/知识层
协议基础JSON-RPC 2.0文件系统 + Markdown
跨平台是(开放协议,多平台支持)否(目前 Anthropic 生态专属)
触发方式持久连接,随时可用基于描述的语义匹配,自动触发
Token 消耗高(工具定义持久占用上下文)低(渐进式加载)
外部访问可以直接访问外部系统不能直接访问,需要配合 MCP 或内置工具
复杂度高(需要理解协议、运行 Server)低(写 Markdown 就行)
可复用性高(标准化协议,跨应用复用)中(文件夹,可以 Git 共享)
动态发现是(运行时发现可用工具)是(运行时发现可用 Skill)
安全考虑外部内容带来 prompt injection 风险Skill 文件本身可能包含恶意指令

什么时候用 MCP,什么时候用 Skill

用 MCP 的场景

  • 需要访问外部数据:数据库查询、API 调用、文件系统访问
  • 需要操作外部系统:创建 GitHub Issue、发送 Slack 消息、执行 SQL
  • 需要实时信息:监控系统状态、查看日志、搜索引擎结果
  • 需要跨平台复用:同一个工具在 Claude Desktop、Cursor、其他支持 MCP 的应用中使用

用 Skill 的场景

  • 重复性的工作流程:代码审查、文档生成、数据分析
  • 公司内部规范:代码风格、提交规范、文档格式
  • 需要多步骤的复杂任务:需要详细指导的专业任务
  • 团队共享的最佳实践:标准化的操作流程
  • Token 敏感场景:需要大量知识但不想一直占用上下文

结合使用

很多时候,两者是配合使用的:

用户:"Review PR #456 并按照团队规范给出建议"
1. MCP (GitHub) 获取 PR 信息
    ↓
2. Skill (团队代码审查规范) 提供审查方法论
    ↓
3. Claude 按照 Skill 的指令分析代码
    ↓
4. MCP (GitHub) 提交评论

MCP 负责“能访问什么”,Skill 负责“怎么做”。

写好 Skill 的关键

Skill 能不能被正确触发,90% 取决于 description 写得好不好。

差的 description

description: Helps with data

太宽泛,Claude 不知道什么时候该用。

好的 description

description: >
  Analyze Excel spreadsheets, generate pivot tables, and create charts.
  Use when working with Excel files (.xlsx), spreadsheets, or tabular data analysis.
  Triggers on: "analyze spreadsheet", "create pivot table", "Excel chart"

好的 description 应该包含:

  1. 做什么:具体的能力描述
  2. 什么时候用:明确的触发场景
  3. 触发词:用户可能说的关键词

最佳实践

官方建议:

  1. 保持专注:一个 Skill 做一件事,避免宽泛的跨域 Skill
  2. SKILL.md 控制在 500 行以内:太长的话拆分到支持文件
  3. 测试触发行为:确认相关请求能触发,不相关请求不会误触发
  4. 版本控制:记录 Skill 的变更历史

关于 Slash Command

文章标题是 MCP vs Skill,但很多人也会问到 Slash Command,简单说一下。

Slash Command 是最简单的扩展方式——本质上是存储的提示词,用户输入 /命令名 时注入到对话中。

Skill vs Slash Command 的关键区别是触发方式:

Slash CommandSkill
触发方式用户显式输入 /命令Claude 自动匹配
用户控制完全控制何时触发无法控制,Claude 决定

问自己一个问题:用户是否需要显式控制触发时机?

  • 需要 → Slash Command
  • 不需要,希望 AI 自动判断 → Skill

总结

MCP 和 Skill 是 AI Agent 扩展的两种不同哲学:

MCPSkill
哲学连接主义知识打包
问的问题“AI 能访问什么?”“AI 知道怎么做什么?”
层级集成层知识层
Token 策略预加载所有能力按需加载知识

记住这句话:MCP 让 AI 能“碰到”数据,Skill 教 AI 怎么“处理”数据。

它们不是替代关系,而是互补关系。一个成熟的 AI Agent 系统,两者都需要。

参考资源

MCP 官方资源

  • Model Context Protocol 官网 - 协议规范、快速入门、Server 开发指南
  • MCP Specification - 完整的协议规范文档
  • Introducing the Model Context Protocol - Anthropic 发布 MCP 的官方博客
  • MCP GitHub Organization - 官方 SDK、示例 Server、参考实现
  • Awesome MCP Servers - 社区维护的 MCP Server 列表

Skill 官方资源

  • Claude Code Skills 文档 - Skills 的完整文档
  • Building effective agents - Anthropic 关于 Agent 设计的研究博客
  • Context Engineering Guide - 上下文工程官方指南,理解 Skill 设计哲学的关键

跨平台采用

  • OpenAI adds support for MCP - OpenAI 宣布支持 MCP
  • Google Gemini MCP Support - Google 宣布 Gemini 支持 MCP

延伸阅读

  • Function Calling vs MCP - 理解两者区别
  • Claude Code Documentation - Claude Code 完整文档
  • Prompt Engineering Guide - 提示工程基础,Context Engineering 的前置知识
来源:https://juejin.cn/post/7584057497205817387

游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

同类文章
更多
Merlin AI Windows安装配置2026最新版教程(含下载与环境要求)

Merlin AI Windows安装配置2026最新版教程(含下载与环境要求)

MerlinAI适合在Windows上作为浏览器智能助手使用,安装重点包括确认系统与浏览器版本、从官方渠道获取安装包或扩展、完成登录与权限配置,并注意数据安全、兼容性和常见故障处理。

时间:2026-07-16 06:25
Monica AI本地模型运行教程:下载、路径设置与性能优化

Monica AI本地模型运行教程:下载、路径设置与性能优化

MonicaAI可通过本地推理服务接入本地模型,兼顾隐私、稳定与离线可用。配置重点包括选择合适模型、确认模型保存路径、填写接口地址、控制上下文长度,并结合硬件条件优化速度与内存占用。

时间:2026-07-16 06:25
Monica AI新手安装保姆级教程从下载到首次运行

Monica AI新手安装保姆级教程从下载到首次运行

MonicaAI适合需要写作、翻译、总结网页和辅助办公的新手用户,可通过官方渠道安装插件或桌面端,完成登录、权限检查、模型选择与首次提问后再逐步配置常用功能。

时间:2026-07-16 06:25
Monica AI API Key 配置教程:注册账号、获取密钥与国内网络设置

Monica AI API Key 配置教程:注册账号、获取密钥与国内网络设置

MonicaAIAPIKey配置需先完成账号注册与插件安装,再在控制台创建密钥并填入设置页。国内使用重点检查网络连通、浏览器权限、密钥安全与调用额度,避免把密钥暴露在共享设备或公开代码中。

时间:2026-07-16 06:25
Monica AI安装失败怎么办?常见报错日志排查与升级回滚方案

Monica AI安装失败怎么办?常见报错日志排查与升级回滚方案

MonicaAI安装失败通常与浏览器版本、扩展冲突、网络环境、缓存损坏或权限限制有关。可按环境检查、日志定位、重新安装、手动升级与回滚顺序处理,并保留配置备份。

时间:2026-07-16 06:25
热门专题
更多
刀塔传奇破解版无限钻石下载大全 刀塔传奇破解版无限钻石下载大全
洛克王国正式正版手游下载安装大全 洛克王国正式正版手游下载安装大全
思美人手游下载专区 思美人手游下载专区
好玩的阿拉德之怒游戏下载合集 好玩的阿拉德之怒游戏下载合集
不思议迷宫手游下载合集 不思议迷宫手游下载合集
百宝袋汉化组游戏最新合集 百宝袋汉化组游戏最新合集
jsk游戏合集30款游戏大全 jsk游戏合集30款游戏大全
宾果消消消原版下载大全 宾果消消消原版下载大全
  • 热门数据榜