Claude Media
Protocol instance reuseエラーの原因と対処 — Claude Desktop

Protocol instance reuseエラーの原因と対処 — Claude Desktop

Claude Desktopの「Already connected to a transport」エラーは設定ミスでなく、組み込みMCPサーバーの接続処理にあったレースコンディションが原因でした。

このTipsでできること

Claude Desktopを起動または新しい会話を開始するたびに「Could not connect to MCP server mcp-registry」「Could not connect to MCP server Claude in Chrome」というエラートーストが出て、ログにAlready connected to a transport. Call close() before connecting to a new transport, or use a separate Protocol instance per connection.という文言が残るケースがありました。この記事では、このエラーの原因、claude_desktop_config.json側では直せない理由、そして実際に効いた対処をまとめます。

エラーの内容と発生条件

対象のログは~/Library/Logs/Claude/claude.ai-web.log(macOS)で、次の2行がセットで出ます。

[MCP] Could not connect to MCP server mcp-registry Error: Error invoking remote method
'connect-to-mcp-server': Error: Already connected to a transport. Call close() before
connecting to a new transport, or use a separate Protocol instance per connection.
 
[MCP] Could not connect to MCP server Claude in Chrome Error: Error invoking remote method
'connect-to-mcp-server': Error: Already connected to a transport. Call close() before
connecting to a new transport, or use a separate Protocol instance per connection.

発生条件は2つあります。1つはアプリ起動時、もう1つは新しい会話を開始するたびです。前者はmacOS・Windows双方のClaude Desktop v1.1.3918〜v1.1.4010系で確認され、後者は~/Library/Logs/Claude/main.logに同じサーバーへの接続要求が短時間に重複して記録される形で報告されました。mcp-registryClaude in Chromeという、ユーザーが追加した覚えのない2つの組み込みMCPサーバーが対象になる点が共通しています。issue本文によれば、この事象は少なくとも2026年1月下旬から複数のアプリバージョンにまたがって報告が続いていました。

発生した面はDesktopアプリのみ

報告はすべてClaude DesktopのmacOS版・Windows版に限られます。あるユーザーは「Web版・iOS版は問題なく動く」とコメントしており、同じアカウントでもブラウザー版のclaude.aiやiOSアプリに切り替えれば会話を継続できたと報告されています。Windows環境の一部の報告では、エラートースト自体に加えて、アイドル状態でも1コア分のCPU使用率が高止まりしファンが回り続けるという副次症状も見られました。組み込みMCPサーバーへの接続処理自体がDesktopアプリ内部の実装であるため、この種の症状もDesktop固有のものです。

原因は組み込みサーバー接続処理のレースコンディション

エラー文の「Protocol instance」は、MCP SDKが1つの接続につき1つ持つ内部オブジェクトです。すでに別の接続に使われているProtocol instanceへ、前の接続を閉じずに新しい接続を張ろうとすると、SDK側がこのエラーを返して拒否します。MCP SDK自体のバージョンによって挙動が変わる部分はMCP Inspectorの新旧バージョン互換性でも扱っていますが、今回の事象はSDKのバージョン差ではなく、Claude Desktopアプリ側の接続呼び出し順序に起因します。

Claude Desktopは起動時にFilesystem・mcp-registry・Claude in Chromeという3つのMCPサーバーへほぼ同時に接続を試みます。このうちFilesystemは拡張機能として別経路で接続されるため問題が起きませんが、mcp-registryとClaude in Chromeは組み込みサーバーとして同じタイミングで接続要求が発生し、共有されたProtocol instanceを取り合う形になっていました。これがアプリ起動時に発生する経路です。

新しい会話を開始するたびに出るケースは、根本原因が少し異なります。会話を切り替えるたびにWeb側のレンダラーがmcp-registryへのconnect-to-mcp-serverを呼び出しますが、直前の会話で張った接続を閉じる処理が先に完了していませんでした。前の接続がまだProtocol instanceを握ったまま次の接続要求が来るため、同じ「Already connected to a transport」エラーになります。どちらのケースも「同時に複数の接続要求が来る」「前の接続の後始末が終わる前に次の要求が来る」というタイミング依存の競合状態(レースコンディション)である点は共通です。

設定ファイルの問題ではない

このエラーを見てclaude_desktop_config.jsonを疑いたくなりますが、報告されたケースではいずれも"mcpServers": {}と空の状態でした。mcp-registryとClaude in Chromeはユーザーが設定ファイルに書くMCPサーバーではなく、Claude Desktop自体に組み込まれたサーバーです。設定ファイルを開いて書き換える余地がそもそもありません。

試しても直らなかった対処

Issueのコメント欄では、次の対処を試したが効果がなかったという報告が複数寄せられていました。

  • Claude Desktopの再インストール
  • ~/Library/Application Support/Claude~/Library/Logs/Claude~/.claudeの設定・ログディレクトリを削除しての再起動
  • Claude in Chrome拡張機能を設定から無効化し、claude_desktop_config.jsonchromeExtensionペアリング情報を削除
  • 環境変数にNode.jsのパスを追加
  • 設定ファイルへMCPサーバーを手動で追加

