核心定位(一句话区分)
MCP(Model Context Protocol):解决「连接」问题,让 AI 能访问外部世界
Skill(Agent Skill):解决「方法论」问题,教 AI 怎么做某类任务
类比:MCP 是 AI 的「手」(触碰外部),Skill 是 AI 的「技能书」(知道怎么做),二者需配合使用。
Anthropic 官方定义:”MCP connects Claude to external services and data sources. Skills provide procedural knowledge—instructions for how to complete specific tasks or workflows.”
一、MCP:AI 应用的 USB-C 接口
1. 什么是 MCP
MCP 是 Anthropic 2024 年 11 月发布的「开源协议」,用于标准化 AI 应用与外部系统的交互方式,类比为「AI 应用的 USB-C 接口」,提供通用连接方式。
关键:非 Claude 专属,是开放协议,多个平台已采用:
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 连接器。
2. MCP 的架构
基于「JSON-RPC 2.0」协议,采用「客户端-主机-服务器」(Client-Host-Server)架构:
Host:用户直接交互的应用(如 Claude Desktop、Cursor)
Client:Host 中管理与特定 Server 通信的组件
Server:连接外部系统的桥梁(数据库、API、本地文件等)
3. MCP 的三个核心原语
Tools(工具)—— 模型控制:可执行函数,AI 决定何时调用(如查询数据库的 query_database 函数)。
Resources(资源)—— 应用控制:数据源,应用控制加载时机,用户可通过 @ 引用(如本地文件)。
Prompts(提示)—— 用户控制:预定义提示模板,用户显式触发(类似 Slash Command)。
4. MCP 与 Function Calling 的关系
Function Calling:LLM 的能力,将自然语言转为结构化函数调用请求(只决定「调用什么」,不执行)。
MCP:Function Calling 之上的「协议层」,标准化「函数在哪里、怎么调用、怎么发现」(解决「怎么做到」)。
流程:用户输入 → LLM(Function Calling)→ 确定需调用的工具 → MCP 协议 → MCP Server 执行 → 返回结果给 LLM。
5. MCP 的传输方式
| 传输方式 | 适用场景 | 说明 |
|---|---|---|
| Stdio | 本地进程 | Server 在本地运行,适合系统级访问工具 |
| HTTP/SSE | 远程服务 | Server 在远程运行,适合云服务(GitHub、Sentry 等) |
6. MCP 的代价与价值
代价
Token 消耗大:工具定义占用大量上下文窗口,可能导致幻觉。
需维护连接:Server 故障、网络中断、认证过期会影响 AI 能力。
安全风险:第三方 MCP Server 可能存在安全隐患,有 prompt injection 风险。
价值
标准化和可复用性:一次实现、到处使用;动态发现工具;不依赖特定 LLM 提供商。
二、Skill:上下文工程的渐进式公开
1. 什么是 Skill
Skill(Agent Skill)是 Anthropic 2025 年 10 月发布的特性,官方定义:”Skills are organized folders of instructions, scripts, and resources that agents can discover and load dynamically to perform better at specific tasks.”
核心区别:Skill 属于「提示/知识层」,MCP 属于「集成层」,解决不同层面问题。
2. 核心设计:渐进式信息公开
类比为「组织良好的手册」,分三层加载(目录 → 章节 → 附录),仅加载当前任务需要的信息,大幅提升上下文效率,理论上可包含无限知识(无需一次性加载)。
核心背景:基于 Anthropic 的「上下文工程」(Context Engineering)理念——管理上下文窗口信息,让每个 Token 发挥最大价值(区别于 Prompt Engineering:仅关注提示词写法)。
3. Skill 的触发机制
自动触发(区别于 Slash Command),流程:
扫描阶段:Claude 读取所有 Skill 的元数据(名称 + 描述)。
匹配阶段:将用户请求与 Skill 描述进行语义匹配。
加载阶段:匹配成功则加载完整 SKILL.md。
执行阶段:按指令执行任务,按需加载支持文件。
本质:元工具(Meta-tool),不直接执行动作,而是注入指令到对话历史,修改 Claude 执行环境。
4. Skill 的文件结构(标准格式)
plain text
my-skill/
├── SKILL.md # 必需:元数据 + 主要指令(核心)
├── reference.md # 可选:详细参考文档
├── examples.md # 可选:使用示例
├── scripts/
│ └── helper.py # 可选:可执行脚本
└── templates/
└── template.txt # 可选:模板文件
SKILL.md 必需包含 YAML 元数据(name:唯一标识;description:描述能力、触发场景,决定触发准确性)。
5. Skill 的安全考虑与平台支持
安全风险
存在 Prompt Injection 风险:恶意 Skill 可能隐藏恶意指令,窃取敏感数据。
应对措施:使用可信来源 Skill、审查脚本、用 allowed-tools 限制能力范围。
平台支持
目前为 Anthropic 生态专属,支持:Claude.ai(全版本)、Claude Code、Claude Agent SDK、Claude Developer Platform。
三、MCP vs Skill 详细对比
| 维度 | MCP | Skill |
|---|---|---|
| 核心作用 | 连接外部系统 | 编码专业知识和方法论 |
| 架构层级 | 集成层 | 提示/知识层 |
| 协议基础 | JSON-RPC 2.0 | 文件系统 + Markdown |
| 跨平台 | 是(开放协议,多平台支持) | 否(Anthropic 生态专属) |
| 触发方式 | 持久连接,随时可用 | 基于描述的语义匹配,自动触发 |
| Token 消耗 | 高(工具定义持久占用上下文) | 低(渐进式加载) |
| 外部访问 | 可以直接访问外部系统 | 不能直接访问,需配合 MCP 或内置工具 |
| 复杂度 | 高(需理解协议、运行 Server) | 低(写 Markdown 即可) |
| 可复用性 | 高(标准化协议,跨应用复用) | 中(文件夹,可 Git 共享) |
| 动态发现 | 是(运行时发现可用工具) | 是(运行时发现可用 Skill) |
| 安全考虑 | 外部内容带来 prompt injection 风险 | Skill 文件本身可能包含恶意指令 |
四、使用场景区分
用 MCP 的场景
需要访问外部数据(数据库、API、文件系统)
需要操作外部系统(创建 GitHub Issue、发送 Slack 消息)
需要实时信息(监控系统、查看日志、搜索引擎结果)
需要跨平台复用工具
用 Skill 的场景
重复性工作流程(代码审查、文档生成、数据分析)
公司内部规范(代码风格、提交规范、文档格式)
多步骤复杂任务(需详细指导的专业任务)
团队共享最佳实践(标准化操作流程)
Token 敏感场景(需大量知识但不想占用上下文)
结合使用示例
用户:”Review PR #456 并按照团队规范给出建议”
MCP(GitHub)获取 PR 信息
Skill(团队代码审查规范)提供审查方法论
Claude 按 Skill 指令分析代码
MCP(GitHub)提交评论
五、写好 Skill 的关键
核心:description 写法
差的描述:宽泛(如 “Helps with data”)
好的描述:包含「做什么」「什么时候用」「触发词」
官方最佳实践
保持专注:一个 Skill 做一件事
SKILL.md 控制在 500 行以内,过长拆分到支持文件
测试触发行为,避免误触发
版本控制,记录变更历史
六、补充:Slash Command 与 Skill 区别
| 维度 | Slash Command | Skill |
|---|---|---|
| 触发方式 | 用户显式输入 /命令 | Claude 自动匹配 |
| 用户控制 | 完全控制何时触发 | 无法控制,Claude 决定 |
判断标准:用户是否需要显式控制触发时机 → 需要则用 Slash Command,否则用 Skill。
七、总结
MCP 和 Skill 是 AI Agent 扩展的两种不同哲学,非替代关系,而是互补关系:
| 维度 | MCP | Skill |
|---|---|---|
| 哲学 | 连接主义 | 知识打包 |
| 核心问题 | “AI 能访问什么?” | “AI 知道怎么做什么?” |
| 层级 | 集成层 | 知识层 |
| Token 策略 | 预加载所有能力 | 按需加载知识 |
核心口诀:「MCP connects AI to data; Skills teach AI what to do with that data.」(MCP 让 AI 碰到数据,Skill 教 AI 处理数据)。
