一、扩展 Claude Code:开篇

Claude Code CLI 是一个强大的 AI 编程助手,但它的真正威力在于可扩展性。通过 Skills、Hooks 和 MCP 三大机制,你可以定制 Claude Code 的行为,接入外部工具,甚至构建完整的自动化工作流。

本系列将带你从零开始掌握 Claude Code 的扩展开发。

为什么需要扩展?

Claude Code 默认已经很好用了,但企业场景往往需要定制:

  • 团队规范:自动检查代码是否符合团队标准
  • 工具集成:接入公司内部的 API、知识库、CI/CD
  • 流程自动化:PR 审批通知、任务自动创建、部署触发
  • 安全控制:阻止危险命令、记录操作日志

这些需求无法通过 Claude Code 默认功能满足,但可以通过扩展实现。

三大扩展机制概览

Claude Code 提供三种扩展方式,各有侧重:

Skills:预定义的"技能包"

Skills 是可复用的提示模板,把常见操作封装成"技能"。

markdown 复制代码
---
name: commit
description: Create a git commit with a well-formed message
allowedTools: [Bash, Read]
---

Create a git commit following these steps:
1. Run git status and git diff to understand changes
2. Draft a commit message following conventional commits
3. Run git commit with the message

当你输入 /commit 时,Claude Code 会加载这个技能,按预设流程执行。

特点

  • 用户可调用(/skill-name
  • 可限制工具列表(allowedTools
  • 可选择模型(model: opus/sonnet/haiku

适合场景:重复性任务、标准化流程、团队共享操作

Hooks:生命周期"注入点"

Hooks 在特定事件发生时执行自定义逻辑。

json 复制代码
{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Bash",
        "hooks": [{ "type": "command", "command": "notify-send 'Claude Code' 'Bash command completed'" }]
      }
    ]
  }
}

每当 Bash 工具执行完毕,就会触发这个 Hook,发送桌面通知。

特点

  • 24 种事件类型(PreToolUse、PostToolUse、SessionStart、PreCompact...)
  • 可阻止操作(PreToolUse 返回 block
  • 可修改输入/输出

适合场景:验证、审计、通知、自动记录

MCP:外部工具"接入协议"

MCP (Model Context Protocol) 让 Claude Code 连接外部工具服务器

json 复制代码
{
  "mcpServers": {
    "slack": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@anthropic-ai/mcp-server-slack"]
    }
  }
}

连接后,Claude Code 可以调用 Slack 的工具(发消息、读取频道),就像调用内置工具一样。

特点

  • 标准协议(Anthropic 推出)
  • 支持多种传输(stdio、HTTP SSE、WebSocket)
  • 工具、资源、提示三合一

适合场景:接入第三方服务、企业内部系统、复杂工具链

三机制对比

特性 Skills Hooks MCP
核心概念 提示模板 事件监听 外部工具
触发方式 用户调用 /skill 自动触发 AI 决定调用
主要用途 封装操作流程 验证、通知、记录 接入外部系统
复杂度
用户交互 主动 被动 混合
可阻止操作 是(PreToolUse)

选择指南

什么时候用 Skills?

  • 团队有固定的操作流程(如 commit 格式)
  • 想把复杂操作简化成一个命令
  • 需要限制 AI 可用的工具

什么时候用 Hooks?

  • 需要验证 AI 的操作(阻止危险命令)
  • 需要记录日志或发送通知
  • 需要在特定事件发生时自动执行操作

什么时候用 MCP?

  • 需要接入外部服务(Slack、GitHub、Jira)
  • 企业有内部 API 需要调用
  • 需要提供动态资源(如知识库搜索)

组合使用

三大机制可以组合:

  • Skill + Hook:Skill 定义操作,Hook 验证操作
  • MCP + Skill:Skill 封装 MCP 工具调用流程
  • Hook + MCP:Hook 在 MCP 工具执行后通知

一个企业级示例:

ruby 复制代码
用户调用 /deploy-pr
    │
    ▼
Skill 加载(限制工具:Bash、MCP:gitlab)
    │
    ▼
PreToolUse Hook 验证:是否在 production 分支?
    │
    ├─ 是 → 允许执行
    │       │
    │       ▼
    │   Claude 调用 MCP:gitlab 创建 PR
    │       │
    │       ▼
    │   PostToolUse Hook:发送 Slack 通知
    │
    └─ 否 → 阻止执行,提示错误

本系列学习路径

篇数 主题 你将学到
02 Skills 基础 编写第一个 Skill,了解所有属性
03 Skills 进阶 Fork 模式、contextModifier、模型选择
04 Hooks 入门 24 种事件,6 种来源,配置格式
05 Hooks 实战 验证 Hook、通知 Hook、stdin/stdout
06 MCP 基础 7 种传输类型,配置格式,企业策略
07 MCP 开发 从零开发 MCP Server
08 MCP 资源与提示 Resources、Prompts,完整能力
09 组合扩展 Skills + Hooks + MCP 协同
10 企业案例 实际场景的完整实现
11 最佳实践 调试、性能、安全、踩坑
12 总结 对比表、学习路径、资源汇总

准备开始

确保你已经:

  1. 安装 Claude Code CLI (npm install -g @anthropic-ai/claude-code)
  2. 了解基本使用(发送消息、工具调用)
  3. 有一个测试项目目录

下一篇,我们将深入 Skills,编写第一个自定义技能。

相关推荐
冬奇Lab8 小时前
Workflow 系列(01):基础理论——三种执行模型与 Anthropic 5 种模式
人工智能·agent·工作流引擎
冬奇Lab8 小时前
每日一个开源项目(第143篇):page-agent - 纯 JS 的网页 GUI Agent,无需截图、无需插件、无需后端
前端·人工智能·agent
程序员cxuan10 小时前
虽迟但到!GPT-5.6 终于来了!
人工智能·后端·程序员
ZhengEnCi12 小时前
Q03-UI设计进阶技巧-让界面更高级的7个核心原则
人工智能
IT_陈寒13 小时前
React的这个渲染问题连官方文档都没说清楚
前端·人工智能·后端
不加辣椒14 小时前
第12章 工具调用与 Agent 提示工程
人工智能
用户16931761726614 小时前
前端给AI消息做日期分组与时间线
人工智能
i晟14 小时前
Claude Code Harness 深度拆解:从你敲回车到模型回复,中间发生了什么
人工智能
用户2527362781415 小时前
【踩坑复盘】我在本地跑 RAG 知识库时踩了 5 个大坑,吐血整理避坑指南
人工智能
大模型真好玩15 小时前
LangChain DeepAgents 速通指南(九)—— 生产级智能体框架 DeepAgents Code 源码导读
人工智能·langchain·agent