From de38fc4b9016840dda936f3902a60d6d69352a97 Mon Sep 17 00:00:00 2001 From: wanghanlin <1533525126@qq.com> Date: Thu, 30 Jul 2026 11:02:17 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E8=AF=95=E6=97=A5=E5=BF=97=EF=BC=9A?= =?UTF-8?q?=E8=BE=93=E5=87=BA=20MCP=20=E8=B0=83=E7=94=A8=E5=8E=9F=E5=A7=8B?= =?UTF-8?q?=E8=BF=94=E5=9B=9E=E7=BB=93=E6=9E=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/wok/supportbot/config/McpClientManager.java | 9 +++++++++ .../java/com/wok/supportbot/mcp/McpToolCallback.java | 9 +++++++++ 2 files changed, 18 insertions(+) diff --git a/src/main/java/com/wok/supportbot/config/McpClientManager.java b/src/main/java/com/wok/supportbot/config/McpClientManager.java index 2ad255b..d002933 100644 --- a/src/main/java/com/wok/supportbot/config/McpClientManager.java +++ b/src/main/java/com/wok/supportbot/config/McpClientManager.java @@ -238,6 +238,9 @@ public class McpClientManager { try { McpSyncClient client = entry.getValue(); McpSchema.ListToolsResult listToolsResult = client.listTools(); + // 调试日志:输出 MCP 原始返回结果 + log.info("🔧 [DEBUG] MCP listTools 原始结果 - configId={}, server={}, rawJson={}", + configId, config.getName(), ModelOptionsUtils.toJsonString(listToolsResult)); if (listToolsResult != null && listToolsResult.tools() != null) { log.info(" 📦 MCP Server [{}] 暴露了 {} 个工具", config.getName(), listToolsResult.tools().size()); for (McpSchema.Tool tool : listToolsResult.tools()) { @@ -312,6 +315,9 @@ public class McpClientManager { long startTime = System.currentTimeMillis(); try { McpSchema.ListToolsResult result = client.listTools(); + // 调试日志:输出 MCP 原始返回结果 + log.info("🔧 [DEBUG] 健康检查 listTools 原始结果 - configId={}, rawJson={}", + key, ModelOptionsUtils.toJsonString(result)); long latencyMs = System.currentTimeMillis() - startTime; int toolsCount = (result != null && result.tools() != null) ? result.tools().size() : 0; HealthStatus status = HealthStatus.online(latencyMs); @@ -650,6 +656,9 @@ public class McpClientManager { // 获取工具列表 McpSchema.ListToolsResult listToolsResult = tempClient.listTools(); + // 调试日志:输出 MCP 原始返回结果 + log.info("🔧 [DEBUG] 连接测试 listTools 原始结果 - configId={}, rawJson={}", + configId, ModelOptionsUtils.toJsonString(listToolsResult)); int toolsCount = (listToolsResult != null && listToolsResult.tools() != null) ? listToolsResult.tools().size() : 0; diff --git a/src/main/java/com/wok/supportbot/mcp/McpToolCallback.java b/src/main/java/com/wok/supportbot/mcp/McpToolCallback.java index ddff710..28dc3b6 100644 --- a/src/main/java/com/wok/supportbot/mcp/McpToolCallback.java +++ b/src/main/java/com/wok/supportbot/mcp/McpToolCallback.java @@ -194,6 +194,10 @@ public class McpToolCallback implements ToolCallback { McpSchema.CallToolRequest request = new McpSchema.CallToolRequest(originalToolName, arguments); McpSchema.CallToolResult result = client.callTool(request); + // 调试日志:输出 MCP 调用原始返回结果 + log.info("🔧 [DEBUG] MCP callTool 原始结果 - serverId={}, tool={}, rawJson={}", + mcpServerConfigId, originalToolName, ModelOptionsUtils.toJsonString(result)); + long latency = System.currentTimeMillis() - startTime; log.info("MCP 工具调用完成: tool={}, latency={}ms, isError={}", originalToolName, latency, result.isError()); @@ -230,6 +234,11 @@ public class McpToolCallback implements ToolCallback { Map retryArgs = OBJECT_MAPPER.readValue(toolInput, new TypeReference<>() {}); McpSchema.CallToolRequest retryRequest = new McpSchema.CallToolRequest(originalToolName, retryArgs); McpSchema.CallToolResult retryResult = reconnected.callTool(retryRequest); + + // 调试日志:输出 MCP 重试调用原始返回结果 + log.info("🔧 [DEBUG] MCP callTool 重试原始结果 - serverId={}, tool={}, rawJson={}", + mcpServerConfigId, originalToolName, ModelOptionsUtils.toJsonString(retryResult)); + long retryLatency = System.currentTimeMillis() - startTime; log.info("MCP 工具重试成功: tool={}, latency={}ms", originalToolName, retryLatency);