Claude Code 里的 MCP / Skills / Hooks / Commands

AI 时代程序员必备技能

Codex、Claude Code、Cursor、Hermes Agent、OpenClaw等工程化实战专栏 ,讲透 AI 如何接管脏活累活

如果你刚开始用 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 的价值就在于把“偶然有效”变成“稳定可复用”。


实战建议:团队应该怎么分工建设这四层?

先做这两个(收益最高)

  1. Skills

    • 把高频任务沉淀下来(review、debug、spec→impl、release notes)
  2. 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”。

AI 时代程序员必备技能

Codex、Claude Code、Cursor、Hermes Agent、OpenClaw等工程化实战专栏 ,讲透 AI 如何接管脏活累活

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值