diff --git a/src/services/mcp/McpHub.ts b/src/services/mcp/McpHub.ts index 68f4f6aba2..cae2bf3c85 100644 --- a/src/services/mcp/McpHub.ts +++ b/src/services/mcp/McpHub.ts @@ -598,13 +598,23 @@ export class McpHub { } await this.notifyWebviewOfServerChanges() } + + transport.onclose = async () => { + const connection = this.findConnection(name, source) + if (connection) { + connection.server.status = "disconnected" + } + await this.notifyWebviewOfServerChanges() + } } else { - // Correctly placed "unsupported type" else block // Should not happen if validateServerConfig is correct throw new Error(`Unsupported MCP server type: ${(configInjected as any).type}`) } - // transport.start assignment moved after all type-specific initializations - transport.start = async () => {} // No-op now, .connect() won't fail + + // Only override transport.start for stdio transports that have already been started + if (configInjected.type === "stdio") { + transport.start = async () => {} + } const connection: McpConnection = { server: {