原文(日本語に翻訳)
SSE/HTTPトランスポートでサーバー接続がレスポンスの途中で切断された際に、MCPツール呼び出しが無限にハングする問題を修正しました。
原文(英語)
Fixed MCP tool calls hanging indefinitely when the server connection drops mid-response on SSE/HTTP transports.
概要
Claude Code v2.1.110では、MCP(Model Context Protocol)サーバーとSSE(Server-Sent Events)またはHTTPトランスポートで通信中に、レスポンス受信の途中で接続が切断された場合にツール呼び出しが無限にハングしてしまう問題が修正されました。この問題が発生すると、Claude Codeが応答不能になりユーザーが強制終了するしかない状況になっていましたが、今回の修正により接続切断が適切に検出されエラーとして処理されるようになりました。
基本的な使い方
この修正はバグフィックスのため、特別な操作は不要です。v2.1.110以降にアップデートするだけで、MCPサーバーとの通信がより安定するようになります。
bash
# Claude Code を最新バージョンに更新
npm update -g @anthropic-ai/claude-code
# バージョン確認
claude --version実践例
ユースケース1: リモートMCPサーバーへの接続
ネットワークの不安定な環境でリモートMCPサーバーに接続する場合、以前は接続切断時にハングしていましたが、今回の修正後は適切なエラーメッセージが表示されます。
json
// .claude/settings.json の MCP 設定例(SSEトランスポート)
{
"mcpServers": {
"remote-tools": {
"url": "https://your-mcp-server.example.com/sse",
"transport": "sse"
}
}
}// 修正前の動作
Claude: [ツールを実行中... ← 無限にハング]
// 修正後の動作
Claude: MCPサーバーとの接続が切断されました。再試行してください。
エラー: Connection dropped mid-response (SSE transport)ユースケース2: HTTPトランスポートでのツール実行
json
// HTTPトランスポートを使用するMCPサーバー設定
{
"mcpServers": {
"api-tools": {
"url": "https://api.example.com/mcp",
"transport": "http"
}
}
}接続が途中で切れた場合、v2.1.110からはタイムアウトとエラーが適切に処理されます。
ユースケース3: 接続問題のトラブルシューティング
bash
# MCPサーバーの接続状態を確認
claude mcp list
# 特定のMCPサーバーへの接続をテスト
claude mcp test remote-tools
# 詳細なデバッグログを有効にして接続問題を調査
CLAUDE_DEBUG=mcp claudeユースケース4: タイムアウト設定のカスタマイズ
json
// 接続タイムアウトを設定してより早く失敗を検出
{
"mcpServers": {
"remote-tools": {
"url": "https://your-mcp-server.example.com/sse",
"transport": "sse",
"timeout": 30000
}
}
}注意点
- 影響を受けるトランスポート — この修正はSSEとHTTPトランスポートに適用されます。stdioトランスポートは別の接続管理を使用しており、この問題の影響を受けていませんでした。
- アップデート推奨 — MCPをリモートサーバーで使用している場合は、v2.1.110へのアップデートを強く推奨します。
- ネットワーク品質の確認 — 接続切断が頻繁に起きる場合は、ネットワーク環境の確認も合わせて実施してください。
- MCPサーバー側の確認 — サーバー側でも接続管理が適切に実装されているか確認することで、より安定した動作が期待できます。