Claude Media
/mcp reconnect allで失敗したMCPサーバーを一括再接続する

/mcp reconnect allで失敗したMCPサーバーを一括再接続する

Claude Code v2.1.284で追加された/mcp reconnect allの使いどころと、サーバー単位の再接続との使い分け、効かないケースをまとめます。

/mcp reconnect allは、接続に失敗したMCPサーバーと認証待ちのMCPサーバーを、1コマンドでまとめて再試行するコマンドです。Claude Code v2.1.284で追加されました。対象は対話ターミナルで、ネットワーク断やVPN切り替えのあとに複数のサーバーが一斉に落ちたときの後始末が短くなります。

この記事では、コマンドの使い方、サーバー単位の再接続との使い分け、一括再接続をかけても直らないケースをまとめます。

/mcp reconnect allは何をするコマンドか

更新履歴にある説明は1行です。対話ターミナルで、接続に失敗した、または認証が必要なMCPサーバーをすべて一度に再試行する、というものです。

以前は/mcpのパネルを開き、失敗したサーバーを1つずつ選んで「Reconnect」を実行する必要がありました。サーバーが5つ落ちていれば5回の操作です。reconnect allはこの繰り返しを1回にまとめます。

/mcp reconnect all

コマンドの書式は、コマンド一覧では次のように載っています。

書式できること
/mcpできること対話式のサーバー一覧を開く
/mcp reconnect <server>できること切断されているサーバー1つを再接続する
/mcp reconnect allできること失敗・認証待ちのサーバーをまとめて再試行する(v2.1.284〜、対話ターミナル)
/mcp enable / /mcp disableできることサーバー名またはallを渡して、接続の有効・無効を切り替える

reconnect allの説明は、コマンド一覧のページにはまだ載っていません。手元のバージョンで使えるかどうかは、claude --versionで確認できます。

失敗したサーバーはまず自動で再接続される

一括再接続に頼る前に、Claude Codeがすでに何を自動でやっているかを押さえておくと、手動操作の出番が見えます。

リモート(HTTPまたはSSE)のサーバーが接続中に落ちると、Claude Codeは指数バックオフで最大5回再接続します。最初の遅延は1秒で、試行のたびに倍になります。5回失敗するとサーバーは「失敗」、再認証が必要なときは「要認証」になります。失敗になった時点でMCP server "<name>" disconnected · open /mcp to reconnectという通知が出ます。

最初の接続の失敗にも再試行があります。HTTP・SSEサーバーが5xxや接続拒否、タイムアウトで失敗した場合は、最大3回まで再試行します。

遅延は1秒、2秒、4秒、8秒、16秒と伸びるので、待ち時間だけを足すと約31秒です。接続を試す時間はこれに加わります。ネットワークが戻った直後に/mcpが「pending」なら、まだ自動再接続の最中なので少し待ちます。「失敗」に変わったのを見てからreconnect allを打つのが、無駄のない順序です。

つまり/mcp reconnect allを使うのは、自動再接続が諦めたあとです。バックオフの仕組み自体はMCPのツール更新と接続断からの自動再接続の仕組みで詳しく扱っています。

一括再接続が向く場面

向くのは、原因が1つで、サーバーが複数まとめて落ちたときです。

  • ノートPCのスリープ復帰やWi-Fiの切り替えで、リモートサーバーが一斉に切れた
  • VPNをつなぎ直したあと、社内向けのHTTPサーバーが失敗のままになっている
  • 認証の有効期限が切れ、複数のサーバーが「要認証」に変わった
  • 一時的な障害から復旧したあと、失敗状態が残ったサーバーをまとめて戻したい

逆に、落ちているサーバーが1つだけなら/mcp reconnect <server>か、パネルからの操作で足ります。

/mcp reconnect my-server

パネルでは、サーバーを選んでメニューから「Reconnect」を選びます。認証が切れたサーバーは同じメニューの「Re-authenticate」でサインインし直します。パネルの操作は1台ずつですが、状態の詳細を見ながら選べます。コマンド形式は、サーバー名が分かっているときに手早く済ませる書き方です。どのサーバーが原因か分かっているときは、全部を再試行する意味は薄くなります。

手順: 状態を見てから一括再接続する

  1. /mcpで各サーバーの状態を確認する。failedや要認証になっているものが対象
  2. /mcp reconnect allを実行する
  3. もう一度/mcpを開き、connectedに戻ったかを確認する
  4. 戻らなかったサーバーだけ、原因を個別に調べる

実行直後は画面の表示だけで結果を判断せず、もう一度/mcpを開いて状態を確かめます。サーバーが多いほど、この確認が効きます。

シェルから確認するなら、次のコマンドが使えます。ただしclaude mcp listは各サーバーの接続を試して状態を表示するコマンドで、再接続そのものではありません。

# 状態の一覧(失敗したサーバーには詳細が付く)
claude mcp list
 
# 1つのサーバーの詳細(Issue: 行に失敗の原因が出る)
claude mcp get my-server

✘ Failed to connectのサーバーには、HTTPステータスやエラーコード、サーバーが返したエラー文が付きます(v2.1.219以降)。認証情報らしい文字列は伏せられます。一括再接続の前に、この詳細が「設定の誤り」を示していないかを見ておくと、無駄打ちを避けられます。

一括再接続では直らないケース

再試行は、原因が一時的なときにだけ効きます。次のケースは、コマンドを何度実行しても同じ結果になりやすいものです。

設定や資格情報が間違っている

