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 // 確保是直接的伺服器物件 ) {