MCP server that dies after connecting shows "connected" forever and is never reconnected
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 2/5
- 見積もり時間
- 1〜3時間
- 初心者へのやさしさ
- 72/100
- issue の種類
- バグ
- 明瞭さ
- 明確に書かれている
- 活発さ
- 活発
- 技術スタック
- typescript
- 領域
- backend
調査の方向性
src/main/tools/mcp.tsから始め、特にMcpHub.connectOneと、issueで説明されているクライアント状態の処理を確認してください。MCP SDKが接続のクローズをどのように通知するかを確認し、その後、listToolsの後に終了するstdioフィクスチャを追加してください。サーバーの終了後にstatus()がエラーを報告し、refresh()で再接続できれば完了です。
索引モデルが issue の本文から書いたものです。
説明
Found in the 2026-10-07 code review (traced through MCP SDK 1.31.0).
Problem
McpHub.connectOne (src/main/tools/mcp.ts:100-141) never sets client.onclose. When a stdio server crashes or an HTTP session drops, the SDK clears its transport (protocol.js:268) and later calls throw Not connected. state.client stays set, though:
status()reportsconnected.- The tools are still offered to the model, and every call fails.
connectOnereturns early for an unchanged config, so a refresh doesn't reconnect either.
Fix
client.onclose = () => {
if (state.client !== client) return;
state.client = null;
state.tools = [];
state.listed = [];
state.error = 'The server closed the connection.';
this.onToolsChanged();
};
Optionally reconnect on the next refresh. Test: a stdio fixture that exits after listTools → status() reports an error and refresh() reconnects.
- 主要言語
- TypeScript
- スター
- 2
- フォーク
- 2
- 平均マージ
- 5時間 52分
- マージ済み PR(30日)
- 18
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートなし
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
PierrunoYT/patch のほかの issue
-
enhancement priority: low security severity: low
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
PierrunoYT/patch#208 ·
メンテナーはふだん 1 日以内に返信
-
enhancement platform: windows priority: low severity: low
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
PierrunoYT/patch#198 ·
メンテナーはふだん 1 日以内に返信
-
bug priority: low severity: low
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
PierrunoYT/patch#190 ·
メンテナーはふだん 1 日以内に返信
-
Unbounded waits: revokeProjectGrant has no timeout, and timed-out browser waiters are never removedオープンbug priority: low severity: low
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
PierrunoYT/patch#188 ·
メンテナーはふだん 1 日以内に返信
-
bug priority: medium severity: low
難易度 2/5 1〜3時間 初心者へのやさしさ 85/100
PierrunoYT/patch#179 ·
メンテナーはふだん 1 日以内に返信
PierrunoYT/patch の issue をすべて見る
似ている issue
-
Tenant
難易度 2/5 1〜3時間 初心者へのやさしさ 66/100
MTES-MCT/Dossier-Facile-Frontend#2061 ·
メンテナーはふだん 1 日以内に返信
-
area:frontend
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
interledger/publisher-tools#905 ·
メンテナーはふだん 1 日以内に返信
-
Add: Cbeebies PL SDオープンapproved check:passed streams:add
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
iptv-org/iptv#54525 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
DB-plane provider_chat_options.* is accepted by config set but never merged into the loaded config対応中かも このイシューにリンクされたプルリクエストがオープン中、またはマージ済みです。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
メンテナーはふだん 1 日以内に返信
-
area:web
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
praetorianer777/GoTome#178 ·
メンテナーはふだん 1 日以内に返信