一句话区分:MCP 解决“连接”问题,让 agent 能访问外部世界;Skills 解决“方法论”问题,教 agent 怎么做某类任务。MCP 是 AI 应用的 USB-C 接口,定义模型与外部系统通信的协议;Skills 是岗位 SOP 手册,按需加载过程性知识。两者层级不同——MCP 在集成层,Skills 在提示知识层——常常配合使用。
一、本质定位的对比
| 对比维度 | MCP | Skills |
|---|---|---|
| 本质 | 通信协议 | 能力模块 |
| 解决问题 | 连接外部系统 | 方法论注入 |
| 架构层级 | 集成层 | 提示/知识层 |
| 运行形态 | 独立进程 | 纯文本注入 |
| 复用粒度 | 协议可复用 | 一次创建多次复用 |
| 上下文成本 | 工具定义占大量 token | 渐进式公开,按需加载 |
MCP(Model Context Protocol)是 Anthropic 2024 年 11 月发布的开源协议,基于 JSON-RPC 2.0,采用客户端-主机-服务器架构。截至 2025 年初已被 Anthropic、OpenAI、Google、Microsoft 等多平台采用,开源连接器超 1000 个。Skills 是 Anthropic 2025 年 10 月发布的特性,2025 年 12 月作为开放标准发布,已被 Claude Code、OpenAI Codex、Cursor、Gemini CLI 等多平台采纳。
二、MCP 的机制与代价
2.1 三个核心原语
MCP 服务器暴露三种原语,控制权分属不同主体。
| 原语 | 控制方 | 作用 |
|---|---|---|
| Tools(工具) | 模型控制 | 可执行函数,AI 决定何时调用 |
| Resources(资源) | 应用控制 | 数据源,用户用 @ 引用 |
| Prompts(提示) | 用户控制 | 预定义提示模板,类似 Slash Command |
传输支持 stdio(本地进程)和 HTTP/SSE(远程服务)两种,本地脚本用 stdio,云服务用 HTTP。
2.2 MCP server 配置
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": { "GITHUB_TOKEN": "ghp_xxx" }
},
"postgres": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-postgres", "postgresql://localhost/mydb"]
}
}
}
客户端连上服务器后调 tools/list 发现可用工具,LLM 决定何时调 tools/call。
2.3 MCP 的代价
MCP 不是免费午餐,成本明显。
- token 消耗大:每个 server 的工具定义占上下文,连多个 server 光定义就吃掉大块窗口,甚至导致幻觉;
- 要维护连接:server 是持久外部进程,挂了、网断、认证过期都影响能力;
- 安全风险:第三方 server 未经 Anthropic 验证,能获取外部内容的 server 可能带 prompt injection。
三、Skills 的机制与价值
3.1 渐进式公开三层加载
Skill 是含 SKILL.md 的目录,按需加载而非一次性灌满上下文。
- 发现层:只载入名称和描述,约 100 token;
- 激活层:用户请求匹配技能领域时,载入完整 SKILL.md,通常 < 5k token;
- 执行层:agent 用文件系统操作按需读脚本、模板、参考,不占上下文窗口。
知识量理论无上限,因为 agent 像翻参考手册而非一口气读完。
3.2 SKILL.md 结构
---
name: code-review
description: Review code for bugs and security issues
---
# Code Review Skill
## Steps
1. Check for null handling and edge cases
2. Run security scanner on changed files
3. Verify tests cover new logic
## Output
Markdown report with severity tags.
四、怎么选
4.1 各自适用场景
| 场景 | 选 MCP | 选 Skills |
|---|---|---|
| 查数据库、调外部 API | 是 | 否 |
| 读本地文件、浏览器自动化 | 是 | 否 |
| 按公司规范生成财报 | 否 | 是 |
| 代码审查 checklist | 否 | 是 |
| 跨客户端复用同一连接器 | 是 | 否 |
| 教 agent 岗位 SOP | 否 | 是 |
需要触碰外部世界选 MCP,需要稳定可重复的方法论选 Skills。两者常配合:MCP 让 agent 连上数据库,Skill 教 agent 怎么分析查询结果、按什么标准产出报告。
4.2 选型决策步骤
- 先问需求是“连接外部”还是“怎么做任务”;
- 连接外部看是否已有现成 MCP server,有就直接配;
- 方法论看能否写成结构化 SKILL.md,能就做 Skill;
- 两者都要时,MCP 管连接、Skills 管流程,组合落地。
常见问题(FAQ)
Q1:MCP 能替代 Skills 吗?
不能,MCP 给连接不给方法论,二者层级不同。
Q2:Skills 能调用 MCP 吗?
能,Skill 指令里可让 agent 调 MCP 工具完成步骤。
Q3:哪个更省 token?
Skills 渐进式加载更省,MCP 工具定义一次性占大量窗口。