環境変数が未設定のまま${VAR}が展開されていない、ヘッダーのトークンに前後の空白や改行が混ざっている、URLが違う。こうした設定の問題は、再接続では解消しません。自動再接続の側でも、認証エラーや「見つからない」エラーは設定変更が必要なため再試行の対象外です。claude mcp listや/mcpが出す警告(空白・変数未設定・同名サーバーの定義衝突)を先に見てください。

Authorizationヘッダーを自分で設定しているサーバーでは、接続時の401や403は「要認証」ではなく「失敗」として扱われます。直すべきなのは設定した資格情報のほうだからです。

stdioサーバーがクラッシュしている

stdioサーバーはローカルプロセスで、Claude Codeは自動再接続しません。プロセスが起動しない原因(コマンドのパス、依存パッケージ、環境変数)が残っていれば、再接続しても同じ理由で失敗します。手動で単体起動して、エラー出力を読むのが近道です。起動待ちの時間切れが疑わしいならMCP接続待機の設定も関係します。

認証待ちは再試行でサインインが完了するわけではない

reconnect allの対象には「認証が必要なサーバー」が含まれます。ただしOAuthのサインインをブラウザで完了させる操作は、更新履歴に説明がありません。トークンの更新が通れば戻ることもあるでしょうが、リフレッシュトークンが拒否されたサーバーは、/mcpのサーバーメニューで「Re-authenticate」を選んでサインインし直す必要があります。実行後も要認証のまま残るサーバーがあれば、その手順に進んでください。

claude.aiコネクターとクラウドセッション

クラウドセッションに渡されたコネクターは、セッション側ではサインインの流れを持ちません。再認証が必要なときは、セッションではなくclaude.aiのコネクター設定で接続し直します。reconnect allはこの用途を想定したコマンドではありません(対象は対話ターミナルと明記されています)。

非対話モードでは使えない

更新履歴は「in the interactive terminal」と書いています。claude -pやAgent SDKのセッションには/mcpのパネルがなく、OAuthの流れも走らせられません。この環境で/mcpを引数なしで実行すると、一覧を開く代わりにサーバー状態のテキスト要約が出ます。reconnect allが非対話モードで動くかどうかは確認が取れていないので、スクリプトからの利用は前提にしないほうが安全です。

非対話モードで認証が必要なサーバーがあると、tool searchが有効なら(既定)Claudeは「そのサーバーのツールは認証するまで使えない」と認識し、サーバー名を挙げて報告できます。サインインは別途、対話ターミナルで済ませます。

cachedサーバーとの関係

以前に使ったリモートサーバーは、cached 2h ago · connects on first useのように、発見キャッシュから読み込まれた状態で表示されることがあります。この場合、実際の接続は最初にツールが呼ばれたときです。サーバーメニューの「Reconnect」は、cached状態のサーバーをその場で接続し、キャッシュエントリを保持します。キャッシュの仕組みはMCP_DISCOVERY_CACHEの解説にまとめています。

対象は「失敗または認証待ち」のサーバーなので、cachedのサーバーは含まれないと考えるのが自然です。ただ、実機で確かめてから頼るのが確実です。

運用メモ: 落ちたら全部つなぎ直す前に確認したいこと

複数のMCPサーバーを常用している環境では、次の順で切り分けると手戻りが少なくなります。

状況最初の一手理由
全リモートサーバーが同時に落ちた最初の一手/mcp reconnect all理由原因が共通(ネットワーク)で一時的な可能性が高い
特定の1台だけ落ちている最初の一手/mcp reconnect <server>理由他のサーバーを触る理由がない
全部落ちて、Failed to connectにHTTP 401最初の一手資格情報の確認理由再接続では認証情報は直らない
stdioサーバーだけ落ちている最初の一手単体でコマンドを実行理由自動再接続の対象外で、原因はローカル側にある
再接続してもfailedが続く最初の一手claude mcp get <name>のIssue行理由サーバーが返したエラー文に原因がある

Claudeに任せる運用なら、CLAUDE.mdに「MCPツールが使えないときは、まず/mcpで状態を確認する。一括で復旧できそうならユーザーに/mcp reconnect allの実行を案内する」と書いておく方法があります。/mcpはスラッシュコマンドなので、Claudeが自分で実行するのではなく、ユーザーが打つ前提の案内文です。MCP全般の設定はClaude Code MCP設定ガイドにまとめています。

よくある質問

一括再接続で有効化していない(disabled)サーバーも動きますか

動きません。無効にしたサーバーは、Claude Codeが接続しないと決めているサーバーです。reconnect allの対象は失敗または認証待ちのサーバーで、無効化は「失敗」でも「認証待ち」でもありません。戻すには/mcp enable <server>で有効にします。無効の記録は~/.claude.jsonにプロジェクトごとに残るので、次のセッションでも無効のままです。

何度実行しても失敗のままです

再試行で直るのは一時的な原因だけです。claude mcp get <name>のIssue行にあるHTTPステータスとエラー文を確認し、設定・資格情報・サーバー側の障害のどれかを切り分けてください。

まとめ

/mcp reconnect allは、自動再接続が諦めたあとに残る失敗・認証待ちサーバーを、1コマンドで再試行するための道具です。原因が共通の一時的な障害には効き、設定ミスや期限切れの資格情報には効きません。使う前に/mcpで状態と失敗理由を見て、使ったあとにもう一度状態を確かめる。この往復が基本の型になります。

この記事を共有:XはてブLinkedIn