From ce1533001654b8deaa4a4b140649ec3589196a7a Mon Sep 17 00:00:00 2001 From: Junsen Huang <951434130@qq.com> Date: Sat, 30 Aug 2025 17:37:30 +0800 Subject: [PATCH] fix(server-context): fix server edite error (#325) --- frontend/src/contexts/ServerContext.tsx | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/frontend/src/contexts/ServerContext.tsx b/frontend/src/contexts/ServerContext.tsx index 9eb053f..e05bcfe 100644 --- a/frontend/src/contexts/ServerContext.tsx +++ b/frontend/src/contexts/ServerContext.tsx @@ -265,18 +265,31 @@ export const ServerProvider: React.FC<{ children: React.ReactNode }> = ({ childr const handleServerEdit = useCallback(async (server: Server) => { try { - // Fetch server config from the dedicated server config endpoint - const serverConfigData: ApiResponse = await apiGet(`/servers/${server.name}`); + // Fetch settings to get the full server config before editing + const settingsData: ApiResponse<{ mcpServers: Record }> = + await apiGet('/settings'); - if (serverConfigData && serverConfigData.success && serverConfigData.data) { - return serverConfigData.data; + if ( + settingsData && + settingsData.success && + settingsData.data && + settingsData.data.mcpServers && + settingsData.data.mcpServers[server.name] + ) { + const serverConfig = settingsData.data.mcpServers[server.name]; + return { + name: server.name, + status: server.status, + tools: server.tools || [], + config: serverConfig, + }; } else { - console.error('Failed to get server config:', serverConfigData); + console.error('Failed to get server config from settings:', settingsData); setError(t('server.invalidConfig', { serverName: server.name })); return null; } } catch (err) { - console.error('Error fetching server config:', err); + console.error('Error fetching server settings:', err); setError(err instanceof Error ? err.message : String(err)); return null; }