原文(日本語に翻訳)
5分間応答なしでハングするリモートMCPツール呼び出しを修正。無期限にブロックする代わりにエラーで中断されるようになった(CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT で設定変更可能)。
原文(英語)
Fixed remote MCP tool calls that hang with no response for 5 minutes — they now abort with an error instead of blocking indefinitely (override with CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT).
概要
リモートMCP(Model Context Protocol)サーバーへのツール呼び出しが応答しない場合、以前はClaude Codeが無期限にハングし続けていました。この修正により、応答のないリモートMCPツール呼び出しは5分後に自動的にエラーで中断されるようになりました。また、環境変数 CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT でタイムアウト時間をカスタマイズできます。
基本的な使い方
デフォルトでは、リモートMCPツール呼び出しは5分(300秒)でタイムアウトします。タイムアウト時間を変更するには環境変数を設定します:
bash
# タイムアウトをカスタマイズ(秒単位)
export CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT=60 # 1分でタイムアウト
export CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT=600 # 10分でタイムアウト
# 設定後にClaude Codeを起動
claude実践例
低速なMCPサーバーへの対応
応答の遅いリモートMCPサーバーを使用している場合:
bash
# タイムアウトを延長してClaude Codeを起動
CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT=600 claude
# または .env ファイルや shell設定に追加
echo 'export CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT=600' >> ~/.zshrc高速な環境でのタイムアウト短縮
レイテンシの低い環境では、タイムアウトを短くしてより迅速にエラー検知できます:
bash
# 30秒でタイムアウト(高速な環境向け)
CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT=30 claudeMCPサーバーの設定と組み合わせ
settings.json でMCPサーバーを設定しつつ、タイムアウトを調整:
json
{
"mcpServers": {
"my-remote-server": {
"type": "sse",
"url": "https://example.com/mcp/sse"
}
}
}bash
# タイムアウト設定と合わせて使用
CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT=120 claudeCI/CD環境での活用
自動化パイプラインでリモートMCPを使用する場合:
yaml
# .github/workflows/claude.yml
env:
CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT: 60 # CI環境では1分でタイムアウト注意点
- デフォルトのタイムアウトは5分(300秒)です
- タイムアウトが発生すると、エラーメッセージが表示されてClaude Codeは次のアクションに進みます(無限待機にはなりません)
CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT=0や非常に大きな値を設定すると、従来のような無期限待機に近い状態になる可能性があります- この修正はリモートMCPサーバー(SSE/HTTPタイプ)に対して有効です。ローカルのstdioタイプのMCPサーバーには影響しません
- タイムアウト後も、MCPサーバー自体が生きていれば次の呼び出しは正常に機能します