Claude Code Extension Stack:CLAUDE.md、Skills、插件与 MCP

用了一段时间 Claude Code 之后,很多人都会遇到同一个困惑:

  • Skills 和插件到底什么关系?
  • 为什么安装了 frontend-design 插件,却是通过 /frontend-design 这个 Skill 调用
  • 平时直接和 Claude 对话就能完成开发,那这些扩展机制到底是给谁用的?

​ 如果你也有类似疑问,其实不是你没学会,而是 Claude Code 的扩展体系是分层设计的。这篇文章会帮你建立一个完整认知框架:CLAUDE.md、Skills、插件和MCP Server 四层扩展机制分别解决什么问题,以及什么时候该用哪一层。

引言、建立 Claude Code 的认知框架

​ Claude Code 的扩展体系并不是一组独立功能,而是一种逐层扩展能力的结构

在这里插入图片描述

​ 从上到下可以这样理解:

  • 越靠上,越接近日常使用方式(对话驱动)
  • 越靠下,能力越强,但复杂度也越高

​ 大多数开发者的日常工作,其实只停留在前两层:因为对话 + CLAUDE.md 就已经覆盖了 80%–90% 的开发场景。

​ 后面的 Skills、Plugin 和 MCP,并不是必须学习的功能,而是在出现特定需求时自然引入的扩展能力。

​ 接下来,我们从最基础的一层开始逐步拆解。

一、第一层:CLAUDE.md —始终在线的"项目记忆"

1.1 什么是CLAUDE.md

CLAUDE.md 是一个放在项目根目录的 Markdown 文件,Claude Code 每次启动都会自动读取

你可以把它理解为"给 Claude 的长期记忆"。

1.2 它解决什么问题

​ 项目通常存在大量隐性约定:

  • 代码风格用 ESLint + Prettier
  • API 命名用 camelCase
  • Commmit遵循Conventional Commits 格式
  • 测试框架是 Vitest 而不是 Jest

​ 如果没有 CLAUDE.md,你需要不断重复这些背景信息。而 CLAUDE.md 的作用是:让项目规则变成默认前提,而不是对话内容。

1.3 作用域

位置作用
项目/CLAUDE.md当前项目
~/.claude/CLAUDE.md全局默认,所有项目通用

1.4 核心特点

  • 始终加载:不需要手动触发,打开 Claude Code 就生效
  • 零学习成本:就是个 Markdown 文件,写什么 Claude 就记什么
  • 最常用:大多数开发者只用了这一层,就已经能大幅提升效率

二、第二层:Skills — 按需加载的能力模块

​ 如果说 CLAUDE.md 是“常驻记忆”,那么 Skill 就是需要时才拿出来的工具。

2.1 Skill是什么

​ 本质上来说,Skill = 一个文件夹 + 一个 SKILL.md 文件。

​ SKILL.md 里写的是一组结构化指令,它定义了一套结构化流程,可以通过斜杠命令 /skill-name 调用。

​ 例如,我们定义code-review的skill,然后可以通过/code-review触发。

~/.claude/skills/
  └── code-review/
      └── SKILL.md

2.2 和 CLAUDE.md 的关键区别

​ 这是最容易混淆的地方,用一个类比说清楚:

类比
CLAUDE.md贴在墙上的规则
Skill工具箱里的工具

​ 更技术一点来说:

CLAUDE.mdSkill
加载方式自动按需
Token 占用始终存在使用时才加载
适合内容长期规则工作流程
使用频率高频特定场景
  • 为什么不能全写进 CLAUDE.md?

    • 因为 上下文窗口是有限资源

      如果你把前端设计规范(2000字)、Code Review 清单(1500字)、部署流程(800字)全部写进去。那么每一次对话都会白白消耗 4300 tokens , 即使你只是在改一个函数名。

    • Skill 的价值就是把重型知识变成“按需加载”。

2.3 SKILL.md 的内容

---
name: code-review
description: 执行代码审查,检查安全性、性能和可维护性
---

## 审查清单

### 安全性
- 检查是否有 SQL 注入风险
- 检查用户输入是否做了校验
- 检查敏感信息是否暴露在日志中

### 性能
- 检查是否有 N+1 查询
- 检查大列表是否做了分页
- 检查是否有不必要的重复计算

### 可维护性
- 函数是否过长(超过 50 行考虑拆分)
- 命名是否清晰
- 是否有未处理的边界情况

​ 调用方式就是在 Claude Code 中输入 /code-review

2.4 两种调用模式

(1) 手动调用
/frontend-design 帮我优化这个登录页
(2) Claude 自动识别

​ 当你说"帮我做个漂亮的登陆页",如果你装了 frontend-design 这个 Skill,Claude 会读取它的 description 字段,判断跟你的请求匹配,自动加载,你甚至不知道它被激活了。

​ 这就是为什么有时候你没有输入 /xxx,Claude 也会显示 Skill(frontend-design) Successfully loaded

