以下是关于插件、Skills、MCP、Hooks四个概念的关系与具体使用的总结,直接用于博客:


插件、Skills、MCP、Hooks 的关系与具体使用

一、它们是什么?

概念 一句话定义 类比
插件(Plugin) 一个完整的工具包,包含多个组件 一个工具箱
Skills(技能) 插件的核心,定义“怎么做”的指令模板 工具箱里的具体工具
MCP 连接外部系统的标准化协议 工具箱上的USB接口
Hooks(钩子) 事件驱动的自动执行脚本 工具箱上的自动感应器

二、它们的关系

插件(Plugin)
├── Skills      ← 核心能力(做什么、怎么做)
├── Hooks       ← 自动反应(什么事件触发)
└── MCP         ← 对外连接(怎么连外部)

关键理解:

  • 插件 ≠ Skills,插件包含 Skills
  • Skills 决定“做什么”,MCP 决定“怎么连外部”
  • Hooks 是“自动触发”,不需要手动调用

三、具体怎么用?

1. Skills 的使用

定义方式:skills/ 目录下创建 SKILL.md 文件

# 代码审查 Skill

## 描述
对代码变更进行审查,检查代码质量和安全性。

## 触发条件
- 自动触发:用户要求审查代码时
- 手动触发:输入 /review

## 执行步骤
1. 读取变更文件
2. 检查代码风格、安全漏洞、性能问题
3. 生成审查报告

调用方式: Claude 自动触发,或用户输入 /skill-name 手动调用。


2. MCP 的使用

定义方式: 在项目根目录创建 .mcp.json 文件

{
  "mcpServers": {
    "销售数据库": {
      "command": "node",
      "args": ["sales-server.js"],
      "description": "查询销售额、订单量、客户信息"
    },
    "人事数据库": {
      "command": "node",
      "args": ["hr-server.js"],
      "description": "查询员工、职位、部门信息"
    }
  }
}

调用方式: Claude 根据 description 自动判断用哪个,或用户在对话中直接指定“去销售数据库查这个”。

关键机制:

  • MCP 不是把所有数据读进上下文
  • 启动时只记住“有哪些工具可用”
  • 使用时按需调用,只拿查询结果

3. Hooks 的使用

定义方式:.claude/hooks/ 目录下创建固定名称的脚本文件

.claude/hooks/
├── pre-tool-use.sh      ← 工具使用前触发
├── post-tool-use.sh     ← 工具使用后触发
├── session-start.sh     ← 会话开始时触发
└── session-end.sh       ← 会话结束时触发

示例脚本:

#!/bin/bash
# post-tool-use.sh:每次写完代码自动格式化
npx prettier --write "$CLAUDE_FILE_PATH"

关键机制:

  • 文件名必须是22个约定名称之一,不能随便起名
  • 放对位置、取对名字,Claude 自动识别并执行
  • 一次配置,永久自动执行

4. 插件的完整结构
plugin-name/
├── .claude-plugin/plugin.json    ← 插件元数据(必需)
├── skills/                       ← 技能定义(必需)
│   └── code-review/SKILL.md
├── hooks/                        ← 自动脚本(可选)
│   └── post-tool-use.sh
├── .mcp.json                     ← 外部连接(可选)
└── README.md

最简插件 = plugin.json + 一个 Skill


四、一句话总结

插件是工具箱,Skills 是工具,MCP 是接口,Hooks 是自动感应器。

  • Skills 告诉 Claude 做什么
  • Hooks 让 Claude 自动做
  • MCP 让 Claude 连外部做

四者配合,让大模型从“只会说话”变成“能动手干活的全能员工”。

Logo

欢迎加入 MCP 技术社区!与志同道合者携手前行,一同解锁 MCP 技术的无限可能!

更多推荐