如果你刚开始用 Claude Code,很容易把这几个概念混在一起:
- MCP
- Skills
- Hooks
- Commands(slash commands)
它们都能“扩展 Claude Code”,但扩展的维度完全不同。
最常见的误解是:把它们都当成“插件系统”。
其实不是。
在 Claude Code 里,这四者更像四层不同的机制:
- MCP:连接外部世界(数据 / 工具)
- Skills:封装可复用能力(方法 / 模板 /资源)
- Hooks:在生命周期节点执行自动化(规则 / 守卫 /触发器)
- Commands:用户交互入口(快捷命令 / 操作界面)
Claude Code 官方文档本身也把它们分散在不同章节:MCP、Skills、Hooks、Interactive Mode(内置命令)与 CLI reference(命令行命令)里,说明它们并不是同一层概念。([Claude][1])
先给结论:一张关系图(文字版)
你可以把 Claude Code 想成一个“会读写代码、会跑命令、会协调任务的代理执行器”。官方概述里明确提到它能读代码库、编辑文件、运行命令,并接入开发工具。([Claude][1])
在这个执行器周围:
你(开发者)
│
├─ Commands(/help, /mcp, /review-pr ...)
│ └─ 作为“入口”:你如何触发动作、切换模式、调用能力
│
├─ Skills(SKILL.md + 资源/脚本)
│ └─ 作为“能力包”:Claude 在相关任务中自动加载或手动 /skill-name 调用
│
├─ Hooks(生命周期事件上的自动执行)
│ └─ 作为“流程自动化与守卫”:在关键节点触发 shell/LLM prompt
│
└─ MCP(外部系统连接协议)
└─ 作为“连接层”:让 Claude Code 访问 GitHub/Slack/Drive/Jira/自定义工具
一句话记忆:
- MCP = 接进来
- Skills = 教会它
- Hooks = 管住它 / 自动化它
- Commands = 叫它干活
1)MCP:Claude Code 的“外部连接层”
MCP 是什么?
MCP(Model Context Protocol)是 Anthropic 开源的一个协议标准,用来把 AI 工具连接到外部数据源和工具系统。Anthropic 官方介绍里强调它是一个通用开放标准,支持 AI 应用作为客户端连接 MCP servers,建立安全的双向连接。([Anthropic][2])
Claude Code 官方 overview 里也直接写到:通过 MCP,Claude Code 可以读取 Google Drive 文档、更新 Jira 工单、从 Slack 拉数据,或者调用你自己的工具。([Claude][1])
在 Claude Code 里它解决什么问题?
没有 MCP 时:
- Claude 很擅长推理和生成
- 但拿不到你的真实业务上下文(工单、设计文档、内部状态)
有 MCP 后:
- Claude 可以“看见”并“操作”外部系统
- 从“会写代码”升级为“能在真实工作流里做事”
典型场景
- 读 Jira ticket → 拉 PR → 生成变更说明
- 查 Slack incident thread → 结合代码日志定位故障
- 读 Google Drive 设计文档 → 实现 feature scaffold
- 接自定义 MCP server → 走公司内部发布流程
你需要记住的定位
MCP 不负责教 Claude 怎么做分析,它主要负责:
- 提供访问能力
- 提供工具能力
- 提供上下文通道
也就是说,MCP 更像是 “数据与工具的总线”。
2)Skills:Claude Code 的“可复用能力包”
Skills 是什么?
Claude Code 文档里明确写到:创建一个 SKILL.md,Claude 就会把这个 skill 加入自己的 toolkit;Claude 会在相关时机自动使用,也可以手动通过 /skill-name 调用。([Claude][3])
并且一个很关键的变化是:自定义 slash commands 已经并入 Skills 体系。官方文档写得很清楚:
.claude/commands/review.md.claude/skills/review/SKILL.md
这两种方式都可以创建 /review,旧的 commands 文件仍可用,但 Skills 提供更多能力(支持文件目录、frontmatter、自动加载等)。([Claude][3])
Skills 的本质是什么?
Skills 不是“连接器”,而是 “SOP + 模板 + 资源 + 可选脚本”的能力封装。
它最适合做这些事:
- 团队 code review 规范(输出固定结构)
- 安全审计清单(检查项 + 结论格式)
- PRD 转技术方案流程(步骤、模板、风险项)
- 某类任务的领域知识注入(例如数据库迁移、前端可访问性)
为什么不是直接写 prompt?
因为 prompt 是“这一次对话的临时指令”,而 Skill 是“长期复用的能力资产”。
官方技能文档也强调了 Skills 支持:
- frontmatter 控制调用方式
- 自动发现
- 支持附加文件
- 限制工具访问
- 动态注入上下文
- 子代理执行等高级模式。([Claude][3])
你需要记住的定位
Skills 的关键词不是“连接”,而是:
- 复用
- 标准化
- 按需加载
- 任务方法论
所以它更像 “给 Claude 装工作手册”。
3)Hooks:Claude Code 的“生命周期自动化与守卫”
Hooks 是什么?
Claude Code 的 Hooks 文档定义得非常明确:Hooks 是用户定义的 shell 命令或 LLM prompt,会在 Claude Code 生命周期的特定节点自动执行。([Claude][4])
官方 guide 还给了很多自动化例子,例如:
- Claude 需要你输入时发送通知
- 编辑后自动格式化
- 阻止编辑受保护文件
- compaction 后重新注入上下文
- 审计配置变更等。([Claude][5])
Hooks 和 Skills 的根本区别
很多人会把 Hook 当成 Skill 的“自动触发版”,这不准确。
- Skill:Claude 的任务能力包(偏“认知层”)
- Hook:Claude Code 生命周期事件上的自动执行(偏“运行时控制层”)
换句话说:
- Skill 决定“怎么做任务”
- Hook 决定“在什么时机强制执行什么动作/规则”
Hooks 特别适合做什么?
A. 守卫(Guardrails)
- 禁止编辑某些关键文件
- 在执行危险命令前拦截
- 审计某类操作
B. 自动化(Automation)
- 文件改完自动格式化 / lint
- 会话开始时注入上下文
- Claude 等待输入时发桌面通知
C. 一致性(Consistency)
- 每次执行某类操作都跑同一套检查
- 避免“Claude 忘了做某一步”
这也是为什么很多团队会把 Hooks 当成“确定性保障层”。
你需要记住的定位
Hooks 像 CI/CD 里的:
- pre-commit hooks
- git hooks
- policy gates
只是这里它们挂在 Claude Code 的 agent lifecycle 上。
4)Commands:Claude Code 的“用户入口层”
这里要分清 两类 Commands,不然最容易混淆。
4.1 内置 Commands(Built-in slash commands)
在 Claude Code 的 Interactive Mode 里,官方列出了内置命令体系(并说明输入 / 可以看到完整列表,输入前缀可筛选)。([Claude][6])
官方文档示例包括(节选):
/help/init/mcp/memory/rewind/doctor等。([Claude][6])
这些是 Claude Code 自带的交互操作入口,用于管理会话、环境、功能状态。
比如:
/mcp:管理 MCP 连接与认证/help:查看命令/init:初始化项目的CLAUDE.md
4.2 自定义 Commands(现在本质上并入 Skills)
官方技能文档已说明:自定义 slash commands 已与 Skills 合并。旧的 .claude/commands/*.md 仍兼容,但推荐理解为 Skills 体系的一部分。([Claude][3])
也就是说,今天你看到一个 /review-pr,它可能是:
- 历史遗留的
.claude/commands/review-pr.md - 或新的
.claude/skills/review-pr/SKILL.md
对用户体验来说都像“命令”;
对架构理解来说,后者属于 Skills 的调用入口。
你需要记住的定位
Commands 的核心不是“能力来源”,而是 “触发方式 / 交互入口”。
- 一部分命令是系统内置功能(CLI/REPL 控制)
- 一部分命令是你定义的能力入口(本质属于 Skills)
这四者怎么协同?一个真实工作流示例
假设你要在团队里做一个 /review-pr 工作流(代码审查 + 风险检查 + 输出评论)。
第 1 层:MCP(接数据)
通过 MCP 接入 GitHub / Jira / Slack:
- 读取 PR diff
- 拉关联 ticket
- 查讨论上下文
Claude Code overview 明确提到通过 MCP 可接 Jira、Slack、Google Drive 等外部数据源。([Claude][1])
第 2 层:Skill(定义审查方法)
创建 review-pr Skill,规定:
- 审查步骤(功能正确性 / 回归风险 / 安全 / 性能 / 测试覆盖)
- 输出模板(Summary / Risks / Blocking / Suggestions)
- 团队术语与风格
Skill 支持 SKILL.md、自动调用与 /skill-name 手动调用。([Claude][3])
第 3 层:Command(提供入口)
把它暴露为 /review-pr
- 你可以手动触发
- 团队成员都用同一入口
官方文档说明 Skills 与自定义 slash commands 的关系与兼容方式。([Claude][3])
第 4 层:Hook(加守卫与自动化)
在关键节点加 Hook:
- 审查前自动拉取最新 diff
- 审查后自动格式化输出或归档记录
- 阻止对受保护文件的改动建议(或弹出警示)
- Claude 等待人工确认时通知你
Hooks guide/reference 都覆盖了生命周期事件与自动化模式。([Claude][5])
常见误区(很实用)
误区 1:MCP 就是插件系统
不完全对。
MCP 是协议标准,不是某个单一“插件市场”概念。它定义了 Claude Code(或其他客户端)和外部 server 的连接方式。([Anthropic][2])
误区 2:Skills = 自定义 Commands
现在更准确的说法是:自定义 Commands 已并入 Skills 体系。
命令是入口,Skill 是能力包。官方文档已经明确这层关系。([Claude][3])
误区 3:Hooks 能替代 Skills
不能。
Hooks 强在“时机触发 + 自动执行 + 守卫”,不适合承载复杂任务方法论;Skills 才是任务知识与流程封装。([Claude][4])
误区 4:只用 prompt 就够了
短期可以,长期团队化会崩:
- prompt 漂移
- 输出风格不一致
- 关键步骤遗漏
- 新人复制困难
Skills + Hooks + Commands 的价值就在于把“偶然有效”变成“稳定可复用”。
实战建议:团队应该怎么分工建设这四层?
先做这两个(收益最高)
-
Skills
- 把高频任务沉淀下来(review、debug、spec→impl、release notes)
-
Hooks
- 加自动格式化、通知、保护关键文件、重注入上下文
这两者最容易快速见效。官方 overview 也把 skills / hooks 放在“Customize”主路径里。([Claude][1])
再做 MCP(连接真实业务)
当你开始需要 Claude 真正参与工作流(不是只在本地改代码)时,再上 MCP:
- Jira
- Slack
- Docs
- 内部平台
Commands 的策略
- 内置命令:团队培训里教会
/help、/mcp、/init、/memory、/rewind - 自定义命令(Skills):命名统一(如
/review-pr、/deploy-staging、/incident-summary)
一张“决策表”:遇到需求时该用哪个?
需求:让 Claude 访问外部系统
✅ 用 MCP
需求:让 Claude 按团队规范重复完成某类任务
✅ 用 Skills
需求:在某个生命周期节点自动执行命令/检查/通知
✅ 用 Hooks
需求:给人一个易用的触发入口(/xxx)
✅ 用 Commands
- 如果是系统功能:内置命令
- 如果是你的工作流:本质上用 Skills 暴露成命令
最后总结:把它们当成“分层架构”,你就不会再混
Claude Code 不是只有一个“插件点”,而是多层扩展架构:
- MCP:连接层(Access)
- Skills:能力层(Capability)
- Hooks:运行时控制层(Automation / Guardrails)
- Commands:交互入口层(UX / Trigger)
这四层配合起来,Claude Code 才会从“会写代码的助手”变成“能进入你团队工程系统、按规范稳定执行的 agent”。

1661

被折叠的 条评论
为什么被折叠?



