@@ -319,6 +319,13 @@ export class AINativeBrowserContribution
319319 }
320320 }
321321
322+ onReconnect ( ) : void {
323+ const { supportsMCP } = this . aiNativeConfigService . capabilities ;
324+ if ( supportsMCP ) {
325+ this . initMCPServers ( ) ;
326+ }
327+ }
328+
322329 onDidStart ( ) {
323330 runWhenIdle ( ( ) => {
324331 const { supportsRenameSuggestions, supportsInlineChat, supportsMCP } = this . aiNativeConfigService . capabilities ;
@@ -339,26 +346,28 @@ export class AINativeBrowserContribution
339346 }
340347
341348 if ( supportsMCP ) {
342- // 从 preferences 获取并初始化外部 MCP Servers
343- const mcpServers = this . preferenceService . getValid < MCPServerDescription [ ] > (
344- AINativeSettingSectionsId . MCPServers ,
345- ) ;
349+ this . initMCPServers ( ) ;
350+ }
351+ } ) ;
352+ }
346353
347- // 查找内置 MCP Server 的配置
348- const builtinServer = mcpServers ?. find ( ( server ) => server . name === BUILTIN_MCP_SERVER_NAME ) ;
354+ private initMCPServers ( ) {
355+ // 从 preferences 获取并初始化外部 MCP Servers
356+ const mcpServers = this . preferenceService . getValid < MCPServerDescription [ ] > ( AINativeSettingSectionsId . MCPServers ) ;
349357
350- // 总是初始化内置服务器,根据配置决定是否启用
351- this . sumiMCPServerBackendProxy . initBuiltinMCPServer ( builtinServer ?. enabled ?? true ) ;
358+ // 查找内置 MCP Server 的配置
359+ const builtinServer = mcpServers ?. find ( ( server ) => server . name === BUILTIN_MCP_SERVER_NAME ) ;
352360
353- // 初始化其他外部 MCP Servers
354- if ( mcpServers && mcpServers . length > 0 ) {
355- const externalServers = mcpServers . filter ( ( server ) => server . name !== BUILTIN_MCP_SERVER_NAME ) ;
356- if ( externalServers . length > 0 ) {
357- this . sumiMCPServerBackendProxy . initExternalMCPServers ( externalServers ) ;
358- }
359- }
361+ // 总是初始化内置服务器,根据配置决定是否启用
362+ this . sumiMCPServerBackendProxy . initBuiltinMCPServer ( builtinServer ?. enabled ?? true ) ;
363+
364+ // 初始化其他外部 MCP Servers
365+ if ( mcpServers && mcpServers . length > 0 ) {
366+ const externalServers = mcpServers . filter ( ( server ) => server . name !== BUILTIN_MCP_SERVER_NAME ) ;
367+ if ( externalServers . length > 0 ) {
368+ this . sumiMCPServerBackendProxy . initExternalMCPServers ( externalServers ) ;
360369 }
361- } ) ;
370+ }
362371 }
363372
364373 private registerFeature ( ) {
0 commit comments