MCPサーバを使っていて、起動直後に「サーバがまだ繋がってない」場面の挙動を知りたい人向け
tool search を無効にした環境(Google Cloud経由でClaudeを使う利用経路のVertex AI、つなぎ先の住所ANTHROPIC_BASE_URLを非公式にしている場合、起動時に渡す設定値でENABLE_TOOL_SEARCH=falseを明示した場合のどれか)で、起動直後にまだ接続中のMCPサーバのツールが要る依頼を投げたとき、Claudeが再起動せず接続完了を待つために自動で呼ぶ。自分で叩く道具ではないので、覚えるのは「待ちが入っても固まっていない」と知るため。
Claude Code は起動した瞬間に外部サービスのツールが全部つながっているわけではありません。MCPサーバ(Claudeに外部サービスのツールを差し込む共通の仕組み)は、起動のあとに裏でゆっくりつながっていきます。だから起動直後に「Notionのレシピ管理を読んで」みたいな依頼を投げると、まだそのサーバがつながりきっていないことがあります。
そこで Claude が裏で自動的に呼ぶのが WaitForMcpServers です。つながり待ちのサーバがあるとき、セッションを再起動せずにそのサーバの接続が終わるのを待ってくれます。私が打つコマンドではなく、Claude が「このツールが要るのにまだつながってない」と判断したときだけ勝手に呼ぶ道具です。
噛み砕くと
新しい職場の初日に、社内システムのアカウントがまだ全部は発行されていない状況を思い浮かべてください。出社はできるし、すぐ使える道具もある。でも経理システムだけは申請が処理中で、午前中はまだログインできない。そんな状態です。
このとき「経理システムを使う仕事」を頼まれたら、普通は一度退社して出社し直したりはしません。アカウントが有効になるまで席で待って、つながった瞬間に作業を始めますよね。WaitForMcpServers がやっているのは、まさにこの「席で待つ」役です。
つまり再起動なしの待ち合わせ。それ以上でも以下でもありません。
大事な前提:このツールは「特殊な環境」でしか出てこない
ここが一番つまずきやすいところです。WaitForMcpServers は、どの環境でも見かける道具ではありません。tool search が無効になっている環境のときだけ登場します。
Claude Code の初期状態では tool search が有効です。このとき接続待ちは ToolSearch という別の道具の中で処理されるので、WaitForMcpServers の名前は表に出てきません。逆に言うと、普段の環境でこの名前を探しても見つからないのが正常です。
tool search が無効になるのは、公式ドキュメントによると次の3つの場合です。Google Cloud 経由でClaudeを使う企業向けの利用経路(Vertex AI)を使っているとき、つなぎ先のサーバの住所(ANTHROPIC_BASE_URL)を非公式のものに差し替えているとき、そして起動時に渡す設定値で ENABLE_TOOL_SEARCH=false を明示したときです。
「料理ブログ作業」を例に、実際の流れを見る
料理ブログのレシピを Notion系のサーバで管理している、という前提でいきます。tool search を切った環境を自分で作って、起動直後に依頼を投げると Claude が裏で何をするかを順番に追います。
ステップ1: tool search を切った状態で起動する
普段の環境では WaitForMcpServers は出てこないので、まず登場する環境を用意します。起動時に ENABLE_TOOL_SEARCH=false を頭につけて Claude Code を立ち上げます。
$ ENABLE_TOOL_SEARCH=false claude
これで tool search が切れた状態のセッションになります。MCPサーバのツールは最初から全部読み込まれる構成です。
ステップ2: 起動した直後に、サーバが要る依頼をいきなり投げる
ここがポイントです。立ち上がってすぐ、まだ各サーバが裏でつながり中のタイミングで依頼を出します。
> Notionのレシピ管理から「春の魚料理」タグの下書きを全部読んで、
公開できそうな順に並べて
初日のうちに片付けたい依頼を、サーバの準備が整う前に投げたイメージです。
ステップ3: つながり中なら Claude が WaitForMcpServers を呼ぶ
このとき Notion系のレシピ管理サーバがまだ接続中だと、Claude は「この依頼にはこのサーバのツールが要るのに、まだつながってない」と判断します。そこで再起動せずに WaitForMcpServers を呼んで、接続が終わるのを待ちます。
許可を求めるプロンプトは出ません。Claude が勝手に待ちに入ります。
ステップ4: ここで初心者がやりがちな勘違い
待っている間、画面の反応が一瞬止まったように見えることがあります。これを「固まった」「壊れた」と思って Esc で止めたり再起動したくなる人がいます。でも実際はサーバの接続待ちなだけです。
つながった瞬間にちゃんと先へ進みます。慌てて切らないのが正解。
ステップ5: 接続が終わり次第、依頼がそのまま続行される
サーバの接続が完了すると、Claude はそのまま「春の魚料理」タグの下書きを読みにいって、最初の依頼の続きを実行します。途中で会話が途切れたり、もう一度依頼を入れ直したりする必要はありません。
ステップ6: /mcp で接続状態を確認する習慣をつける
各サーバが今つながっているか、いくつツールを持っているかは /mcp パネルで確認できます。接続済みのサーバの横にツール数が表示されます。
> /mcp
「依頼が進まないな」と感じたとき、まずここを見れば接続中なのか接続失敗なのかが分かります。私はこれを起動直後のクセにしておくと安心だと思っています。
つまり WaitForMcpServers は何をしてくれるのか
- やってくれる:接続中のMCPサーバがあるとき、再起動せずにその接続完了を待ってから依頼を続ける
- やってくれない:接続に失敗したサーバを直すことはしない。あくまで「つながりつつあるもの」を待つだけ
- 意味が薄い場面:tool search が有効な普段の環境。このときは ToolSearch が待ちをこなすので、この道具は登場しない
使いどころ3シナリオ(具体題材で再現)
シナリオ1: 料理ブログの朝イチ作業で、Notion系サーバが要る依頼を即投げたとき
料理ブログを毎朝更新していて、起動して数秒でレシピ管理サーバに下書きを取りにいく依頼を投げるとします。サーバはまだ接続中。ここで Claude が WaitForMcpServers を呼んで数秒待ち、つながった瞬間に下書きを読み込んで作業を始めます。私が「もう少し待ってから依頼しよう」と気を遣う必要がなくなる、という効き方です。
シナリオ2: Vertex AI 経由で社内のClaude Codeを使っている開発チーム
Google Cloud 経由でClaudeを使う利用経路(Vertex AI)では、tool search が初期状態で無効です。つまりこのチームでは普段から WaitForMcpServers が登場し得る環境です。社内のレシピ用サーバや在庫管理サーバを複数つないでいて、起動直後にそのうちのどれかを使う依頼が飛ぶと、Claude が必要なサーバだけ待ちにいきます。チームのメンバーがツール名を見て「これ何?」とならないよう、こういう道具があると知っておくと混乱しません。
シナリオ3: ENABLE_TOOL_SEARCH=false をあえて指定して全ツールを最初から載せたいとき
家計簿アプリの開発で、つないでいるMCPサーバが少なく、毎回同じツールを使うとします。この場合 tool search を切って全ツールを最初から読み込ませる選び方もあります。ENABLE_TOOL_SEARCH=false で起動するとこの構成になり、接続待ちは WaitForMcpServers が担当します。ただしサーバを大量につないでいると、全ツールを最初から読み込むぶん会話の容量を食う点には注意がいります。
初心者が踏みやすい落とし穴
- 普段の環境で名前を探しても見つからない。tool search が有効な初期状態では ToolSearch が待ちを内包するので、この名前は出てこない。「無い=壊れている」ではない
- 許可なしで勝手に待つので、起動直後の依頼が固まったように見える。反応が止まって見えても接続待ちなだけのことがある。慌てて止めず
/mcpで状態を見る - 待てるのは「接続中」のサーバだけ。接続に失敗したサーバはいくら待ってもつながらない。HTTP/SSE型のサーバは最大5回まで自動で再接続を試みるが、stdio型は自動再接続なしなので
/mcpから手動でやり直す - 「起動時に必ずつないでおきたい」なら別の手段がある。設定で
alwaysLoad: trueを付けると起動時に接続を待つが、そのぶん起動が最大5秒止まる。常時待ちのこの道具とは役割が違う ENABLE_TOOL_SEARCH=falseは容量と引き換え。tool search を切ると全MCPツールが最初から読み込まれる。サーバが多いと会話の容量(コンテキスト)を圧迫するので、切る判断はサーバ数とセットで考える- 自分で呼ぶ道具ではない。ユーザーが直接これを叩く手段は公式に書かれていない。Claude が必要と判断したときだけ自動で動く
書き方
(ユーザーが直接叩く道具ではない。必要なMCPサーバが接続中のとき Claude が自動で呼ぶ)
やってみるとこうなる
入力
ENABLE_TOOL_SEARCH=false claude で起動した直後、まだ接続中のNotion系レシピ管理サーバのツールが要る依頼を投げる
出力例
Claude が WaitForMcpServers を呼び、そのサーバの接続が終わるまで待ってから、依頼をそのまま続行する(許可を求めるプロンプトは出ない/セッション再起動は不要)
このページに出てきた言葉
- MCPサーバ
- Claudeに外部サービス(NotionやGitHubなど)のツールを差し込むための共通規格(MCP)で作られた窓口。Claude Code 起動後に裏でつながりにいく
- tool search
- MCPのツールを最初から全部読み込まず、必要になったときだけ探して読み込む仕組み。Claude Code では初期状態で有効
- ToolSearch
- tool search が有効なときに必要なツールを探して読み込む道具。接続待ちもこの中でこなすため、有効な環境では <code>WaitForMcpServers</code> が表に出ない
- Vertex AI
- Google Cloud 経由でClaudeを使う企業向けの利用経路。tool search が初期状態で無効なので、この道具が登場し得る
- ENABLE_TOOL_SEARCH
- tool search を効かせるかどうかを決める、起動時に渡す設定値。<code>false</code> にすると tool search が切れ、MCPのツールが最初から全部読み込まれる
- /mcp
- 設定済みのMCPサーバの接続状態と、各サーバが持つツールの数を一覧で確認できるパネルを開くコマンド