Claude システムアーキテクチャ全解析
Claude システムにおける MCP、Skills、Subagents、Hooks、Plugins などのコンポーネントの位置づけ、設計意図、連携関係を深く理解する
はじめに
2025年9月、Anthropic は 1,830億ドル の評価額で130億ドルの資金調達を完了し、世界第4位の非公開企業となりました。その看板製品 Claude Code は2月のリリース以来、11.5万 のアクティブ開発者を獲得し、毎週 1.95億行 のコードを処理し、ユーザー数は 300% 増加しています。
さらに興味深いのは、Anthropic CEO の Dario Amodei が明かした事実です:Claude Code のコードの90%は自分自身で書かれている。
なぜそんなことが可能なのか?
AIプログラミングアシスタントが、どうやって「自分で自分を書く」ことができるのか?そのアーキテクチャ設計にはどんな独自性があり、人間の開発者を効率的に補助——さらには代替——できるのか?
The key design principle behind Claude Code is that Claude needs the same tools that programmers use every day. By giving Claude access to the user's computer (via the terminal), it had what it needed to write code like programmers do.
答えは Claude のモジュラーアーキテクチャにあります:MCP がツールを提供し、Skills が使い方を教え、Subagents が並行実行し、Hooks が制御性を確保する——これらのコンポーネントが協調動作することで、Claude は「プログラマーのように働く」能力を獲得しています。
このドキュメントでは、このアーキテクチャの全体像を俯瞰します——各コンポーネントの位置づけ、それらの間の連携関係、そしてクイックスタートの設定例。後続の記事で各コンポーネントの詳細を深掘りします。
全体アーキテクチャ概要
Claude システムはモジュラーアーキテクチャ設計を採用しており、各コンポーネントは機能別に分類され、階層依存ではなく相互補完で動作します:

