From 477651e5d53748d50cf46286d2b3ea904b6a304d Mon Sep 17 00:00:00 2001 From: Chaiyapruek Muangsiri Date: Fri, 1 Aug 2025 09:03:52 +0800 Subject: [PATCH 1/2] fix connected servers status not in sync when edit mcp json --- web-app/src/hooks/useMCPServers.ts | 4 ++-- web-app/src/routes/settings/mcp-servers.tsx | 19 ++++++++++++------- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/web-app/src/hooks/useMCPServers.ts b/web-app/src/hooks/useMCPServers.ts index 72cd4d0dd..6df4070fe 100644 --- a/web-app/src/hooks/useMCPServers.ts +++ b/web-app/src/hooks/useMCPServers.ts @@ -25,8 +25,8 @@ type MCPServerStoreState = { editServer: (key: string, config: MCPServerConfig) => void deleteServer: (key: string) => void setServers: (servers: MCPServers) => void - syncServers: () => void - syncServersAndRestart: () => void + syncServers: () => Promise + syncServersAndRestart: () => Promise } export const useMCPServers = create()((set, get) => ({ diff --git a/web-app/src/routes/settings/mcp-servers.tsx b/web-app/src/routes/settings/mcp-servers.tsx index dfe51e59b..995070d02 100644 --- a/web-app/src/routes/settings/mcp-servers.tsx +++ b/web-app/src/routes/settings/mcp-servers.tsx @@ -84,7 +84,7 @@ function MCPServers() { const handleSaveServer = async (name: string, config: MCPServerConfig) => { try { - await toggleServer(name, false) + toggleServer(name, false) } catch (error) { console.error('Error deactivating server:', error) } @@ -102,7 +102,7 @@ function MCPServers() { } syncServers() - await toggleServer(name, true) + toggleServer(name, true) } const handleEdit = (serverKey: string) => { @@ -147,25 +147,30 @@ function MCPServers() { ) => { if (jsonServerName) { try { - await toggleServer(jsonServerName, false) + toggleServer(jsonServerName, false) } catch (error) { console.error('Error deactivating server:', error) } // Save single server editServer(jsonServerName, data as MCPServerConfig) - syncServers() - toggleServer(jsonServerName, true) + toggleServer(jsonServerName, (data as MCPServerConfig).active || false) } else { // Save all servers // Clear existing servers first - Object.keys(mcpServers).forEach((key) => { - deleteServer(key) + Object.keys(mcpServers).forEach((serverKey) => { + try { + toggleServer(serverKey, false) + deleteServer(serverKey) + } catch (error) { + console.error('Error deactivating server:', error) + } }) // Add all servers from the JSON Object.entries(data as Record).forEach( ([key, config]) => { addServer(key, config) + toggleServer(key, config.active || false) } ) } From da0cf10f911bc27985aa25a3ae58888d85b5632d Mon Sep 17 00:00:00 2001 From: Chaiyapruek Muangsiri Date: Tue, 5 Aug 2025 07:31:11 +0800 Subject: [PATCH 2/2] remove unnecessary try catch block --- web-app/src/routes/settings/mcp-servers.tsx | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/web-app/src/routes/settings/mcp-servers.tsx b/web-app/src/routes/settings/mcp-servers.tsx index 995070d02..2cbf53015 100644 --- a/web-app/src/routes/settings/mcp-servers.tsx +++ b/web-app/src/routes/settings/mcp-servers.tsx @@ -83,11 +83,7 @@ function MCPServers() { } const handleSaveServer = async (name: string, config: MCPServerConfig) => { - try { - toggleServer(name, false) - } catch (error) { - console.error('Error deactivating server:', error) - } + toggleServer(name, false) if (editingKey) { // If server name changed, delete old one and add new one if (editingKey !== name) { @@ -158,12 +154,8 @@ function MCPServers() { // Save all servers // Clear existing servers first Object.keys(mcpServers).forEach((serverKey) => { - try { - toggleServer(serverKey, false) - deleteServer(serverKey) - } catch (error) { - console.error('Error deactivating server:', error) - } + toggleServer(serverKey, false) + deleteServer(serverKey) }) // Add all servers from the JSON