在 Claude Code、Cursor、Copilot 等 AI 编程工具中,MCP 和 Skill 是两个高频出现的概念。很多人把它们混为一谈——"不都是让 AI 变强的东西吗?"实际上,它们的定位、运行机制、适用场景完全不同。选错了方案,轻则浪费开发时间,重则安全风险失控。
本文从运行边界、交互模式、适用场景三个维度彻底讲清楚两者的区别。
一、一句话区分
| MCP(Model Context Protocol) | Skill(技能) | |
|---|---|---|
| 本质 | 外部服务的"标准化接口" | 对话内的"预设工作流" |
| 谁运行 | 外部进程(独立服务器) | 模型自身(提示词驱动) |
| 核心能力 | 连接外部数据/服务 | 规范模型的思考和行为 |
| 类比 | 给 AI 装了 USB 接口,可以外接设备 | 给 AI 写了一份 SOP 操作手册 |
如果你只想记住一句话:MCP 让 AI 能"碰到"外面的东西,Skill 让 AI 能"做好"自己的事情。
二、MCP:连接外部世界的标准化协议
2.1 MCP 是什么
MCP(Model Context Protocol)是 Anthropic 在 2024 年底发布的开源协议,目标是成为 AI 应用与外部工具/数据源之间的"统一连接标准"。你可以把它理解成 AI 界的 USB-C——不同厂商的工具只要遵循 MCP 协议,就能被任何支持 MCP 的 AI 客户端调用。
2.2 MCP 的架构
┌──────────────┐ 标准协议 ┌──────────────────┐ │ AI 客户端 │ ◄──────────────► │ MCP Server │ │ (Claude Code, │ JSON-RPC │ (独立进程/容器) │ │ Cursor...) │ │ │ └──────────────┘ └──────┬────────────┘ │ ┌────▼────┐ │ 外部系统 │ │ DB/API/ │ │ 文件系统 │ └─────────┘
关键特征:
独立进程:MCP Server 是一个独立运行的程序,有自己的生命周期
JSON-RPC 通信:通过标准输入/输出或 HTTP/SSE 与 AI 客户端通信
能力声明:Server 启动时向客户端声明自己提供哪些工具(tools)、资源(resources)、提示模板(prompts)
按需调用:AI 模型决定何时调用哪个工具,客户端负责执行调用并把结果传回模型
2.3 MCP 适合干什么
连接企业内部系统:数据库查询、Jira 工单、Confluence 文档、K8s 集群
访问实时数据:天气、股价、航班信息
调用外部 API:GitHub、Slack、Linear、Notion
执行有副作用的操作:创建 PR、发送消息、部署服务
2.4 MCP 的局限
需要额外的开发和部署工作(写 MCP Server、管理进程)
Server 挂了或网络不通,AI 就失去了对应能力
安全边界模糊——MCP Server 能做的事情,AI 就都能做
响应延迟取决于外部服务
三、Skill:规范 AI 行为的预设工作流
3.1 Skill 是什么
Skill 是在系统提示词层面,为 AI 注入特定领域的行为规范、设计约束、工作流程。它不连接任何外部系统,不调用任何 API,纯粹通过提示词工程来影响模型的输出质量和行为模式。
以 Claude Code 为例,taste-skill注入了一整套 UI 设计标准(字体、间距、阴影、色彩),security-review注入了安全审查的检查清单和输出格式。
3.2 Skill 的架构
┌──────────────────────────────────────┐ │ System Prompt │ │ │ │ ┌────────────────────────────┐ │ │ │ Base Instructions │ │ │ │ (通用行为规范) │ │ │ ├────────────────────────────┤ │ │ │ Skill: taste-skill │ │ │ │ → UI 设计标准 │ │ │ │ → 字体、间距、色彩规则 │ │ │ ├────────────────────────────┤ │ │ │ Skill: security-review │ │ │ │ → 安全检查清单 │ │ │ │ → 输出格式规范 │ │ │ └────────────────────────────┘ │ │ │ │ 所有 Skill 都在提示词层面, │ │ 由模型自身的推理能力驱动 │ └──────────────────────────────────────┘
关键特征:
纯提示词:Skill 就是一段被注入到 system prompt 中的文本
无外部依赖:不需要服务器、不需要网络、不需要 API key
零延迟:没有额外的网络调用开销
影响模型思维:改变的是模型"怎么想"和"怎么输出",而不是"能访问什么"
3.3 Skill 适合干什么
领域知识注入:让通用模型在特定领域表现更好(医疗、法律、金融)
输出格式控制:强制模型遵循特定的代码风格、文档结构、设计规范
工作流约束:强制模型在编码前先做分析、先写测试再写实现
行为边界设定:告诉模型"不要做什么"比"要做什么"更有效
角色扮演:让模型以特定角色(代码审查员、产品经理、安全专家)的视角工作
3.4 Skill 的局限
不能获取模型训练数据之外的信息
不能执行任何实际操作(发邮件、查数据库、调 API)
效果取决于模型对 Skill 指令的遵循程度
指令之间有潜在的干扰和冲突
四、核心区别对照表
| 维度 | MCP | Skill |
|---|---|---|
| 运行位置 | 模型外部,独立进程 | 模型内部,提示词层面 |
| 通信方式 | JSON-RPC(stdio/HTTP) | 无需通信,纯文本注入 |
| 能访问外部数据吗 | 能 | 不能 |
| 能执行操作吗 | 能(取决于 MCP Server 权限) | 不能 |
| 需要部署吗 | 需要(写服务、配进程) | 不需要(一段文本即可) |
| 有延迟吗 | 有(网络/IO 开销) | 无 |
| 安全风险 | 高(能力 = 服务权限) | 低(能力 = 提示词影响) |
| 可移植性 | 跨客户端(遵循同一协议) | 依赖平台实现(各家的 Skill 机制不同) |
| 稳定性和可控性 | 取决于外部服务 | 取决于模型遵循度 |
| 典型例子 | GitHub MCP、Postgres MCP、Slack MCP | taste-skill、security-review、brutalist-skill |
五、如何选择?决策树
你需要的能力是? │ ├── 需要访问外部数据/服务? │ ├── 是 → 必须用 MCP │ └── 否 → 继续判断 │ ├── 需要执行实际操作(发消息、创建 PR、部署)? │ ├── 是 → 必须用 MCP │ └── 否 → 继续判断 │ ├── 需要获取模型训练数据之外的信息? │ ├── 是 → 必须用 MCP │ └── 否 → 继续判断 │ ├── 是规范 AI 的行为、输出、思考方式? │ ├── 是 → 用 Skill │ └── 否 → 继续判断 │ └── 两者都需要? └── MCP + Skill 组合使用(它们不冲突)
六、MCP + Skill 组合实战
两者不是互斥的,最佳实践往往是组合使用:
| 场景 | MCP 做什么 | Skill 做什么 |
|---|---|---|
| 代码审查 Agent | MCP 连接 GitHub,拉取 PR diff | Skill 注入审查标准和输出模板 |
| 数据分析 Agent | MCP 连接数据库,执行 SQL | Skill 注入分析方法和可视化规范 |
| 客服 Agent | MCP 连接工单系统和知识库 | Skill 注入话术规范和边界话术 |
| 运维 Agent | MCP 连接 K8s 和监控系统 | Skill 注入变更审批流程和安全红线 |
以 Claude Code 为例:它的MCP 层负责连接 GitHub、执行 bash 命令、读写文件;它的Skill 层(如taste-skill)负责控制这些操作产生的代码质量。
七、常见误解澄清
误解 1:"Skill 也可以调 API 啊"
不对。Skill 本身只是提示词,它不能发起任何网络请求。如果 Skill 文本里写"去查这个 API",模型只能说"我做不到,我没有这个能力"——除非同时挂了 MCP。
误解 2:"MCP Server 就是 Skill"
MCP Server 提供的tools、resources、prompts是功能声明,不是行为规范。一个 MCP Server 告诉 AI"我可以查数据库",但不会告诉 AI"什么时候该查、什么时候不该查"。后者正是 Skill 的职责。
误解 3:"有了 MCP 就不用 Skill 了"
MCP 只解决"能不能"的问题(能力边界),Skill 解决"好不好"的问题(质量边界)。两者解决的是不同层次的问题,不能互相替代。
误解 4:"Skill 可以跨平台"
目前各家 AI 工具的 Skill 机制差异很大。Claude Code 的 Skill 是挂载在特定提示词位置的模块化文本;GitHub Copilot 的 Skill 是另一种实现。MCP 才是真正的跨平台标准。
八、总结
| 记住这个口诀 | |
|---|---|
| MCP | 给 AI 装手和眼睛,让它能碰到外面的世界 |
| Skill | 给 AI 装大脑和品味,让它把事情做对、做好 |
选择逻辑:
只缺能力(访问不到数据、调不了服务)→ 上 MCP
只缺规范(输出质量差、行为不稳定)→ 上 Skill
两者都缺 → MCP + Skill 组合,各管各的层
两者都不缺 → 直接用就行,别过度设计
本文基于 Claude Code 的实际使用和开发经验总结,MCP 协议规范详见 modelcontextprotocol.io。