これらはいずれもクライアント側の設定やキャッシュに対する対処です。原因がアプリ内部の接続処理そのもの(レースコンディション)にあったため、設定やキャッシュをどれだけ触っても解消しませんでした。

実際に効いた対処 — Claude Desktopのアップデート

このエラーはClaude Desktop v1.1.4088で修正されています。Anthropicのチームメンバーが該当issueで修正版のリリースを告知し、報告者複数名がアップデート後にエラー解消を確認しました。手元のバージョンが古い場合は、アップデートを確認するか、最新版を入れ直します。

副作用として起きたこと

タブセレクターの表示不具合は、時期が異なる2件の報告に分かれます。1件目は接続エラーが出ていた当時の報告で、エラーが出るたびにCowork・Claude Codeを切り替える上部のタブセレクターも一緒に消えるというものでした。2件目はv1.1.4088へのアップデート後の報告で、connect-to-mcp-serverのエラー自体は解消したものの、Cowork設定画面しか表示されずタブセレクターが見えないというものです。Anthropic側は後者を接続エラーとは別の一時的な描画の不具合として認識し、翌日には解消したことを同じissue内で確認しています。エラーメッセージの修正とタブ表示の問題は、発生時期の異なる別々の不具合として扱われました。

影響の早見表

症状原因側の切り分け対処
起動時にmcp-registry / Claude in Chromeの接続エラーが出る原因側の切り分け組み込みサーバーの起動時接続の競合対処v1.1.4088以降へアップデート
会話を開始するたびに同じエラーが出る原因側の切り分け前の会話の接続クローズ待ちの競合対処v1.1.4088以降へアップデート
ユーザー追加のMCPサーバーで同じエラーが出る原因側の切り分け本issueの対象外(別要因の可能性)対処設定ファイルの記法を見直す
タブセレクターが消える(エラー発生中、またはアップデート直後)原因側の切り分け表示側の一時的な不具合(接続エラーとは別事象)対処再起動、解消しなければ再発報告

よくある質問

自分で追加したMCPサーバーでも同じエラーが出ます。原因は同じですか

このissueで報告された事象は、ユーザーがclaude_desktop_config.jsonに書いていない組み込みサーバー(mcp-registry・Claude in Chrome)に限定されていました。自分で追加したMCPサーバーで同じエラー文言が出る場合は、そのサーバー自身が同じトランスポートへ複数回接続しようとしている可能性があり、原因が別です。サーバー側の実装や、設定ファイルでの重複登録がないかを見直します。設定ファイルの書き方自体はClaude Desktop MCP設定ガイドで扱っています。組み込みサーバーの扱いはクライアントによって異なり、VS CodeとClaude DesktopのMCP Apps対応差も合わせて確認すると、Desktop固有の接続経路を理解する助けになります。

Claude Code CLIでも同種のMCP接続競合は報告されています。複数セッションを同時に開いたときの切断(#39486)はOAuthトークンローテーションが絡む競合が原因で、v2.1.136で修正されています。一方、--resume実行時に同じ「Already connected to a transport」というエラー文言が出るキャッシュ競合(#48260)は、修正の確認がないまま放置closeとなっており、Desktop側のように解決が明言されたわけではありません。

エラーが出ている間、mcp-registryや他のMCPサーバーは使えなくなりますか

Anthropicのチームメンバーが該当issueで説明した内容によれば、エラートーストが出ていてもmcp-registry自体は内部的には機能し続けていました。実害があるのはエラー表示のわずらわしさが中心で、拡張機能経由で接続されるFilesystemなど他のMCPサーバーの動作には影響しません。ただし前述のとおりタブセレクターが消える不具合が別途報告されているため、気になる症状が出た場合はまずアプリを再起動し、解消しなければバージョンを確認します。

アップデートしてもエラーが消えません

v1.1.4088より古いバージョンのままアップデートが完了していない可能性があります。アプリを完全に終了してから再起動し、それでもバージョン表記が更新されていない場合は最新版を入れ直します。それでも同じ文言のエラーが続く場合は、原因が本issueとは別のレースコンディションである可能性があるため、バージョン番号とログの該当箇所を添えて新規に報告するのが早道です。

まとめ — 設定ではなくアプリ側の接続処理が原因だった

Claude DesktopのProtocol instance reuseエラーは、claude_desktop_config.jsonの書き方の問題ではなく、組み込みMCPサーバーへの接続タイミングが重なることで起きていたアプリ内部のレースコンディションでした。再インストールや設定ファイルの見直しでは解消せず、効いた対処はv1.1.4088以降へのアップデートだけでした。手元のエラーが同じ文言・同じ対象サーバー(mcp-registry・Claude in Chrome)であれば、まずバージョンを確認するところから始めます。

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