claude-plugin-creator について
Claude Plugin Creator は、Claude Code プラグインの設計、作成、テスト、配布を案内するガイドです。スキル、コマンド、フック、エージェント、MCP サーバーの選択や組み合わせ方を説明します。
主な機能
- 01用途に応じたコンポーネント選択
- 02プラグインのディレクトリ構成とメタデータ設定
- 03スキル、コマンド、エージェント、フックの設定
- 04MCP サーバー設定の追加
- 05プラグインのテストと配布
活用シーン
- 01個人プロジェクトやチーム向けプラグインの計画
- 02既存の Claude Code コンポーネントのプラグイン化
- 03マーケットプレイスでの検証と共有
MCP 対応
`.mcp.json` を使ってプラグインや単独構成に MCP サーバーを追加する方法を説明します。コマンドと引数の設定も扱います。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ bonkey/ skills --skill claude-plugin-creatorインストール後、Claude Code で/claude-plugin-creatorを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/create-plugins.mdplugin-marketplaces.mdplugins-reference-raw.mdplugins-reference.md詳細
Claude Plugin Creator
Claude Code プラグインを作成するためのガイドです。詳細なリファレンスについては、references/plugins-reference.md を参照してください。
ステップ 1: 作成するものを決める
適切な方法を判断するため、ユーザーに以下の質問をします。
Q1: 1 つのプロジェクトで使用しますか、それとも複数のプロジェクトやチームで共有しますか?
- 1 つのプロジェクト → スタンドアロン(
.claude/ディレクトリ)またはスキル - 共有 → プラグイン
Q2: Claude に自動で使用させますか、それともユーザーが明示的に呼び出しますか?
- 自動(コンテキストベース) → スキル(SKILL.md)
- 明示的(
/command) → コマンド(Markdown ファイル)
Q3: 外部サービスや API への接続が必要ですか?
- はい → MCP サーバー(スタンドアロンまたはプラグイン内)
- いいえ → スキルまたはコマンド
Q4: イベント(ファイルの保存、ツールの使用など)でコードを自動実行する必要がありますか?
- はい → フック
- いいえ → スキルまたはコマンド
Q5: 独自のシステムプロンプトを持つ、特化した AI エージェントが必要ですか?
- はい → エージェント
- いいえ → スキルまたはコマンド
判断のまとめ
| 必要なもの | 解決策 | 場所 |
|---|---|---|
| 個人用、1 つのプロジェクト、自動で起動 | スタンドアロンのスキル | .claude/skills/<name>/SKILL.md |
| 個人用、1 つのプロジェクト、ユーザーが起動 | スタンドアロンのコマンド | .claude/commands/<name>.md |
| 共有、自動で起動 | スキルを含むプラグイン | plugin/skills/<name>/SKILL.md |
| 共有、ユーザーが起動 | コマンドを含むプラグイン | plugin/commands/<name>.md |
| 外部 API へのアクセス | MCP サーバー | .mcp.json(スタンドアロンまたはプラグイン) |
| イベントの自動化 | フック | hooks/hooks.json(スタンドアロンまたはプラグイン) |
| 特化した AI の役割 | エージェント | agents/<name>.md |
| 上記の複数 | コンポーネントを組み合わせたプラグイン | 以下のプラグイン構造を参照 |
スコープ:誰がアクセスできますか?
| スコープ | ファイル | 可視性 |
|---|---|---|
user | ~/.claude/settings.json | 自分のみ、すべてのプロジェクト |
project | .claude/settings.json | Git 経由でチームに共有、このプロジェクト |
local | .claude/settings.local.json | 自分のみ、このプロジェクト(Git の追跡対象外) |
managed | 管理者が制御 | 組織全体、読み取り専用 |
ステップ 2: プラグインを作成する
ディレクトリ構造
my-plugin/
├── .claude-plugin/
│ └── plugin.json # Only this file goes here
├── skills/ # Auto-triggered by context
│ └── skill-name/
│ └── SKILL.md
├── commands/ # User-invoked via /plugin:command
│ └── command-name.md
├── agents/ # Specialized subagents
│ └── agent-name.md
├── hooks/
│ └── hooks.json # Event handlers
├── bin/ # Executables added to PATH
├── settings.json # Default settings
├── .mcp.json # MCP server configs
└── .lsp.json # LSP server configs
重要なルール:
- コンポーネントはプラグインのルートに配置します。.claude-plugin/ の中には配置しません
- プラグイン名は kebab-case にする必要があります
- スキルのファイル名には
SKILL.mdを使用する必要があります(大文字・小文字を正確に一致させます)
plugin.json(最小構成)
{
"name": "my-plugin",
"description": "What the plugin does",
"version": "1.0.0"
}
plugin.json(完全版)
{
"name": "my-plugin",
"version": "1.0.0",
"description": "What the plugin does",
"author": { "name": "Name", "email": "[email protected]" },
"homepage": "https://docs.example.com",
"repository": "https://github.com/user/plugin",
"license": "MIT",
"keywords": ["keyword1"],
"userConfig": {
"api_key": { "description": "API key", "sensitive": true }
}
}
ユーザー設定値は、設定内では ${user_config.KEY} として、環境変数では CLAUDE_PLUGIN_OPTION_<KEY> として利用できます。
スキル(SKILL.md)
---
name: skill-name
description: What it does. Use when [trigger phrases].
---
Instructions for Claude.
コマンド(commands/name.md)
---
description: What it does
disable-model-invocation: true
---
Instructions. User input: $ARGUMENTS
エージェント(agents/name.md)
---
name: agent-name
description: What it specializes in
model: sonnet
maxTurns: 20
---
System prompt here.
フック(hooks/hooks.json)
{
"hooks": {
"PostToolUse": [{
"matcher": "Write|Edit",
"hooks": [{ "type": "command", "command": "${CLAUDE_PLUGIN_ROOT}/scripts/lint.sh" }]
}]
}
}
MCP サーバー(.mcp.json)
{
"mcpServers": {
"server-name": {
"command": "${CLAUDE_PLUGIN_ROOT}/servers/server",
"args": ["--config", "${CLAUDE_PLUGIN_ROOT}/config.json"]
}
}
}
ステップ 3: テストする
claude --plugin-dir ./my-plugin
セッション内で変更後に /reload-plugins を実行します。検証するには、claude plugin validate . を実行します。
ステップ 4: 配布する
方法 A:マーケットプレイス(チームやコミュニティ向け)
マーケットプレイスのリポジトリに .claude-plugin/marketplace.json を作成します。
{
"name": "marketplace-name",
"owner": { "name": "Team Name" },
"plugins": [
{
"name": "plugin-name",
"source": "./plugins/plugin-name",
"description": "What it does",
"version": "1.0.0"
}
]
}
プラグインのソースには、相対パス("./plugins/x")、GitHub({ "source": "github", "repo": "owner/repo" })、git URL、git サブディレクトリ、npm パッケージを指定できます。
GitHub で公開し、/plugin marketplace add owner/repo で追加します。
方法 B:直接共有
GitHub でプラグインのディレクトリを公開します。ユーザーは --plugin-dir を使うか、.claude/ の設定に追加してインストールします。
方法 C:チームでの自動インストール
プロジェクトの .claude/settings.json に追加します。
{
"extraKnownMarketplaces": {
"team-tools": { "source": { "source": "github", "repo": "org/plugins" } }
},
"enabledPlugins": { "my-plugin@team-tools": true }
}
方法 D:公式マーケットプレイス
claude.ai/settings/plugins/submit または platform.claude.com/plugins/submit から申請します。
スタンドアロンからプラグインへの変換
mkdir -p my-plugin/.claude-plugin- 名前を指定して
plugin.jsonを作成 .claude/commands/→my-plugin/commands/にコピー.claude/skills/→my-plugin/skills/にコピー.claude/agents/→my-plugin/agents/にコピー- settings.json のフックを
my-plugin/hooks/hooks.jsonに移動 - テスト:
claude --plugin-dir ./my-plugin
プラグイン内の環境変数
${CLAUDE_PLUGIN_ROOT}— プラグインのインストール先(更新時に変わります)${CLAUDE_PLUGIN_DATA}— 永続データの保存先(更新後も保持されます)