File tree Expand file tree Collapse file tree 1 file changed +10
-5
lines changed
server/aws-lsp-codewhisperer/src/language-server/agenticChat/tools/mcp Expand file tree Collapse file tree 1 file changed +10
-5
lines changed Original file line number Diff line number Diff line change @@ -482,24 +482,29 @@ export class McpManager {
482
482
throw new Error ( `MCP: server '${ serverName } ' not found` )
483
483
}
484
484
485
+ // Capture the remaining server keys before deletion for persona file update
486
+ const remainingServer = Array . from ( this . mcpServers . keys ( ) ) . filter ( key => key !== serverName )
487
+
485
488
const client = this . clients . get ( serverName )
486
489
if ( client ) {
487
490
await client . close ( )
488
491
this . clients . delete ( serverName )
489
492
}
490
493
this . mcpTools = this . mcpTools . filter ( t => t . serverName !== serverName )
491
- this . mcpServers . delete ( serverName )
492
494
this . mcpServerStates . delete ( serverName )
493
- this . mcpServerPermissions . delete ( serverName )
495
+
496
+ // Remove from config file first
494
497
await this . mutateConfigFile ( cfg . __configPath__ , json => {
495
498
delete json . mcpServers [ serverName ]
496
499
} )
497
500
501
+ // Remove from persona file with the correct remaining server list
498
502
if ( permission && permission . __configPath__ ) {
499
- await this . mutatePersonaFile ( permission . __configPath__ , p =>
500
- p . removeServer ( serverName , Array . from ( this . mcpServers . keys ( ) ) )
501
- )
503
+ await this . mutatePersonaFile ( permission . __configPath__ , p => p . removeServer ( serverName , remainingServer ) )
502
504
}
505
+
506
+ this . mcpServers . delete ( serverName )
507
+ this . mcpServerPermissions . delete ( serverName )
503
508
this . mcpServerPermissions = await loadPersonaPermissions (
504
509
this . features . workspace ,
505
510
this . features . logging ,
You can’t perform that action at this time.
0 commit comments