Claude Code Sub-Agents入門 - 4つのAIエージェントを並列実行してDiscord MCPを作った話
はじめに
最近、Claude CodeにSub-Agents(サブエージェント)という機能があることを知りました。これは特定のタスクに特化したAIアシスタントを作成し、並列で実行できる機能です。
今回はこのSub-Agentsを活用して、Discord APIを操作するMCPサーバーを自作してみました。CursorやClaude DesktopからDiscordを対話式に操作できるようになります。
この記事では以下について解説します:
- Sub-Agentsの概要とSkillsとの違い
- サブエージェントの作成方法
- 実際の開発でSub-Agentsをどう活用したか
- 完成したDiscord MCPの紹介
対象読者・前提条件
対象読者:
- Claude Codeを使っている方
- Sub-Agentsに興味がある方
- MCPサーバーを自作してみたい方
前提条件:
- Claude Code(CLI版)の基本的な使用経験
- PythonまたはTypeScriptの基礎知識
- MCPの概念を知っている(知らなくても大丈夫)
環境
- Claude Code v2.0.1
- Python 3.11+
- FastMCP 2.0.0+
Sub-Agentsとは
Sub-Agentsは、Claude Codeの中で特定のタスクを担当する専門化されたAIアシスタントです。
主な特徴:
- 独立したコンテキスト: 各サブエージェントは独自のコンテキストウィンドウを持つ
- 並列実行: 複数のサブエージェントを同時に実行可能
- ツール制限: エージェントごとに使用できるツールを制限できる
- モデル選択: sonnet、haiku、opusなどモデルを指定可能
Sub-AgentsとSkillsの違い
Claude Codeには「Sub-Agents」と「Skills」という2つの拡張機能があります。似ているようで、目的が異なります。
| 観点 | Sub-Agents | Skills |
|---|---|---|
| 目的 | 特定タスクを別コンテキストで実行 | 知識・手順の提供 |
| コンテキスト | 独立(メインと分離) | 共有(メインに読み込まれる) |
| 並列実行 | ○ 可能 | × 不可 |
| 実行方式 | 別のClaudeインスタンスが動く | 情報としてClaudeに渡される |
| 利用可能範囲 | Claude Codeのみ | Claude Code、Claude.ai、API |
使い分けの指針
Skillsを使うべき場面:
- コーディング規約を守らせたい
- プロジェクト固有のルールを定義したい
- 特定の知識・手順を提供したい
Sub-Agentsを使うべき場面:
- 別コンテキストで調査・作業させたい
- 並列で複数タスクを実行したい
- MCPツールを特定タスクだけに使わせたい
今回のDiscord MCP開発では、技術調査やコードレビューを並列で行いたかったので、Sub-Agentsを選択しました。
作成したSub-Agents
今回の開発用に4つのProject agentsを作成しました。

作成したサブエージェント一覧。User agentsとProject agentsが分けて表示される
1. mcp-expert
MCP(Model Context Protocol)の仕様・実装パターンを調査するエージェント。
---
name: mcp-expert
description: MCPの仕様、実装パターン、ベストプラクティスを調査。MCPサーバー開発時に使用。
tools: Read, Grep, Glob, Bash, WebSearch, WebFetch
model: sonnet
---
FastMCPの最新実装方法や、MCP公式仕様を調べてくれます。
2. discord-api-expert
Discord APIの専門家エージェント。
---
name: discord-api-expert
description: Discord API、discord.py、discord.jsの専門家。Discord連携機能の実装時に使用。
tools: Read, Grep, Glob, Bash, WebSearch, WebFetch
model: sonnet
---
REST API仕様、Rate limiting、Intents設定などDiscord特有の知識を持っています。
3. security-reviewer
セキュリティ観点でのコードレビュー専門エージェント。
---
name: security-reviewer
description: セキュリティ観点でのコードレビュー。トークン管理、認証、脆弱性を確認。
tools: Read, Grep, Glob, Bash
model: sonnet
---
トークンのハードコード、環境変数の使用、入力バリデーションなどをチェックします。
4. test-runner
テスト実行と失敗修正を担当するエージェント。
---
name: test-runner
description: テストの実行と失敗時の修正。コード変更後に使用。
tools: Read, Edit, Bash, Grep, Glob
model: sonnet
---
pytestを実行し、失敗があれば原因を分析して修正してくれます。
サブエージェントの作成方法
/agents コマンド(推奨)
Claude Code内で /agents と入力すると、対話的にサブエージェントを作成・管理できます。

