サブエージェントからSDK提供MCPツールへのアクセス修正
原文(日本語に翻訳)
サブエージェントが、共有アプリケーション状態に同期されていないため、SDK提供のMCPツールにアクセスできなかった問題を修正しました。
原文(英語)
Fixed subagents not being able to access SDK-provided MCP tools because they were not synced to the shared application state
概要
Task ツールで起動されるサブエージェントが、Anthropic SDKを通じて提供されるMCPツールにアクセスできなかった問題が修正されました。この問題は、MCPツールの情報が共有アプリケーション状態に同期されていなかったことが原因でした。修正により、サブエージェントもメインエージェントと同じMCPツールを使用できるようになりました。
基本的な使い方
サブエージェントでのMCPツール利用
# MCPサーバーを設定
claude mcp add @modelcontextprotocol/server-postgres
# メインセッション
claude
# サブエージェントを起動してMCPツールを使用
> "Taskツールで別のエージェントに、データベースから最新の100件を取得させて"
# 以前の問題:
# - サブエージェントがMCPツール(query_database)を認識できない
# - エラー: "Tool not available"
# 修正後:
# - サブエージェントもMCPツールにアクセス可能
# - 正常にデータベースクエリを実行実践例
データベース操作のサブエージェントへの委譲
# PostgreSQL MCPサーバー設定
~/.claude/settings.json:
{
"mcpServers": {
"postgres": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-postgres"],
"env": {
"DATABASE_URL": "postgresql://user:pass@localhost/mydb"
}
}
}
}
# メインセッション
claude
> "データ分析エージェントを起動して、売上データを集計させて"
# Task ツールでサブエージェント起動
# サブエージェント内で:
> - query_database ツールを使用して売上データ取得
> - データ集計と分析
> - 結果をメインエージェントに返す
# 修正前: サブエージェントはquery_databaseツールにアクセス不可
# 修正後: 正常にMCPツールを使用して分析を完了ファイルシステム操作の並列実行
# ファイルシステムMCPサーバー設定
claude mcp add @modelcontextprotocol/server-filesystem
# 複数のサブエージェントで並列処理
claude
> "3つのエージェントを並列起動して、それぞれ異なるディレクトリのファイルを処理して"
# サブエージェント1: /src ディレクトリ
# サブエージェント2: /tests ディレクトリ
# サブエージェント3: /docs ディレクトリ
# 各サブエージェントがファイルシステムMCPツールを使用
# 以前: MCPツールが利用不可、処理失敗
# 現在: すべてのサブエージェントが正常に動作Web検索の複数タスク分散
# Brave Search MCPサーバー設定
claude mcp add @modelcontextprotocol/server-brave-search
# メインセッション
claude
> "5つのトピックについて並列で調査して。それぞれ専用エージェントを立てて"
# サブエージェント × 5 が並列実行
# 各エージェントがBrave Search MCPツールを使用
# トピック1: AI最新動向 → search_web("AI trends 2026")
# トピック2: React新機能 → search_web("React 19 features")
# トピック3: Python3.13 → search_web("Python 3.13 changelog")
# トピック4: セキュリティ → search_web("security best practices")
# トピック5: DevOps → search_web("DevOps tools 2026")
# 修正前: サブエージェントはMCP search_webツールを使えず、タスク失敗
# 修正後: すべてのサブエージェントが並列で検索実行、結果を統合カスタムMCPツールのサブエージェント利用
# カスタムMCPサーバー(社内API統合)
~/.claude/settings.json:
{
"mcpServers": {
"internal-api": {
"command": "node",
"args": ["/path/to/internal-mcp-server.js"],
"env": {
"API_KEY": "secret"
}
}
}
}
# 社内APIを使うツール: get_employee_data, create_ticket など
# メインセッション
claude
> "チケット作成エージェントに、バグレポートを5件作成させて"
# サブエージェント内で create_ticket MCPツールを使用
# 以前: カスタムMCPツールがサブエージェントから見えない
# 現在: 正常にチケット作成完了複雑なワークフローの実現
# 複数のMCPサーバーを組み合わせたワークフロー
# ステップ1: データベースエージェント(PostgreSQL MCP)
> "DBエージェント: ユーザーデータを取得"
# ステップ2: 分析エージェント(Python MCP)
> "分析エージェント: データを集計・分析"
# ステップ3: レポートエージェント(ファイルシステムMCP)
> "レポートエージェント: 分析結果をMarkdownで保存"
# ステップ4: 通知エージェント(Slack MCP)
> "通知エージェント: Slackに結果を投稿"
# すべてのサブエージェントがそれぞれのMCPツールにアクセス可能注意点
共有アプリケーション状態: MCPツールの情報は、メインエージェントとすべてのサブエージェント間で共有されるグローバル状態として管理されます。
ツールの同期タイミング: MCPサーバーが起動されると、ツール情報が自動的に共有状態に同期されます。手動での同期は不要です。
サブエージェントの制限: サブエージェントは親エージェントと同じMCPツールにアクセスできますが、以下の制限があります:
- 独自のMCPサーバーを追加できない
- 親エージェントのMCP設定を変更できない
セキュリティ: MCPツールの権限は、メインエージェントとサブエージェント間で共有されます。機密性の高い操作は注意が必要です。
パフォーマンス: 多数のサブエージェントが同時にMCPツールを使用する場合、MCPサーバーの負荷が高くなる可能性があります。
エラーハンドリング: サブエージェントでMCPツールがエラーになった場合、エラーは親エージェントに伝播されます。
デバッグ: サブエージェントのMCPツール使用をデバッグする場合:
bash# MCP サーバーログを確認 cat ~/.claude/logs/mcp-*.log # または /debug コマンド /debug > "サブエージェントがMCPツールにアクセスできているか確認して"