From cf61ae927cc4d37be6f59e0f23d6278cc053fe58 Mon Sep 17 00:00:00 2001 From: lossercode <46584010+lossercode@users.noreply.github.com> Date: Sun, 20 Apr 2025 11:18:34 +0800 Subject: [PATCH] =?UTF-8?q?fix(MCPService):=E4=BF=AE=E5=A4=8DMCP=20server?= =?UTF-8?q?=20=E8=AF=B7=E6=B1=82=E5=A4=B4=E4=B8=8D=E7=94=9F=E6=95=88=20(#5?= =?UTF-8?q?072)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../settings/MCPSettings/McpSettings.tsx | 39 ++++++++----------- 1 file changed, 17 insertions(+), 22 deletions(-) diff --git a/src/renderer/src/pages/settings/MCPSettings/McpSettings.tsx b/src/renderer/src/pages/settings/MCPSettings/McpSettings.tsx index c48dbf48..569a487b 100644 --- a/src/renderer/src/pages/settings/MCPSettings/McpSettings.tsx +++ b/src/renderer/src/pages/settings/MCPSettings/McpSettings.tsx @@ -46,6 +46,21 @@ const PipRegistry: Registry[] = [ type TabKey = 'settings' | 'tools' | 'prompts' | 'resources' +const parseKeyValueString = (str: string): Record => { + const result: Record = {} + str.split('\n').forEach((line) => { + if (line.trim()) { + const [key, ...value] = line.split('=') + const formatValue = value.join('=').trim() + const formatKey = key.trim() + if (formatKey && formatValue) { + result[formatKey] = formatValue + } + } + }) + return result +} + const McpSettings: React.FC = ({ server }) => { const { t } = useTranslation() const { deleteMCPServer, updateMCPServer } = useMCPServers() @@ -211,31 +226,11 @@ const McpSettings: React.FC = ({ server }) => { // set env variables if (values.env) { - const env: Record = {} - values.env.split('\n').forEach((line) => { - if (line.trim()) { - const [key, ...chunks] = line.split('=') - const value = chunks.join('=') - if (key && value) { - env[key.trim()] = value.trim() - } - } - }) - mcpServer.env = env + mcpServer.env = parseKeyValueString(values.env) } if (values.headers) { - const headers: Record = {} - values.headers.split('\n').forEach((line) => { - if (line.trim()) { - const [key, ...chunks] = line.split(':') - const value = chunks.join(':') - if (key && value) { - headers[key.trim()] = value.trim() - } - } - }) - mcpServer.headers = headers + mcpServer.headers = parseKeyValueString(values.headers) } try {