mcp-expertの作成確認画面。Description、Tools、Model、System promptが表示される
入力画面

discord-api-expertの作成画面。日本語でも入力可能
以下の項目を入力します:
- name: エージェント名(英数字とハイフン)
- description: いつ使うかの説明(Claudeがこれを見て判断)
- tools: 使用可能なツール(省略すると全ツール)
- model: 使用するモデル(sonnet、haiku、opus、inherit)
- System prompt: エージェントの役割・振る舞いの定義
作成完了

作成後の確認画面。保存するとすぐに利用可能
sキーまたはEnterで保存すると、すぐに利用可能になります。
Markdownファイルで直接作成
/agentsを使わず、Markdownファイルを直接作成することもできます。
ユーザーレベル(全プロジェクト共通):
~/.claude/agents/agent-name.md
プロジェクトレベル(そのプロジェクトのみ):
.claude/agents/agent-name.md
Discord MCP開発の実践
技術調査(並列実行)
仕様書をClaude Codeに渡すと、まずタスクを整理してくれました。
そして注目すべきは、2つのサブエージェントが並列で技術調査を開始したことです。

mcp-expertとdiscord-api-expertが同時に調査を実行している様子
画面を見ると:
-
Task: FastMCP implementation research— mcp-expertが担当 -
Task: Discord API specifications research— discord-api-expertが担当
2つのTaskが同時に動いています。それぞれが独立したコンテキストでWeb検索やドキュメント調査を行い、結果をメインのClaudeに返しています。
Todoリストも自動で作成され、調査タスクに✅がついていきます:
- ✅ FastMCPの最新実装パターンを調査(mcp-expert)
- ✅ Discord REST API認証・Rate limit仕様を確認(discord-api-expert)
- □ プロジェクト初期化
- □ Discord APIクライアント実装
- ...
この並列実行により、通常なら順番に行う調査が同時に完了し、開発スピードが大幅に向上しました。
各エージェントによるレビュー
実装完了後、4つのサブエージェント全員にリポジトリをレビューしてもらいました。

4つのサブエージェントが順番にレビューを実行。それぞれの完了時間とツール使用回数が表示される
各エージェントの実行結果:
| エージェント | タスク | ツール使用 | トークン | 時間 |
|---|---|---|---|---|
| mcp-expert | MCP実装レビュー | 13回 | 40.3k | 3m 57s |
| discord-api-expert | Discord API統合レビュー | 13回 | 42.8k | 2m 52s |
| security-reviewer | セキュリティレビュー | 17回 | 45.1k | 1m 54s |
| test-runner | テスト実行・分析 | 31回 | 43.2k | 4m 3s |
それぞれが独立したコンテキストで動作し、専門的な観点からレビューしてくれます。
MCP Expert の発見事項:
- ✅ FastMCP 2.0+の適切な使用
- ✅ 非同期設計とエラーハンドリング
- 💡 改善点: 型ヒントの強化、エラーレスポンス形式の統一
Discord API Expert の発見事項:
- ✅ Discord API v10使用
- ✅ レート制限実装、バリデーション充実
- ⚠️ 重要な問題: レート制限処理の競合状態
Security Reviewer の発見事項:
- トークン管理の確認
- 入力バリデーションのチェック
- 情報漏洩リスクの評価
Test Runner の発見事項:
- テストの実行と結果分析
- カバレッジの確認
- 失敗テストの修正提案
このように、1つのプロンプトで4つの専門家に同時にレビューを依頼できるのがSub-Agentsの強みです。
実装〜完成
技術調査とレビューの結果を踏まえて、Claude Codeが実装を進めていきます。

