Skills、MCP 和 Plugins 的区别
核心概念辨析
这三个词都是 Claude Code 的扩展机制,但层次和用途不同。
1. Skills(技能)
定义
AI 的”能力包”,定义了在什么情况下触发、做什么、用什么工具。
特点
- 触发机制:基于关键词、场景、用户输入自动触发
- 作用范围:只影响 AI 的行为决策
- 独立性:可以独立存在,不需要其他组件
结构
---
name: agent-reach
description: 搜索和读取 13+ 平台内容
triggers: "搜推特", "search twitter"
---
# 使用指南
调用 xreach 工具...例子
| Skill | 用途 |
|---|---|
| agent-reach | 搜索 Twitter/Reddit/YouTube 等 |
| bb-browser | 把任何网站变成 CLI 命令 |
| 处理 PDF 文件 | |
| commit | 创建 git commit |
生命周期
用户输入 → 匹配 trigger → 加载 skill.md → 我按 instructions 执行
2. MCP(Model Context Protocol)
定义
一种开放协议标准,让 AI 能够调用外部工具和资源。
特点
- 协议性质:是标准,不是实现
- 通用性:任何支持 MCP 的客户端都能用
- 独立性:MCP server 是独立进程
结构
{
"name": "playwright",
"command": "npx -y @executeautomation/playwright-mcp",
"args": [],
"env": {}
}例子
| MCP Server | 提供能力 |
|---|---|
| playwright | 浏览器自动化 |
| github | 读取仓库、issue |
| filesystem | 文件操作 |
| brave | 网页搜索 |
生命周期
Claude 需要能力 → 调用 MCP server → server 执行 → 返回结果
3. Plugins(插件)
定义
Claude Code 的官方扩展机制,是最高层次的扩展方式。
特点
- 综合性质:可以包含 Skills + MCP + Hooks + UI
- Claude Code 专属:只在 Claude Code 中可用
- 生命周期管理:可以安装、卸载、更新
结构
plugin-name/
├── .claude-plugin/ # Plugin 元数据
├── .mcp.json # MCP server 配置
├── skills/ # 技能包
├── hooks/ # 生命周期钩子(对话关键时刻调用的程序)
├── modes/ # 特殊模式
└── ui/ # Web UI 界面
例子
| Plugin | 包含内容 |
|---|---|
| claude-mem | MCP + Hooks + Skills + UI |
| playwright | MCP server |
| superpowers | 多个 Skills + Modes |
生命周期
/plugin install → 下载到 ~/.claude/plugins/ → 注册到 settings.json → 生效
三者关系图
┌─────────────────────────────────────────────────────────────┐
│ Claude Code 扩展生态 │
└─────────────────────────────────────────────────────────────┘
│
┌───────────────────┼───────────────────┐
│ │ │
▼ ▼ ▼
┌─────────┐ ┌─────────┐ ┌─────────┐
│ Skills │ │ MCP │ │ Plugins │
│ │ │ │ │ │
│ 最小单元 │ │ 协议标准 │ │ 最高层级 │
│ 定义能力 │ │ 定义接口 │ │ 综合扩展 │
└─────────┘ └─────────┘ └─────────┘
│ │ │
│ │ │
│ 可包含 │
│ │ │
└───────────────────┼───────────────────┘
│
▼
┌─────────────────┐
│ 实际使用中 │
├─────────────────┤
│ Skill 可以独立 │
│ MCP 可以独立 │
│ Plugin 可包含 │
│ Skill 和 MCP │
└─────────────────┘
核心区别表格
| 维度 | Skills | MCP | Plugins |
|---|---|---|---|
| 本质 | AI 行为配置 | 协议标准 | 扩展容器 |
| 独立性 | ✅ 可独立 | ✅ 可独立 | ✅ 可独立 |
| 包含关系 | 被Plugin包含 | 被Plugin包含 | 可包含前两者 |
| 触发方式 | 关键词/场景 | 工具调用 | 安装后自动 |
| 通用性 | Claude Code 专用 | 任何MCP客户端 | Claude Code专用 |
| 配置位置 | skills/*/skill.md | .mcp.json | settings.json |
| 开发难度 | 低(写markdown) | 中(写server) | 高(综合) |
claude-mem 案例分析
claude-mem 是一个实际的记忆系统工具,它同时展示了三种形态:
场景 1:claude-mem 作为 Skill
claude-mem/
└── skills/
└── mem-search.md
---
name: mem-search
triggers: "搜索记忆", "mem search"
---
搜索历史对话记忆...
→ 最简单的集成方式
场景 2:claude-mem 作为 MCP Server
claude-mem/
├── .mcp.json # MCP server 配置
├── mcp-server.cjs # MCP server 实现
└── scripts/
→ 任何支持 MCP 的工具都能调用记忆系统
场景 3:claude-mem 作为 Plugin(实际实现)
claude-mem/
├── .claude-plugin/ # Plugin 元数据
├── .mcp.json # ✅ MCP server
├── skills/ # ✅ 包含搜索技能
├── hooks/ # ✅ 生命周期钩子
├── modes/ # ✅ 特殊模式
└── ui/ # ✅ Web UI (localhost:37777)
→ 实际就是这种形态,完整的 Plugin
实际使用建议
选择 Skill 当你需要:
- 定义 AI 在特定场景下的行为
- 触发特定的工具调用流程
- 快速实现,不需要复杂架构
例子:创建一个”自动生成 commit”的技能
选择 MCP 当你需要:
- 提供可复用的工具/资源
- 让多个 AI 系统都能用
- 独立部署和维护
例子:创建一个”公司内部知识库查询”的 MCP server
选择 Plugin 当你需要:
- 综合多种能力(Skill + MCP + Hooks)
- 提供完整的用户体验
- 复杂的生命周期管理
例子:创建一个像 claude-mem 这样的完整记忆系统
实际案例对照
| 工具 | 实际形态 | 包含什么 |
|---|---|---|
| agent-reach | Skill | instructions + 工具调用 |
| playwright MCP | MCP Server | 浏览器控制工具 |
| bb-browser | Skill | CLI 工具使用指南 |
| claude-mem | Plugin | MCP + Hooks + Skills + UI |
| superpowers | Plugin | 多个 Skills + Modes |
| filesystem MCP | MCP Server | 文件操作工具 |
一句话总结
- Skill = AI 的”技能说明书”(告诉它什么时候做什么)
- MCP = AI 的”USB 接口”(标准化的工具调用协议)
- Plugin = AI 的”应用商店”(包含技能、接口、钩子的完整扩展)
你可以:
- 只写一个 Skill(最简单)
- 只写一个 MCP Server(中等复杂度)
- 写一个完整的 Plugin(最强大)
它们可以独立存在,也可以互相包含。