【基盤層】
MCP ─────────────── 外部ツール・データソースとの接続プロトコル
Hooks ───────────── ライフサイクルイベントでの自動実行機構
【実行単位層】(上位ほど高機能)
Agents ──────────── 独立コンテキストで動作する専門エージェント
↑ 組み合わせ
Skills ──────────── 自動検出可能、補助ファイル対応
↑ 拡張
Commands ────────── ユーザー起動型のシンプルなショートカット
【配布層】
Marketplace ─────── プラグインのカタログ・配布基盤
↑ 集約
Plugin ──────────── 複数コンポーネントのパッケージ
1. MCP(Model Context Protocol)
位置づけ:外部連携の基盤プロトコル
| 項目 | 内容 |
|---|---|
| 目的 | AIと外部ツール・データソースを標準化されたプロトコルで接続する |
| 説明 | Anthropicが開発したオープンソースの標準プロトコル。データベース、API(GitHub、Slack、Jira等)、ファイルシステム等への接続を可能にする。個別のカスタム実装が不要になり、単一のプロトコルで複数のデータソースに接続できる。他のすべてのコンポーネント(Skills、Agents、Hooks等)がMCPサーバーの機能を利用できる。 |
| 起動トリガー | 1) claude mcp add コマンドでサーバー追加 2) 設定ファイル(.mcp.json、~/.claude.json)で定義 3) ツール呼び出し時に自動的にMCPサーバーと通信 |
| スコープ | ・ローカル: 現在のプロジェクトのみ ・プロジェクト: チーム共有(.mcp.jsonをGitにコミット) ・ユーザー: 全プロジェクトで利用可能(~/.claude.json) |
2. Hooks(フック)
位置づけ:ライフサイクル制御の基盤機構
| 項目 | 内容 |
|---|---|
| 目的 | Claude Codeのライフサイクル内の特定のポイントでシェルコマンドを自動実行し、決定論的な制御を行う |
| 説明 | LLMの判断に依存せず、特定のアクションを確実に実行させる仕組み。ファイル編集後の自動フォーマット、ツール実行前の検証、通知のカスタマイズ等に使用。Skills、Agents、Pluginsからも参照・利用される基盤的な機構。type: "command"(bashコマンド)とtype: "prompt"(LLM評価)の2種類がある。 |
| 起動トリガー | イベントベースで自動実行。主なイベント: PreToolUse(ツール実行前)、PostToolUse(ツール実行後)、SessionStart(セッション開始時)、SessionEnd(セッション終了時)、Notification(通知時)、PermissionRequest(権限要求時) |
| スコープ | ・プロジェクト: .claude/settings.json ・ユーザー: ~/.claude/settings.json ・エンタープライズ: マネージド設定による制御可能 |
3. Commands(コマンド / スラッシュコマンド)
位置づけ:ユーザー起動型の単機能ショートカット
| 項目 | 内容 |
|---|---|
| 目的 | 頻繁に使用するプロンプトやワークフローを簡単に呼び出すためのショートカット |
| 説明 | Markdownファイルで定義する最もシンプルな拡張単位。YAMLフロントマターで説明や許可ツールを指定可能。$ARGUMENTSで引数を受け取ることができる。現在はSkillsに統合されており、commands/配下のファイルは引き続き動作する。 |
| 起動トリガー | ユーザーが /command-name を入力して明示的に呼び出す(自動呼び出しはされない) |
| スコープ | ・プロジェクト: .claude/commands/ ・ユーザー: ~/.claude/commands/ ・MCPサーバー経由: /mcp__servername__promptname |
4. Skills(スキル)
位置づけ:自動検出可能な拡張指示セット(Commandsの上位互換)
| 項目 | 内容 |
|---|---|
| 目的 | Claudeの能力を拡張し、特定のタスクに対する指示・知識・ワークフローを提供する |
| 説明 | Commandsを拡張した概念。SKILL.mdファイルに記述された指示セットで、テンプレート、スクリプト、参照ドキュメント等の補助ファイルを含むことができる。Commandsとの最大の違いは、Claudeが文脈に応じて自動的にロードできる点。Agent Skills オープンスタンダードに準拠しており、複数のAIツール間で利用可能。Hooksを内包することも可能。 |
| 起動トリガー | 1) Claudeによる自動検出(descriptionがタスク文脈にマッチした場合) 2) ユーザーによる /skill-name での明示的呼び出し |
| スコープ | ・プロジェクト: .claude/skills/ ・ユーザー(個人): ~/.claude/skills/ ・ネストされたディレクトリからの自動検出対応(モノレポ対応) |
5. Agents(サブエージェント)
位置づけ:独立したコンテキストで動作する専門実行単位
| 項目 | 内容 |
|---|---|
| 目的 | 特化したタスク(コードレビュー、デバッグ、リサーチ等)を並列または独立して実行する専門エージェントを作成する |
| 説明 | Skills、Hooks、MCPツールを組み合わせて構成できる、より高度な実行単位。YAMLフロントマター付きMarkdownファイルで定義し、カスタムプロンプト、ツール制限、権限モード、Hooks、Skillsを指定可能。親会話のコンテキストを継承しつつ、独自の設定でタスクを実行する。バックグラウンドでの非同期実行もサポート。 |
| 起動トリガー | 1) /agents コマンドで作成・管理 2) @agent-name でメンション 3) Taskツールによるプログラム的呼び出し 4) バックグラウンド実行(Ctrl+B) |
| スコープ | ・プロジェクト: .claude/agents/(優先度高、チーム共有) ・ユーザー: ~/.claude/agents/(個人、全プロジェクトで利用可能) |
6. Plugin(プラグイン)
位置づけ:複数コンポーネントの配布パッケージ
| 項目 | 内容 |
|---|---|
| 目的 | Skills、Agents、Commands、Hooks、MCPサーバーをパッケージ化し、チームやコミュニティ間で配布・共有する |
| 説明 | 上記すべてのコンポーネント(MCP、Hooks、Commands、Skills、Agents)をまとめて配布するための単位。.claude-plugin/plugin.jsonマニフェストを含むディレクトリで構成。バージョン管理、自動インストール、名前空間付きコマンド(/plugin-name:command)をサポート。 |
| 起動トリガー | /plugin コマンドでのインストール・管理。インストール後は含まれるコンポーネントが自動的に利用可能になる。 |
| スコープ | ・ユーザー(デフォルト): 個人利用 ・プロジェクト: チーム共有 ・ローカル: .gitignore対象の個人設定 |
7. Marketplace(マーケットプレイス)
位置づけ:プラグインの集約・配布カタログ
| 項目 | 内容 |
|---|---|
| 目的 | プラグインを集約・配布するためのカタログ。チームやコミュニティへの一元的な提供を実現する |
| 説明 | 複数のPluginを集約して配布するための最上位の配布単位。marketplace.jsonファイルで定義されるプラグインのコレクション。GitHubリポジトリ、ローカルパス、URLなど複数のソースタイプをサポート。バージョン追跡、自動更新機能を備える。 |
| 起動トリガー | /plugin marketplace add owner/repo でマーケットプレイスを登録後、/plugin install plugin-name@marketplace でプラグインをインストール |
| スコープ | ・公式(Anthropic提供): anthropic-agent-skills 等 ・サードパーティ: GitHubリポジトリやカスタムURLで配布 |