mcpField
C
claude-plugin-creator

claude-plugin-creator

github.com/bonkeyエージェントワークフロー052 回インストール3 週間前に更新
リポジトリ

claude-plugin-creator について

Claude Plugin Creator は、Claude Code プラグインの設計、作成、テスト、配布を案内するガイドです。スキル、コマンド、フック、エージェント、MCP サーバーの選択や組み合わせ方を説明します。

主な機能

  1. 01用途に応じたコンポーネント選択
  2. 02プラグインのディレクトリ構成とメタデータ設定
  3. 03スキル、コマンド、エージェント、フックの設定
  4. 04MCP サーバー設定の追加
  5. 05プラグインのテストと配布

活用シーン

  1. 01個人プロジェクトやチーム向けプラグインの計画
  2. 02既存の Claude Code コンポーネントのプラグイン化
  3. 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.md
plugin-marketplaces.md
plugins-reference-raw.md
plugins-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.jsonGit 経由でチームに共有、このプロジェクト
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 から申請します。

スタンドアロンからプラグインへの変換

  1. mkdir -p my-plugin/.claude-plugin
  2. 名前を指定して plugin.json を作成
  3. .claude/commands/ → my-plugin/commands/ にコピー
  4. .claude/skills/ → my-plugin/skills/ にコピー
  5. .claude/agents/ → my-plugin/agents/ にコピー
  6. settings.json のフックを my-plugin/hooks/hooks.json に移動
  7. テスト:claude --plugin-dir ./my-plugin

プラグイン内の環境変数

  • ${CLAUDE_PLUGIN_ROOT} — プラグインのインストール先(更新時に変わります)
  • ${CLAUDE_PLUGIN_DATA} — 永続データの保存先(更新後も保持されます)

コメント