插件组件参考
本节记录了插件可以提供的四种类型的组件。命令
插件添加自定义斜杠命令,与 Claude Code 的命令系统无缝集成。 位置:插件根目录中的commands/
目录
文件格式:带有前置元数据的 Markdown 文件
有关插件命令结构、调用模式和功能的完整详细信息,请参阅插件命令。
代理
插件可以为特定任务提供专门的子代理,Claude 可以在适当时自动调用。 位置:插件根目录中的agents/
目录
文件格式:描述代理能力的 Markdown 文件
代理结构:
- 代理出现在
/agents
界面中 - Claude 可以根据任务上下文自动调用代理
- 用户可以手动调用代理
- 插件代理与内置的 Claude 代理一起工作
钩子
插件可以提供事件处理程序,自动响应 Claude Code 事件。 位置:插件根目录中的hooks/hooks.json
,或在 plugin.json 中内联
格式:带有事件匹配器和操作的 JSON 配置
钩子配置:
PreToolUse
:在 Claude 使用任何工具之前PostToolUse
:在 Claude 使用任何工具之后UserPromptSubmit
:当用户提交提示时Notification
:当 Claude Code 发送通知时Stop
:当 Claude 尝试停止时SubagentStop
:当子代理尝试停止时SessionStart
:在会话开始时SessionEnd
:在会话结束时PreCompact
:在对话历史被压缩之前
command
:执行 shell 命令或脚本validation
:验证文件内容或项目状态notification
:发送警报或状态更新
MCP 服务器
插件可以捆绑模型上下文协议(MCP)服务器,将 Claude Code 与外部工具和服务连接。 位置:插件根目录中的.mcp.json
,或在 plugin.json 中内联
格式:标准 MCP 服务器配置
MCP 服务器配置:
- 插件 MCP 服务器在插件启用时自动启动
- 服务器作为标准 MCP 工具出现在 Claude 的工具包中
- 服务器功能与 Claude 现有工具无缝集成
- 插件服务器可以独立于用户 MCP 服务器进行配置
插件清单架构
plugin.json
文件定义了您插件的元数据和配置。本节记录了所有支持的字段和选项。
完整架构
必需字段
字段 | 类型 | 描述 | 示例 |
---|---|---|---|
name | string | 唯一标识符(kebab-case,无空格) | "deployment-tools" |
元数据字段
字段 | 类型 | 描述 | 示例 |
---|---|---|---|
version | string | 语义版本 | "2.1.0" |
description | string | 插件用途的简要说明 | "部署自动化工具" |
author | object | 作者信息 | {"name": "开发团队", "email": "[email protected]"} |
homepage | string | 文档 URL | "https://docs.example.com" |
repository | string | 源代码 URL | "https://github.com/user/plugin" |
license | string | 许可证标识符 | "MIT" , "Apache-2.0" |
keywords | array | 发现标签 | ["deployment", "ci-cd"] |
组件路径字段
字段 | 类型 | 描述 | 示例 |
---|---|---|---|
commands | string|array | 额外的命令文件/目录 | "./custom/cmd.md" 或 ["./cmd1.md"] |
agents | string|array | 额外的代理文件 | "./custom/agents/" |
hooks | string|object | 钩子配置路径或内联配置 | "./hooks.json" |
mcpServers | string|object | MCP 配置路径或内联配置 | "./mcp.json" |
路径行为规则
重要:自定义路径补充默认目录 - 它们不会替换它们。- 如果
commands/
存在,它会与自定义命令路径一起加载 - 所有路径必须相对于插件根目录并以
./
开头 - 来自自定义路径的命令使用相同的命名和命名空间规则
- 可以将多个路径指定为数组以提供灵活性
环境变量
${CLAUDE_PLUGIN_ROOT}
:包含插件目录的绝对路径。在钩子、MCP 服务器和脚本中使用此变量,以确保无论安装位置如何都能获得正确的路径。
插件目录结构
标准插件布局
完整的插件遵循以下结构:.claude-plugin/
目录包含 plugin.json
文件。所有其他目录(commands/、agents/、hooks/)必须在插件根目录,而不是在 .claude-plugin/
内部。文件位置参考
组件 | 默认位置 | 用途 |
---|---|---|
清单 | .claude-plugin/plugin.json | 必需的元数据文件 |
命令 | commands/ | 斜杠命令 markdown 文件 |
代理 | agents/ | 子代理 markdown 文件 |
钩子 | hooks/hooks.json | 钩子配置 |
MCP 服务器 | .mcp.json | MCP 服务器定义 |
调试和开发工具
调试命令
使用claude --debug
查看插件加载详细信息:
- 正在加载哪些插件
- 插件清单中的任何错误
- 命令、代理和钩子注册
- MCP 服务器初始化
常见问题
问题 | 原因 | 解决方案 |
---|---|---|
插件未加载 | 无效的 plugin.json | 验证 JSON 语法 |
命令未出现 | 错误的目录结构 | 确保 commands/ 在根目录,而不是在 .claude-plugin/ 中 |
钩子未触发 | 脚本不可执行 | 运行 chmod +x script.sh |
MCP 服务器失败 | 缺少 ${CLAUDE_PLUGIN_ROOT} | 对所有插件路径使用变量 |
路径错误 | 使用了绝对路径 | 所有路径必须是相对的并以 ./ 开头 |