fix(MCPSettings): ensure save button only restarts MCP server if it is running (#7869)

fix(MCPSettings): 修复服务器状态更新逻辑错误

仅在服务器激活时尝试重启,避免不必要的操作
This commit is contained in:
Phantom 2025-07-06 17:34:06 +08:00 committed by GitHub
parent 4c81efc5b3
commit ed9ecd4667
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -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)