Просмотр исходного кода

fix: SSE MCP Invocation (#4251)

* only apply transport.start for stdio

* instructions

* formatting
Taylor Wilsdon 7 месяцев назад
Родитель
Сommit
6423fc301c
1 измененных файлов с 13 добавлено и 3 удалено
  1. 13 3
      src/services/mcp/McpHub.ts

+ 13 - 3
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: {