Skip to content

サブエージェントがMCPツールを継承できない問題を修正:動的注入されたサーバーも対応

原文(日本語に翻訳)

動的に注入されたサーバーのMCPツールをサブエージェントが継承しない問題を修正

原文(英語)

Fixed subagents not inheriting MCP tools from dynamically-injected servers

概要

MCPサーバーを動的に設定・追加した場合、それらのツールがサブエージェント(Taskエージェントや他のエージェント)に引き継がれないバグが修正されました。親エージェントで利用可能なMCPツールが、サブエージェントでも正しく利用できるようになります。複雑なマルチエージェントワークフローでMCPツールを活用している場合に影響します。

基本的な使い方

問題が発生していた状況(修正前)

# 親エージェントにMCPサーバーを動的に追加
# → サブエージェントはそのMCPツールにアクセスできなかった

親エージェント:
  - filesystem MCPツール ✓ 利用可能
  - database MCPツール ✓ 利用可能

サブエージェント(修正前):
  - filesystem MCPツール ✗ アクセス不可
  - database MCPツール ✗ アクセス不可

修正後の動作

親エージェント:
  - filesystem MCPツール ✓ 利用可能
  - database MCPツール ✓ 利用可能

サブエージェント(修正後):
  - filesystem MCPツール ✓ 正しく継承
  - database MCPツール ✓ 正しく継承

実践例

マルチエージェントワークフローでのMCPツール活用

bash
# settings.json でMCPサーバーを設定
{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "/workspace"]
    },
    "database": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-sqlite", "mydb.sqlite"]
    }
  }
}
# 親エージェントからサブエージェントにタスクを委譲
> Task: filesystemとdatabaseのMCPツールを使ってデータを移行して

# 修正後: サブエージェントもfilesystemとdatabaseのMCPツールにアクセス可能
# 修正前: サブエージェントはMCPツールにアクセスできずタスクが失敗

動的MCP設定との組み合わせ

bash
# claude mcp addで実行時にサーバーを追加
claude mcp add my-custom-server npx my-mcp-server

# その後サブエージェントを使うタスクを実行
> Task: my-custom-serverのツールを使って複数のファイルを並列処理して

# 修正後: 動的に追加したサーバーのツールもサブエージェントに継承される

Claude Agent SDKでのマルチエージェント

python
import anthropic

client = anthropic.Anthropic()

# MCPサーバーを設定したメインエージェント
# サブエージェントへのツール継承が正しく動作するようになった
result = client.beta.messages.create(
    model="claude-opus-4-6",
    max_tokens=4096,
    tools=[
        {
            "type": "computer_20241022",
            "name": "computer",
            "display_width_px": 1024,
            "display_height_px": 768,
        }
    ],
    messages=[{
        "role": "user",
        "content": "サブエージェントを使ってMCPツールでファイルを処理して"
    }],
    betas=["computer-use-2024-10-22"],
)

注意点

  • 動的注入のみ影響: この修正は動的に追加されたMCPサーバーのツール継承に関するものです。静的設定(settings.json)のサーバーは以前から正しく動作していた場合があります
  • 隔離ワークツリーの別修正: 同バージョンで「隔離されたワークツリーで実行されるサブエージェントが自分のワークツリー内のファイルへのRead/Editアクセスを拒否される」問題も修正されています
  • MCP設定の確認: claude mcp list でMCPサーバーの設定状態を確認できます
  • デバッグ方法: サブエージェントのツールアクセスに問題がある場合は /debug コマンドを使用して診断

関連情報