Skip to content

Commit 058aff4

Browse files
fix: when user remove the mcp server, it should also been removed from persona file (#1565)
1 parent e072208 commit 058aff4

File tree

1 file changed

+10
-5
lines changed
  • server/aws-lsp-codewhisperer/src/language-server/agenticChat/tools/mcp

1 file changed

+10
-5
lines changed

server/aws-lsp-codewhisperer/src/language-server/agenticChat/tools/mcp/mcpManager.ts

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -482,24 +482,29 @@ export class McpManager {
482482
throw new Error(`MCP: server '${serverName}' not found`)
483483
}
484484

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+
485488
const client = this.clients.get(serverName)
486489
if (client) {
487490
await client.close()
488491
this.clients.delete(serverName)
489492
}
490493
this.mcpTools = this.mcpTools.filter(t => t.serverName !== serverName)
491-
this.mcpServers.delete(serverName)
492494
this.mcpServerStates.delete(serverName)
493-
this.mcpServerPermissions.delete(serverName)
495+
496+
// Remove from config file first
494497
await this.mutateConfigFile(cfg.__configPath__, json => {
495498
delete json.mcpServers[serverName]
496499
})
497500

501+
// Remove from persona file with the correct remaining server list
498502
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))
502504
}
505+
506+
this.mcpServers.delete(serverName)
507+
this.mcpServerPermissions.delete(serverName)
503508
this.mcpServerPermissions = await loadPersonaPermissions(
504509
this.features.workspace,
505510
this.features.logging,

0 commit comments

Comments
 (0)