実装完了後の画面。プロジェクト構造と実装済みツールが表示される
最終的に以下の構成で完成しました:
discord-manage-mcp/
├── src/discord_mcp/
│ ├── __init__.py # パッケージ初期化
│ ├── server.py # MCPサーバーエントリポイント
│ ├── tools.py # MCPツール定義
│ ├── discord_client.py # Discord REST APIクライアント
│ ├── models.py # Pydanticデータモデル
│ └── validators.py # 入力バリデーション(セキュリティ対策)
├── tests/
│ ├── test_discord_client.py
│ └── test_tools.py
├── pyproject.toml # プロジェクト設定
├── .env.example # 環境変数テンプレート
└── .gitignore # Git除外設定
完成したDiscord MCP
実装されたツール
Phase 1(基本機能):
| ツール | 説明 |
|---|---|
send_message |
メッセージ送信(Embed対応) |
get_messages |
メッセージ取得 |
list_channels |
チャンネル一覧取得 |
add_reaction |
リアクション追加 |
Phase 2(拡張機能):
| ツール | 説明 |
|---|---|
create_thread |
スレッド作成 |
get_guild_members |
メンバー一覧取得 |
search_messages |
メッセージ検索 |
セキュリティ対策
security-reviewerの指摘を反映して、以下の対策を実装しました:
- Snowflake ID形式のバリデーション
- 入力値の長さ制限・サニタイズ
- Rate limitヘッダーのエラーハンドリング
- エラーメッセージの情報漏洩防止
-
.gitignoreによる認証情報の保護
動作確認
Cursorから実際にDiscord MCPのテストを実行してみました。

全てのテストが成功。チャンネル一覧取得、メッセージ送信、メッセージ取得が正常に動作
テスト結果:
| 機能 | 結果 |
|---|---|
| チャンネル一覧取得 | ✅ 成功(13チャンネル取得) |
| メッセージ送信 | ✅ 成功(mcp-testチャンネルへ送信) |
| メッセージ取得 | ✅ 成功(最新メッセージ確認) |
Cursorを再起動すると、以下のMCPツールが使えるようになります:
-
mcp_discord-mcp_send_message- メッセージ送信 -
mcp_discord-mcp_get_messages- メッセージ取得 -
mcp_discord-mcp_list_channels- チャンネル一覧 -
mcp_discord-mcp_add_reaction- リアクション追加 -
mcp_discord-mcp_create_thread- スレッド作成 -
mcp_discord-mcp_get_guild_members- メンバー一覧 -
mcp_discord-mcp_search_messages- メッセージ検索
使い方
1. セットアップ:
# クローン
git clone https://github.com/danielvo594520/discord-manage-mcp.git
cd discord-manage-mcp
# 依存関係インストール
uv sync
# 環境変数設定
cp .env.example .env
# .envにDISCORD_BOT_TOKENを設定
2. MCP設定(Claude Desktop):
{
"mcpServers": {
"discord-mcp": {
"command": "uv",
"args": ["run", "--directory", "/path/to/discord-manage-mcp", "discord-mcp"],
"env": {
"DISCORD_BOT_TOKEN": "your_bot_token",
"DISCORD_DEFAULT_GUILD_ID": "your_default_guild_id"
}
}
}
}
3. MCP設定(Cursor):
{
"mcpServers": {
"discord-mcp": {
"command": "uv",
"args": ["run", "--directory", "/path/to/discord-manage-mcp", "discord-mcp"],
"env": {
"DISCORD_BOT_TOKEN": "your_bot_token",
"DISCORD_DEFAULT_GUILD_ID": "your_default_guild_id"
}
}
}
}
まとめ
Claude Code Sub-Agentsを使ってDiscord MCPサーバーを自作しました。
Sub-Agentsの活用ポイント
- 並列実行が強力: 技術調査を同時に行うことで開発スピードが向上
- 専門性の分離: mcp-expert、discord-api-expertのように役割を分けることで精度向上
- セキュリティレビューの自動化: security-reviewerで脆弱性を早期発見
- コンテキスト分離: メインの会話を汚さずに調査・作業ができる
Skills との使い分け
- Skills: 知識・ルール・手順の提供(コーディング規約など)
- Sub-Agents: 独立した作業の並列実行(調査、レビュー、テストなど)
両方を組み合わせることで、より効率的な開発ワークフローが構築できます。
今後の展望
- TRPGツール用のMCPサーバー開発にも活用予定
- Slack API専門のサブエージェント(既に作成済み)との連携
Sub-Agentsは、複雑なプロジェクトを効率的に進めるための強力なツールです。ぜひ試してみてください。
参考リンク
使い倒せ、テクノロジー。(MAX OUT TECHNOLOGY)をミッションに掲げる、株式会社リバネスナレッジのチャレンジを共有するブログです。Buld in Publichの精神でオープンに綴ります。 Qiita:qiita.com/organizations/leaveanest
Discussion