From 05cf3a191b5a923acd87418013b3e59556ef926f Mon Sep 17 00:00:00 2001 From: jade Date: Sat, 4 Jul 2026 01:43:41 +0900 Subject: [PATCH] feat: Add logging for Tool to MCP to AI Agent response pipeline --- .../biz/mcp/gateway/controller/McpRouterController.java | 8 +++++++- .../biz/mcp/tool/controller/BusinessToolController.java | 8 +++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/main/java/io/shinhanlife/axhub/biz/mcp/gateway/controller/McpRouterController.java b/src/main/java/io/shinhanlife/axhub/biz/mcp/gateway/controller/McpRouterController.java index a272bb1..f6e74b4 100644 --- a/src/main/java/io/shinhanlife/axhub/biz/mcp/gateway/controller/McpRouterController.java +++ b/src/main/java/io/shinhanlife/axhub/biz/mcp/gateway/controller/McpRouterController.java @@ -124,7 +124,13 @@ public class McpRouterController { } try { - return ResponseEntity.ok(executeService.execute(payload, tenantId)); + Object result = executeService.execute(payload, tenantId); + try { + log.info("\n [MCP Gateway -> AI Agent] 최종 응답 반환: {}", objectMapper.writeValueAsString(result)); + } catch (Exception e) { + log.info("\n [MCP Gateway -> AI Agent] 최종 응답 반환: {}", result); + } + return ResponseEntity.ok(result); } catch (SecurityException se) { log.warn(" [보안 차단] 권한 오류: {}", se.getMessage()); return ResponseEntity.status(403).body(Map.of("error", se.getMessage())); diff --git a/src/main/java/io/shinhanlife/axhub/biz/mcp/tool/controller/BusinessToolController.java b/src/main/java/io/shinhanlife/axhub/biz/mcp/tool/controller/BusinessToolController.java index db355f3..ba7b4c7 100644 --- a/src/main/java/io/shinhanlife/axhub/biz/mcp/tool/controller/BusinessToolController.java +++ b/src/main/java/io/shinhanlife/axhub/biz/mcp/tool/controller/BusinessToolController.java @@ -180,10 +180,16 @@ public class BusinessToolController { } resultPayload.put("ai_insight", "다이렉트 메서드(" + targetMethod.getName() + ") 통신이 성공적으로 수행되었습니다."); - Map rpcResponse = new HashMap<>(); + Map rpcResponse = new java.util.LinkedHashMap<>(); // 순서 보장을 위해 LinkedHashMap 사용 rpcResponse.put("jsonrpc", "2.0"); rpcResponse.put("result", resultPayload); rpcResponse.put("id", payload != null ? payload.get("id") : null); + + try { + log.info("\n [Tool -> MCP Gateway] 동적 툴 실행 결과 반환: {}", objectMapper.writeValueAsString(rpcResponse)); + } catch (Exception e) { + log.info("\n [Tool -> MCP Gateway] 동적 툴 실행 결과 반환: {}", rpcResponse); + } return rpcResponse; } catch (Exception e) {