(3) Skill 放在哪里
位置作用域适用场景
~/.claude/skills/<name>/SKILL.md你个人所有项目通用技能(代码审查、Git 规范等)
.claude/skills/<name>/SKILL.md当前项目项目特定技能(随代码版本管理)

三、第三层:插件 Plugin —Skills 的分发系统

​ 这里是最容易误解的一层,插件不是新的能力类型,它只是:把 Skills(以及其他能力)打包成可安装单元。

3.1 什么是Skills

插件 = Skills + MCP Server + Hooks 的打包容器。 它不是一种新机制,而是把前面说的东西打包成一个可安装、可分发的单元。

​ 可以和我们使用python进行简单的类比:

概念类比
SkillPython 文件
Pluginpip 包

​ 回到我们之前用的 frontend-design,它本质上就是一个插件,里面包含了一个同名的 Skill。我们通过 /plugin install frontend-design 安装它,实际上就是把里面的 SKILL.md 下载到了你的环境中。

3.2 手写skill v.s. 安装插件

​ 我们也可以手写skill,但是使用插件让你可以:一键安装、自动更新、团队共享、Marketplace 分发。

直接写 Skill安装插件
获取方式手动创建文件npx skills add/plugin install
分享方式发文件发仓库地址
命名空间/skill-name/plugin-name:skill-name
版本管理手动语义化版本
组合能力只有 Skill可包含 Skills + MCP + Hooks
  • 插件的目录结构
my-plugin/
├── .claude-plugin/
│   └── plugin.json        # 元数据(名称、版本、描述)
├── skills/
│   └── design/
│       └── SKILL.md       # 具体技能
├── hooks/
│   └── hooks.json         # 钩子(如提交前自动审查)
└── .mcp.json              # MCP Server 配置

​ 可以看到,安装插件 ≈ 下载一组 Skills + 能力配置。这就是为什么我们安装 frontend-design 插件,却通过 /frontend-design Skill 调用。

3.3 什么时候需要插件

场景是否需要
个人使用❌ 不需要,直接在 ~/.claude/skills/ 里写 SKILL.md 就行
团队统一规范✅ 推荐。大家装同一个插件,就能获得一致的技能集
社区发布✅ 必须。通过 Marketplace 让其他人一键安装

四、第四层:MCP Server —Claude 的外部接口

​ 前三层都还在 Claude 内部,MCP 是第一次真正“走出 Claude”。

4.1 什么是MCP

​ MCP(Model Context Protocol)是一个让 Claude Code 连接外部工具的协议。通过 MCP Server,Claude 可以操作 GitHub、查数据库、发邮件、读 Notion 文档,即任何有 API 的东西都能接入。

  • 它和 Skills 的区别

    Skill 决定行为,MCP 提供现实世界的接口。

    • Skill 告诉 Claude “怎么做”——提供指令和流程。
    • MCP 告诉 Claude “能做什么”——提供工具和数据源。
  • Skill 与 MCP 如何协作

    你写了一个 Skill,指令是"部署前检查所有 Sentry 告警"。但 Claude 本身不能访问 Sentry。也就是说,它知道流程,却拿不到数据。

    这时候你就需要一个 Sentry 的 MCP Server,给 Claude 提供查询 Sentry 的能力,让它能够真正执行检查。

    于是,一个完整可执行的系统通常由两部分组成:

    • Skill = 流程(怎么做)
    • MCP = 能力与数据来源(能访问什么)

    只有当两者结合时,任务才真正从“描述流程”变成“可以执行”。

4.2 常见的 MCP Server

# 连接 GitHub
claude mcp add --transport http github https://api.githubcopilot.com/mcp/

# 连接数据库
claude mcp add --transport stdio db -- npx -y @bytebase/dbhub \
  --dsn "postgresql://user:pass@host:5432/dbname"

# 连接 Sentry(错误监控)
claude mcp add --transport http sentry https://mcp.sentry.dev/mcp

4.3 什么时候需要 MCP

  • 你需要 Claude 访问外部系统(GitHub、Jira、数据库、邮件等)
  • 你想在对话中直接查询生产数据而不是手动复制粘贴
  • 你的 Skill 流程中有一步需要调用外部 API

如果你的工作不涉及外部系统集成,大概率用不上 MCP。

五、总结

​ 四层扩展机制,按使用频率排列:

层级本质一句话概括你现在用了吗
CLAUDE.md始终加载的项目上下文“Claude,记住这些规矩”✅ 已在用
Skills按需调用的指令包“Claude,执行这套流程”按需即可
插件Skills 的打包分发容器“装这个插件获得一组技能”团队协作时考虑
MCP外部工具接入协议“Claude,你现在可以访问 GitHub 了”需要外部集成时用

​ 最后,可以用一句话理解整个设计哲学:Claude Code 并不是让你学习更多功能,而是让能力随着需求自然外扩。

在这里插入图片描述

​ 这套设计,其实非常 Unix:每一层只解决一个问题,但可以自由组合。你不需要一次学完全部,只需要在真正产生痛点时,向下一层迈一步即可。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

未收敛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值