From 9428461fb7e152ddb1b7707879feae28cc61a6c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=87=AA=E7=94=B1=E7=9A=84=E4=B8=96=E7=95=8C=E4=BA=BA?= <3196812536@qq.com> Date: Sat, 24 May 2025 23:17:15 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20ensure=20args=20are=20an=20array=20in=20?= =?UTF-8?q?AddMcpServerModal=20and=20MCPService=20com=E2=80=A6=20(#6413)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit fix: ensure args are an array in AddMcpServerModal and MCPService components --- src/main/services/MCPService.ts | 5 ++--- .../src/pages/settings/MCPSettings/AddMcpServerModal.tsx | 3 +-- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/src/main/services/MCPService.ts b/src/main/services/MCPService.ts index bb6fc2835a..8ffcd926e2 100644 --- a/src/main/services/MCPService.ts +++ b/src/main/services/MCPService.ts @@ -91,7 +91,7 @@ class McpService { return JSON.stringify({ baseUrl: server.baseUrl, command: server.command, - args: server.args, + args: Array.isArray(server.args) ? server.args : [], registryUrl: server.registryUrl, env: server.env, id: server.id @@ -567,12 +567,11 @@ class McpService { try { const result = await client.listResources() const resources = result.resources || [] - const serverResources = (Array.isArray(resources) ? resources : []).map((resource: any) => ({ + return (Array.isArray(resources) ? resources : []).map((resource: any) => ({ ...resource, serverId: server.id, serverName: server.name })) - return serverResources } catch (error: any) { // -32601 is the code for the method not found if (error?.code !== -32601) { diff --git a/src/renderer/src/pages/settings/MCPSettings/AddMcpServerModal.tsx b/src/renderer/src/pages/settings/MCPSettings/AddMcpServerModal.tsx index e1f399905b..33ec2f8868 100644 --- a/src/renderer/src/pages/settings/MCPSettings/AddMcpServerModal.tsx +++ b/src/renderer/src/pages/settings/MCPSettings/AddMcpServerModal.tsx @@ -95,7 +95,7 @@ const AddMcpServerModal: FC = ({ visible, onClose, onSuc description: serverToAdd!.description ?? '', baseUrl: serverToAdd!.baseUrl ?? serverToAdd!.url ?? '', command: serverToAdd!.command ?? '', - args: serverToAdd!.args || [], + args: Array.isArray(serverToAdd!.args) ? serverToAdd!.args : [], env: serverToAdd!.env || {}, isActive: false, type: serverToAdd!.type, @@ -236,7 +236,6 @@ const parseAndExtractServer = ( } } else if ( typeof parsedJson === 'object' && - parsedJson !== null && !Array.isArray(parsedJson) && !parsedJson.mcpServers // 確保是直接的伺服器物件 ) {