コアとなる理解:これらのコンポーネントは階層依存ではなく同レベルで相互補完する拡張能力であり、ニーズに応じて自由に組み合わせることができます:
| やりたいこと | 使うもの | 一言での位置づけ |
|---|---|---|
| 外部データソースやサービスに接続 | MCP | Claude に「手足」を装着し、データベース、API、ファイルシステムにアクセス |
| Claude に特定のワークフローを教える | Skills | Claude がある領域で「どうすればいいか」を知るようにする |
| 複雑なタスクを並行処理 | Subagents | 大きなタスクを小さなタスクに分割し、複数の Agent が同時に作業 |
| 繰り返し操作を素早くトリガー | Commands | ワンクリックで頻繁に使うワークフローを起動し、繰り返しの指示を省略 |
| 特定の操作が必ず実行されることを保証 | Hooks | Claude がどう判断しようと、このステップは必ず実行される |
コアランタイム
Agent SDK — ランタイムエンジン
Agent SDK は Claude Agent システム全体のランタイムコアエンジンであり、以下を提供します:
- メインループ (Main Loop):Agent のコアワークループ
- コンテキスト管理:Token バジェット、自動圧縮(使用率92%でトリガー)
- ツールディスパッチ:どのツールを使用するか、どう実行するかを決定
- 権限システム:ツールアクセス権限の制御
Agent のコアワークモードはシンプルなフィードバックループです:
コンテキスト収集 → 操作実行 → 作業検証 → 繰り返しThe agent harness that powers Claude Code (the Claude Code SDK) can power many other types of agents too. To reflect this broader vision, we renamed the Claude Code SDK to the Claude Agent SDK.
Built-in Tools — コアツール
Claude Agent には20以上のコアツールが内蔵されており、3つのカテゴリに分かれています:
| カテゴリ | ツール | 説明 |
|---|---|---|
| 読み取り | Read, Glob, Grep | ファイル読み取り、パターンマッチング、コンテンツ検索 |
| 操作 | Write, Edit, Bash | ファイル書き込み、編集、コマンド実行 |
| ネットワーク | WebSearch, WebFetch | ウェブ検索、ウェブページ取得 |
これらのツールはデフォルトで利用可能であり、追加設定は不要です。Claude はこれらのツールを通じてコンピュータとやり取りし、プログラマーが IDE を使うのと同じように動作します。
設定とコンテキスト
CLAUDE.md — 永続化コンテキスト
新しい会話を始めるたびに、プロジェクトの背景、コーディング規約、アーキテクチャの約束事を繰り返し説明しなければならない……CLAUDE.md はこれらの情報を一度設定すれば自動ロードにしてくれます。
CLAUDE.md はプロジェクトの AI 用 README のようなもの——Claude にこのプロジェクトの背景知識、作業方法、約束事を伝えます。
階層的オーバーライド
Claude は以下の順序で CLAUDE.md をロードし、より具体的なものほど優先度が高くなります:
Enterprise(最低)
↓
User (~/.claude/CLAUDE.md)
↓
Project (./CLAUDE.md)
↓
Module (./src/module/CLAUDE.md)(最高)コンテンツの推奨事項
CLAUDE.md には以下のコア情報を含めるべきです:
| カテゴリ | コンテンツ例 |
|---|---|
| 技術スタック | Next.js 14 + TypeScript, Tailwind CSS |
| ビルドコマンド | npm run dev, npm run build, npm run test |
| コード規約 | 命名規則、Lint ツール設定 |
| プロジェクト構造 | 主要ディレクトリの用途説明 |
キー原則:簡潔に保つこと。CLAUDE.md は毎回の会話でロードされるため、長すぎると貴重な Token を浪費します。
パッケージング・配布
Plugins — インストール可能なユニット
チームの設定が分散し、共有や標準化が難しい。各メンバーが独自の Skills、Commands、Hooks のセットを持っている……どうやって統一管理するのか?
Plugins は Skills + Commands + Subagents + Hooks + MCP をインストール可能なユニットにパッケージ化し、ワンクリック配布とチーム標準化を実現します。
ディレクトリ構造
my-plugin/
├── .claude-plugin/
│ └── plugin.json # プラグインマニフェスト(必須)
├── commands/ # Slash Commands
├── agents/ # Subagents
├── skills/ # Skills
├── hooks/ # Hooks 設定
├── .mcp.json # MCP Server 設定
└── README.md # 説明ドキュメント設定例
// plugin.json
{
"name": "frontend-toolkit",
"version": "1.0.0",
"description": "フロントエンド開発ツールキット",
"author": "Your Team"
}# インストール方法
claude plugin install github:your-org/your-plugin # GitHub から
claude plugin install /path/to/plugin # ローカルから関連リソース
| リソース | 説明 |
|---|---|
| claude-plugins-official | Anthropic 公式プラグインリポジトリ |
| wshobson/agents | ⭐ 24.3k、高品質 Agent テンプレートコレクション |
| Claude Plugin Hub | コミュニティプラグインマーケットプレイス |
| awesome-claude-code | ⭐ 19.3k、厳選 Claude Code リソースリスト |
拡張機能(相互補完モジュール)
Claude システムの拡張機能は、それぞれの役割を担い協調動作する複数の相互補完モジュールで構成されています:
| モジュール | 機能の位置づけ | アクティベーション方法 |
|---|---|---|
| MCP | 外部データやサービスへの接続 (WHAT) | 設定後に利用可能 |
| Skills | 手続き的知識、Claude にやり方を教える (HOW) | 自動マッチング |
| Subagents | 独立コンテキスト、並行タスク委任 | 明示的な呼び出し |
| Commands | 繰り返しワークフロー | 手動 /cmd |
| Hooks | 確定的制御、イベント駆動 | 自動トリガー |
MCP — 外部接続
設計理念
Even the most sophisticated models are constrained by their isolation from data—trapped behind information silos and legacy systems.
従来の方法では、各外部データソースにカスタム統合が必要で、N×M の統合地獄に陥っていました。MCP は標準化されたプロトコルを提供し、一度接続すれば、どこでも利用可能を実現します。
MCP (Model Context Protocol) は AIアプリケーションの USB-C インターフェースとして設計されました:
| 特性 | 説明 |
|---|---|
| オープンスタンダード | 2024年11月発表、2025年12月に Linux Foundation に寄贈 |
| 業界採用 | OpenAI、Microsoft、Google、AWS などが採用 |
| エコシステム規模 | 月間9,700万以上の SDK ダウンロード、数千のコミュニティサーバー |
アーキテクチャパターン
┌─────────────────┐
│ MCP Host │ (Claude Desktop, IDE, AI ツール)
│ (Main Agent) │
└────────┬────────┘
│ 1:N
┌────┴────┬────────┬────────┐
│ Client │ Client │ Client │ (プロトコルクライアント)
└────┬────┴────┬───┴────┬───┘
│ │ │
┌────┴────┐ ┌──┴───┐ ┌─┴────┐
│ Server │ │Server│ │Server│ (特定の機能を公開)
│ GitHub │ │ DB │ │ Slack│
└─────────┘ └──────┘ └──────┘ユースケース:データベース接続、サードパーティサービス統合(GitHub、Slack、Notion)、プライベートAPIアクセス、リアルタイムデータストリーム処理。
設定例
プロジェクトルートに .mcp.json を作成:
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_TOKEN": "${GITHUB_TOKEN}"
}
}
}
}Commands — 手動ワークフロー
Slash Commands は手動トリガーの繰り返しワークフローを提供します。
| 特性 | 説明 |
|---|---|
| トリガー方法 | 手動で /command-name を入力 |
| 保存場所 | .claude/commands/ |
| 用途 | 繰り返しワークフロー、標準化操作 |
例:.claude/commands/review.md を作成
現在の変更についてコードレビューを行ってください。以下に重点を置いてください:
1. コードスタイルと一貫性
2. 潜在的なパフォーマンスの問題
3. セキュリティ脆弱性
4. テストカバレッジその後 /review と入力すればトリガーされます。
Hooks — 確定的制御
Hooks は確定的制御のコアです——特定の操作は必ず実行されなければならず、LLM の判断に依存できません。
| カテゴリ | イベント | トリガータイミング |
|---|---|---|
| ツール | PreToolUse | ツール実行前 |
PostToolUse | ツール正常実行後 | |
PostToolUseFailure | ツール実行失敗後 | |
PermissionRequest | 権限リクエスト時 | |
| セッション | SessionStart | セッション開始時 |
SessionEnd | セッション終了時 | |
Stop | Claude がレスポンスを完了した時 | |
| サブエージェント | SubagentStart | サブエージェント起動時 |
SubagentStop | サブエージェント停止時 | |
| その他 | UserPromptSubmit | ユーザーがプロンプトを送信した後 |
Notification | 通知イベント | |
PreCompact | コンテキスト圧縮前 |
設定例
TypeScript ファイルの自動フォーマット:
{
"hooks": {
"PostToolUse": [
{
"matcher": "Edit|Write",
"hooks": [
{
"type": "command",
"command": "jq -r '.tool_input.file_path' | { read f; [[ $f == *.ts ]] && npx prettier --write \"$f\"; }"
}
]
}
]
}
}実践:自律ループ
Ralph Wiggum は Anthropic 公式プラグインで、Stop hook を利用して自律的なイテレーションループを実現します:
/ralph-loop "TODO API を実装、CRUD とテストを含む" --max-iterations 20動作原理:Stop hook が Claude の終了をインターセプト → 元のプロンプトを再注入 → タスクが完了するか最大イテレーション数に達するまでイテレーションを継続。
適用シナリオ:複数ラウンドのイテレーションが必要なタスク(テストパス、コードリファクタリング)、自動検証手段があるタスク。
Subagents — タスク委任と並行実行
設計理念
単一の Agent が直面する課題:コンテキストウィンドウの制限、並行処理不可、責任の不明確さ。Subagents は Orchestrator-Worker アーキテクチャパターンでこれらの問題を解決します:
メイン Agent (Orchestrator)
├── ユーザーリクエストの分析
├── 計画の策定
├── タスクの分解
└── 専門化されたサブエージェントの生成
↓
┌────────┬────────┬────────┐
│ Sub 1 │ Sub 2 │ Sub 3 │ (Workers - 並行実行)
│ コード │ テスト │ ドキュメント │
└────────┴────────┴────────┘
↓
結果の集約 → メインエージェントが総合出力コア特性
| 特性 | 説明 |
|---|---|
| コンテキスト分離 | 各 Subagent は独立したコンテキストを持ち、汚染を防止 |
| タスク専門化 | カスタムシステムプロンプトで専用の役割を定義 |
| ツール権限制御 | Subagent が使用できるツールを特定のものに制限可能 |
| 並行実行 | 複数の Subagent が同時に動作 |
パフォーマンスデータ:マルチエージェントシステムはシングルエージェントより90.2%高いパフォーマンス、並列化でリサーチ時間を90%削減可能(Token 消費は約15倍だが、複雑なタスクでは価値あり)。
設定例
.claude/agents/ に Markdown ファイルを作成:
---
name: Code Reviewer
description: コードレビュー専門のサブエージェント
tools:
- Read
- Grep
- Glob
---
あなたはシニアコードレビュー専門家です。以下に重点を置いてください:
1. コード品質と保守性
2. 潜在的なバグとエッジケース
3. パフォーマンス最適化の機会
4. セキュリティ脆弱性Skills — 手続き的知識
設計理念
Claude is powerful, but real work requires procedural knowledge and organizational context.
Skills はAIへの再利用可能なワークブック——モジュール化されたナレッジパッケージで、Claude が必要に応じて動的にロードできます。コア設計原則は段階的開示 (Progressive Disclosure) です:
📚 Skills ワークブック
│
├─ 📋 目次 ────────────── 【メタデータ層】起動時にプリロード (~30-50 tokens)
│ name: "weekly-report"
│ description: "標準化された週報を生成"
│
├─ 📖 本文章節 ─────────── 【コアドキュメント層】関連時にロード (~数百-数千 tokens)
│ # Weekly Report Generator
│ ## Instructions
│ 以下の構成で週報を生成...
│
└─ 📎 付録 ────────────── 【参照リソース層】必要時にロード
references/
├── template.xlsx
└── examples/MCP vs Skills:MCP は Claude にツールへのアクセス能力を与え(WHAT)、Skills は Claude にこれらのツールを効果的に使う方法を教えます(HOW)。
コア優位性
| 優位性 | 説明 |
|---|---|
| Token 効率 | メタデータはわずか 30-50 tokens、数十の Skills を同時に有効化可能 |
| 自動アクティベーション | タスクコンテキストに応じて自動マッチング、手動トリガー不要 |
| コンポーザブル | 複数の Skills が自動的に協調動作 |
| ポータブル | Claude.ai、Claude Code、API で一貫した体験 |
設定例
.claude/skills/ にディレクトリを作成:
my-skill/
├── SKILL.md # コア指示(必須)
├── scripts/ # 実行可能スクリプト(任意)
└── references/ # 参考資料(任意)SKILL.md のコア構造:
---
name: code-review # Skill 名
description: コードレビュー、品質とセキュリティのチェック # 簡潔な説明(自動マッチングに使用)
---
# Code Review Skill
## Instructions
[具体的な手順の説明...]
## Output Format
[出力フォーマットの要件...]ポイント:frontmatter の description は自動マッチングに使用されるため、簡潔かつ正確に保ちましょう。
公式参考リンク
設計理念
| リソース | 説明 |
|---|---|
| Building Effective Agents | Agent アーキテクチャの綱領的記事 |
| Building agents with the Claude Agent SDK | Agent SDK エンジニアリング実践 |
| Equipping Agents with Agent Skills | Skills 設計理念 |
| Introducing the Model Context Protocol | MCP 発表公告 |
公式ドキュメント
| リソース | 説明 |
|---|---|
| Skills explained | Skills と他のコンポーネントの比較 |
| Using CLAUDE.md Files | CLAUDE.md 使用ガイド |
| Claude Code Subagents | Subagents 公式ドキュメント |
| Claude Code Hooks | Hooks 公式ドキュメント |
| MCP Documentation | MCP 公式ドキュメント |
| MCP Specification | MCP プロトコル仕様 |
深層分析
| リソース | 説明 |
|---|---|
| Understanding Claude Code's Full Stack | アーキテクチャ図を含む |
| Claude Agent Skills: Deep Dive | Skills 原理の詳細分析 |
| How Claude Code is built | Claude Code 構築の内幕 |
| Claude Skills vs. MCP | Skills と MCP の技術比較 |
さらに読む
Skills のコンセプトと実践をさらに深く理解したい方は、以下をご覧ください:
- Claude Skills とは — Skills コア原理の詳解
- Claude Skills 実戦ガイド — はじめての Skill を作成しよう
- Claude Subagent 完全ガイド — サブエージェントの使い方とカスタマイズ
- GSD 深層解析 — コンテキストエンジニアリングに基づくAIプログラミングシステム
- 私の Claude Code ベストプラクティス — Claude Code の日常的な使用テクニック