Skill 和 MCP 的区别
Skill 负责沉淀做事方法,MCP 负责连接工具与实时数据;两者解决的问题不同,也经常一起使用。
粗略地区分:Skill 把做事方法及配套文件打成可复用的包;MCP 规范宿主怎样连接外部上下文与能力。
这是一条便于记忆的职责线,不是协议边界。Skill 可以带可执行脚本,MCP server 除工具外也能暴露资源和提示模板。一个完整工作流完全可以由 Skill 规定步骤,再通过 MCP 读取数据或执行操作。
Skill 是可复用的做事方法
Skill 通常是一组带入口说明的文件。以 Agent Skills 的常见形式为例,目录里会有 SKILL.md,还可以附带参考资料、模板和脚本:
release-notes/
├─ SKILL.md
├─ references/
│ └─ writing-style.md
└─ scripts/
└─ collect-changes.ts
入口文件描述它适合什么任务、执行顺序、判断标准和注意事项。Agent 在需要时加载这些内容,按照里面的流程完成工作。
因此,Skill 更接近一份可执行的工作手册:
- 统一团队约定,例如提交信息和文档语气;
- 固化多步骤流程,例如发布、巡检、数据清洗;
- 打包领域知识、模板和本地脚本;
- 告诉 Agent 何时使用已有工具,以及怎样组合工具。
它的核心价值不是增加一个新 API,而是减少每次从头解释工作方法的成本。
MCP 是连接能力的协议
MCP 即 Model Context Protocol。MCP server 可以暴露三类核心原语:供用户选用的 prompts、由应用管理的 resources,以及可由模型选择调用的 tools。宿主应用内部的 MCP client 负责与 server 通信,并决定哪些内容交给用户或模型;不是模型自己直接建立连接。具体产品可能只支持其中一部分能力。
Server 背后可能是 GitHub、数据库、浏览器、内部 CRM,也可能只是客户端按需启动的本机进程。
如果没有 MCP,也能为每个服务单独写 function calling 适配器;但服务一多,鉴权、连接、工具描述和返回格式都会重复。MCP 把“AI 应用如何连接外部系统”收敛到一套通用接口上。
它更关心这些问题:
- 有哪些 prompts、resources 与 tools 可用;
- 工具接收什么参数、返回什么结果;
- 如何连接本地或远程 server;
- 双方支持哪些协议能力,以及怎样发现数据和工具;
- 身份认证、授权与调用边界如何处理。
MCP 的 prompts 可以提供模板,扩展也可以分发更完整的工作流,但协议不会自动保证业务顺序正确。一个名为 create_issue 的工具能创建 issue,“先复现、再去重、最后按模板建单”的顺序仍需要应用逻辑或 Skill 约束。MCP 也不会替业务实现权限:协议提供连接与授权机制,最终的租户隔离、参数校验和操作许可仍由宿主与 server 负责。
放在一起看就很清楚
| 维度 | Skill | MCP |
|---|---|---|
| 主要解决 | 流程、知识与约定如何复用 | 外部工具和数据如何接入 |
| 常见载体 | 指令、参考文件、模板、脚本 | MCP server 暴露的 prompts、resources、tools |
| 是否需要 server | 通常不需要 | 需要 MCP server;本地 stdio server 可按需启动 |
| 数据新鲜度 | 以包内内容为准 | 可读取实时外部数据 |
| 能否执行操作 | 可通过随附脚本或已有工具执行 | 主要用途之一就是提供可调用能力 |
| 复用重点 | “怎样做对” | “怎样连上并调用” |
| 风险重点 | 指令和脚本是否可信 | 服务、权限、参数与返回数据是否可信 |
这张表是职责划分,不是硬性限制。Skill 可以带脚本,MCP 也可以暴露说明性数据;判断时看它主要解决的是流程复用,还是能力连接。
2026-07-28 版 MCP 规范还定义了可选的 Skills over MCP 扩展,用于通过 MCP 发现和获取 Skill。它改变的是 Skill 的分发方式,没有抹平两者的职责差异,而且需要客户端与 server 都显式支持该扩展。
一个实际组合
假设要做“处理线上告警”的 Agent:
Skill 可以写明:
- 先确认影响范围,不要看到错误就重启服务;
- 查询最近一次部署与相关变更;
- 收集日志、指标和链路;
- 给出假设,并用证据逐项排除;
- 任何回滚或扩容操作都要审批;
- 恢复后按模板补事件记录。
MCP servers 则提供具体能力:
- 从监控系统读取指标;
- 在日志平台执行查询;
- 查看部署记录;
- 创建事件工单;
- 在批准后触发回滚。
只有 MCP,Agent 知道“手里有什么按钮”,却未必知道正确排障顺序;只有 Skill,它知道怎么排障,却拿不到实时指标。两者组合才是一条能跑起来的工作流。
什么时候只用 Skill
这些任务通常不值得单独搭 MCP server:
- 按团队模板写周报;
- 检查仓库是否符合目录规范;
- 用本地脚本批量整理图片;
- 根据固定清单做代码审查;
- 把文档转换为约定格式。
共同点是资料和执行环境已经在本地,或者只需调用宿主原有能力。Skill 足以提供流程,不必额外增加网络服务和鉴权维护。
什么时候优先考虑 MCP
当任务需要跨系统、实时数据或受控写操作时,MCP 更合适:
- 查询公司数据库或知识平台;
- 操作项目管理、邮件、日历等 SaaS;
- 让多种 AI 客户端复用同一套工具;
- 把内部 API 包装成带 schema 的工具;
- 在服务端统一执行权限和审计。
如果只有一个应用、三个很稳定的内部函数,直接使用 function calling 也可能更简单。MCP 的收益会随着客户端数量、工具数量和复用需求增加,并不是所有工具都必须改造成 MCP。
面试中常见的追问
Skill 和 prompt 有什么不同?
普通 prompt 往往服务于当前对话;Skill 是有触发条件、文件结构和版本管理的可复用能力包,还能携带参考资料和脚本。可以把 prompt 视为 Skill 的组成部分,但两者的生命周期和工程化程度不同。
MCP 和 function calling 有什么不同?
Function calling 描述模型如何产生结构化工具调用;MCP 规范宿主与外部 server 之间的通信、能力发现,以及 prompts、resources、tools 等原语。MCP 提供的 tool 最终也可能以模型工具调用的形式出现,两者处在不同层次。
Skill 能调用 MCP 工具吗?
可以,而且这是很自然的组合。Skill 规定什么时候查、查什么、如何验证;MCP 工具完成实际查询或写入。反过来,MCP server 不应该依赖某个 Skill 才能保证最基本的参数校验和权限控制。
哪一个更安全?
没有天然更安全的一方。安装 Skill 等于信任它的指令、脚本和引用内容;连接 MCP server 等于信任它提供的工具描述、返回数据和操作边界。两边都要校验来源、最小授权,并对高风险操作保留人工审批。