From ed9ecd46672c8aa40d6627721ed9e6d74ba9c1bf Mon Sep 17 00:00:00 2001 From: Phantom <59059173+EurFelux@users.noreply.github.com> Date: Sun, 6 Jul 2025 17:34:06 +0800 Subject: [PATCH] fix(MCPSettings): ensure save button only restarts MCP server if it is running (#7869) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit fix(MCPSettings): 修复服务器状态更新逻辑错误 仅在服务器激活时尝试重启,避免不必要的操作 --- .../settings/MCPSettings/McpSettings.tsx | 31 +++++++++++-------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/src/renderer/src/pages/settings/MCPSettings/McpSettings.tsx b/src/renderer/src/pages/settings/MCPSettings/McpSettings.tsx index 3dc423b202..5bc5455180 100644 --- a/src/renderer/src/pages/settings/MCPSettings/McpSettings.tsx +++ b/src/renderer/src/pages/settings/MCPSettings/McpSettings.tsx @@ -280,21 +280,26 @@ const McpSettings: React.FC = () => { mcpServer.headers = parseKeyValueString(values.headers) } - try { - await window.api.mcp.restartServer(mcpServer) - updateMCPServer({ ...mcpServer, isActive: true }) - window.message.success({ content: t('settings.mcp.updateSuccess'), key: 'mcp-update-success' }) - setLoading(false) - setIsFormChanged(false) - } catch (error: any) { + if (server.isActive) { + try { + await window.api.mcp.restartServer(mcpServer) + updateMCPServer({ ...mcpServer, isActive: true }) + window.message.success({ content: t('settings.mcp.updateSuccess'), key: 'mcp-update-success' }) + setIsFormChanged(false) + } catch (error: any) { + updateMCPServer({ ...mcpServer, isActive: false }) + window.modal.error({ + title: t('settings.mcp.updateError'), + content: error.message, + centered: true + }) + } + } else { updateMCPServer({ ...mcpServer, isActive: false }) - window.modal.error({ - title: t('settings.mcp.updateError'), - content: error.message, - centered: true - }) - setLoading(false) + window.message.success({ content: t('settings.mcp.updateSuccess'), key: 'mcp-update-success' }) + setIsFormChanged(false) } + setLoading(false) } catch (error: any) { setLoading(false) console.error('Failed to save MCP server settings:', error)