Claude CodeのMCPツールを使っていると、処理が終わるまで端末が固まったように見えることがあります。
2026年11月6日公開のv2.1.319で、MCPサーバーがツール呼び出しをタスクとして返した場合、Claude Codeの端末側で自動的にバックグラウンドへ移せるようになりました。長い処理を待つために、こちらから何度も状態を確認する必要がありません。
MCPの処理が端末を塞ぐ
たとえば、MCPサーバーに大量のデータを検索させる処理を考えます。以前の感覚では、ツール呼び出しが返るまで次の入力を待つことになります。
あなた: MCPで大きな検索を実行して
Claude Code: ツールの完了を待っています...
処理が数秒なら気になりません。しかし、外部サービスの集計やファイル生成が長くなると、端末を見続けることになります。無人処理では、さらに「終わったか」を別の仕組みで確認したくなります。
v2.1.319ではタスクをすぐ裏へ回せる
v2.1.319では、MCPサーバーがツール呼び出しをタスクとして実行すると、Claude Codeがその処理をすぐバックグラウンドへ移します。ターミナルには処理を開始したことが示され、完了したときに結果が戻ります。
MCP tool call
↓
MCP taskとして開始
↓
端末の処理を塞がずに実行
↓
完了時に結果を通知
ここが重要です。単に「別プロセスで実行する」だけではなく、完了時にClaude Codeへ結果を返すところまでが一つの流れになっています。自分で一定間隔のポーリングを組むより、処理の完了をイベントとして受け取る設計にできます。
待機動作へ戻す設定もある
すべての処理をバックグラウンドにしたいとは限りません。次の処理が直前のMCP結果に強く依存する場合は、その場で待った方が読みやすいこともあります。
CLAUDE_CODE_DISABLE_MCP_TASK_BACKGROUND=1 claude
この環境変数を指定すると、MCPタスクをツール呼び出しの中で待つ動作に戻せます。バックグラウンド化を無効にする設定なので、長い処理では端末が待機したままになります。
設定を使うかどうかは、処理の性質で決めれば大丈夫です。独立した集計や生成はバックグラウンド、直後の判断に必須な小さな検索は待機、と分けると運用しやすくなります。
無人ループでポーリングしない
無人実行では、処理が終わったかを確認するためにログを何度も読みたくなります。ですが、MCPタスクの完了通知を受け取れるなら、短い間隔で確認するポーリングは不要です。
ポーリングを入れると、処理が終わっていない時間にも呼び出しが増えます。ログも増えますし、途中結果を完了結果だと誤認する危険もあります。開始、完了、失敗の3つを記録する方が安全です。
もちろん、MCPサーバーがタスクとして返さない処理まで自動で非同期になるわけではありません。v2.1.319の変更対象は、MCPサーバーがタスクとして実行したツール呼び出しです。この境界は確認しておきましょう。
まとめ
Claude Code v2.1.319では、MCPタスクを端末上ですぐバックグラウンドへ移し、完了時に結果を知らせる流れが追加されました。
長いMCP処理を待つために端末へ張り付く必要が減ります。待機動作へ戻したい場合は、CLAUDE_CODE_DISABLE_MCP_TASK_BACKGROUNDを使えます。
無人実行では、何でもポーリングするのではなく、完了通知を受け取る設計に寄せていきましょう。こういう地味な変更が、実際の運用では効きます。

コメント