実践的なチュートリアルと実用的な使用方法については、プラグインを参照してください。チームやコミュニティ全体でのプラグイン管理については、プラグインマーケットプレイスを参照してください。
プラグインコンポーネントリファレンス
このセクションでは、プラグインが提供できる4つのタイプのコンポーネントについて説明します。コマンド
プラグインは、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
: シェルコマンドまたはスクリプトを実行validation
: ファイル内容またはプロジェクト状態を検証notification
: アラートまたはステータス更新を送信
MCPサーバー
プラグインは、Claude Codeを外部ツールやサービスと接続するためのModel Context Protocol(MCP)サーバーをバンドルできます。 場所: プラグインルートの.mcp.json
、またはplugin.jsonでのインライン
形式: 標準MCPサーバー設定
MCPサーバー設定:
- プラグインMCPサーバーは、プラグインが有効になったときに自動的に開始されます
- サーバーはClaudeのツールキットで標準MCPツールとして表示されます
- サーバー機能はClaudeの既存ツールとシームレスに統合されます
- プラグインサーバーはユーザーMCPサーバーとは独立して設定できます
プラグインマニフェストスキーマ
plugin.json
ファイルは、プラグインのメタデータと設定を定義します。このセクションでは、サポートされているすべてのフィールドとオプションについて説明します。
完全なスキーマ
必須フィールド
フィールド | タイプ | 説明 | 例 |
---|---|---|---|
name | string | 一意の識別子(ケバブケース、スペースなし) | "deployment-tools" |
メタデータフィールド
フィールド | タイプ | 説明 | 例 |
---|---|---|---|
version | string | セマンティックバージョン | "2.1.0" |
description | string | プラグインの目的の簡潔な説明 | "Deployment automation tools" |
author | object | 作成者情報 | {"name": "Dev Team", "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} が不足 | すべてのプラグインパスに変数を使用 |
パスエラー | 絶対パスが使用されている | すべてのパスは相対パスで./ で始まる必要がある |