什么是 MCP Skills?
MCP Skills(Skills over MCP)是官方 `io.modelcontextprotocol/skills` Extension,用于发现 Agent Skill Metadata,并通过 MCP Resource 获取可验证的 `SKILL.md` 指令与配套文件。
快速了解
| 全称 | 通过模型上下文协议分发 Agent Skills |
|---|---|
| 创建时间 | 2026 年成为官方 MCP Extension |
| 规范文档 | 官方规范 |
工作原理
格式、传输与 Runtime
Agent Skills 定义目录与 SKILL.md 格式,包括 Frontmatter 和可选 Script、Reference 与 Asset;MCP Skills 定义 Server 如何声明并传输这些文件。Host 或 Agent Runtime 决定 Skill 是否相关、Instruction 是否进入模型 Context,以及引用的 Script 或 Tool 能否执行。读取 Resource 不等于激活 Skill,也不授予行动权限。
Capability 与协议方法
支持 MCP Skills 的 Server 在 server/discover 中同时声明 Core resources 与 io.modelcontextprotocol/skills Extension。它实现 skills/list 用于分页发现,skills/get 用于直接查询或刷新;Skill 正文和配套文件通过 resources/read 读取。只有 Extension 声明 directoryRead: true 时才可调用可选 resources/directory/read,Client 不能自行推断。
身份与渐进加载
Skill Identity 是 Originating Server Identity 与 Skill URI 的组合,Name 只是可搜索 Label,不保证全局唯一。Host 可以不先列举而直接加载已知 URI,Server 也可以返回 Partial 或 Empty Listing。Client 应保持 Metadata 轻量,只在选择并批准后读取 SKILL.md,再按需读取 Supporting File;连接、列表或审批阶段不得预取全部文件。
Manifest 完整性与缓存
稳定 Skill Entry 为每个文件列出 URI、Raw Byte Size 与 SHA-256 Digest。Skill 活跃期间,Host 只允许读取 Retained Manifest 中的 URI,逐文件校验,并把解析后的 SKILL.md Frontmatter 与 Entry 逐字段比较。Persisted Approval 绑定完整 URI 与 Digest 集;文件新增、删除或改变都会使批准失效。Digest 只能证明 Byte 与 Server Manifest 一致,不能证明内容可信。
信任与执行控制
Instruction、Script、Reference、Metadata 与 Nested Skill Link 都是不可信 Supply-chain Input。Host 要防止同名替换,在 Cache 与重启后保留 Origin,把缓存文件排除在 Local Skill Discovery 之外,并在激活嵌套 Skill 前重新审批。Frontmatter Tool Allowlist 只是 Hint,不是 Host Authorization;Script Execution、Filesystem、Network Egress、Credential 与高影响 Tool Call 都需要独立 Runtime Policy。
主要特点
- 官方可选 Extension:标识为 `io.modelcontextprotocol/skills`,并依赖 Core Resources
- 分层边界:Agent Skills 定义 Package,MCP 传输文件,Host 控制执行
- 直接与列表发现:`skills/get` 不依赖 Partial `skills/list` Result
- 渐进披露:Metadata、Instruction 与 Supporting File 只在需要时加载
- Manifest Verification:稳定 Entry 把每个 URI 绑定 SHA-256 Digest 与 Raw Byte Size
- Origin-bound Trust:Server Identity、Skill URI、Approval、Cache Isolation 与 Runtime Policy 防止静默替换
常见用途
- 由拥有工作流的 Server 分发共享 Code Review Procedure 与 Checklist
- 仅在 Agent 选择对应 Skill 时加载领域指令
- 让多种 Host 使用可验证、版本化的远程 Policy Template
- 提供 Skill Reference 与 Asset,而不把整个 Package 预载入模型 Context
- 把 Specialist Agent 迁移为共享 Instruction 与单独授权的 MCP Tool
示例
Loading code...常见问题
MCP Skills 与 Agent Skills Specification 有什么区别?
Agent Skills 定义 Package Format,包括目录、`SKILL.md`、Frontmatter 与可选配套文件;MCP Skills 定义如何通过 MCP 发现并读取这些 Package。Skill 可以脱离 MCP 存在,而通过 MCP 传输也不会规定某个 Agent Runtime 如何激活或执行。
MCP Skill 与 MCP Tool 有什么区别?
Skill 包含指导工作流的 Instruction 与 Supporting Resource;Tool 是拥有 Input Contract 的可执行操作。Skill 可以说明何时、如何使用 Tool,但加载指令不会授权 Tool Call。Host 与 Server 仍要执行 Identity、Object、Argument 与 Side-effect Policy。
校验 Skill Manifest 是否证明 Skill 安全?
不能。Size 与 SHA-256 只能证明 Byte 与 Retained Server Manifest 一致,不能证明 Publisher 可信、Instruction 正确、License 合规、没有 Prompt Injection 或 Script 安全。仍需 Provenance Review、User Approval、Sandbox、Tool Policy 与行为评测。
Host 是否应在 Discovery 阶段下载全部 Skill 文件?
不应。Extension 要求渐进式获取:`skills/list` 已携带 Metadata 与 Manifest;Host 在选中后读取 `SKILL.md`,只在需要时获取 Supporting File。Approval 可以不下载正文就绑定 Manifest,从而降低 Context、Bandwidth 与暴露面。
MCP Skill 在批准后发生变化会怎样?
文件变更、新增或删除都会改变 Retained Manifest,并使 Persisted Approval 失效。Host 应通过 `skills/get` 刷新 Entry,校验新 Manifest 与文件,向用户或 Policy Engine 展示相关变化,并在加载或执行新内容前取得新的批准。