Subagent launch fails with 'Tool names must be unique' when MCP server is configured
問題の概要
MCP サーバー(特に chrome-devtools)が設定されている状態で、任意のサブエージェント(Task tool)を起動しようとすると、以下のエラーが発生してサブエージェントが起動できません。
API Error: 400 {"type":"error","error":{"type":"invalid_request_error","message":"tools: Tool names must be unique."},"request_id":"req_..."}
環境情報
- Claude Code バージョン: 2.0.30
- OS: macOS (Darwin 24.6.0)
- 設定している MCP サーバー: chrome-devtools, filesystem
再現手順
claude_desktop_config.jsonに MCP サーバーを設定(例: chrome-devtools)
``json``
{
"mcpServers": {
"chrome-devtools": {
"command": "npx",
"args": ["chrome-devtools-mcp@latest"]
}
}
}
- Claude Code を起動
- 任意のサブエージェントを起動しようとする
````
Task tool with subagent_type: rspec-runner, lint-fixer, code-reviewer など
- エラーが発生
期待される動作
MCP サーバーが設定されていても、サブエージェントが正常に起動できるべき
実際の動作
「Tool names must be unique」エラーでサブエージェントの起動に失敗する
原因の推測
MCP サーバーが提供するツール(例: mcp__chrome-devtools__*)と、サブエージェント起動時のツール定義が重複しているため、ツール名の衝突が発生していると思われます。
回避策
現時点では、MCP サーバーを無効化することでサブエージェントを使用可能になることを確認しています。
関連 Issue
- #703 - Slash Command と MCP Server の衝突問題(v0.2.64 で修正済み)
- 本件は類似の問題がサブエージェントでも発生しているケースと思われます
影響範囲
すべてのサブエージェントタイプ(rspec-runner, lint-fixer, code-reviewer, chrome-devtools, temporary-script-runner など)で同様のエラーが発生します。
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