From 38830d34aab865f33426ed4bfe5940957dc744a5 Mon Sep 17 00:00:00 2001 From: karl Date: Sun, 27 Apr 2025 18:06:11 +0800 Subject: [PATCH] fix(MCPService): Tool call failure caused by incorrect tool parameters --- src/main/services/MCPService.ts | 7 +++++++ .../src/pages/settings/MCPSettings/McpSettings.tsx | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/main/services/MCPService.ts b/src/main/services/MCPService.ts index 2bdb31d228..43f1a55889 100644 --- a/src/main/services/MCPService.ts +++ b/src/main/services/MCPService.ts @@ -394,6 +394,13 @@ class McpService { ): Promise { try { Logger.info('[MCP] Calling:', server.name, name, args) + if (typeof args === 'string') { + try { + args = JSON.parse(args) + } catch (e) { + Logger.error('[MCP] args parse error', args) + } + } const client = await this.initClient(server) const result = await client.callTool({ name, arguments: args }, undefined, { timeout: server.timeout ? server.timeout * 1000 : 60000 // Default timeout of 1 minute diff --git a/src/renderer/src/pages/settings/MCPSettings/McpSettings.tsx b/src/renderer/src/pages/settings/MCPSettings/McpSettings.tsx index 5e125c39b6..ecc4f01b33 100644 --- a/src/renderer/src/pages/settings/MCPSettings/McpSettings.tsx +++ b/src/renderer/src/pages/settings/MCPSettings/McpSettings.tsx @@ -68,7 +68,7 @@ const PipRegistry: Registry[] = [ { name: '腾讯云', url: 'https://mirrors.cloud.tencent.com/pypi/simple/' } ] -type TabKey = 'settings' | 'tools' | 'prompts' | 'resources' +type TabKey = 'settings' | 'description' | 'tools' | 'prompts' | 'resources' const parseKeyValueString = (str: string): Record => { const result: Record = {}