diff --git a/axhub-tool-other/src/main/java/io/shinhanlife/axhub/biz/mcp/tool/balance/dto/BalanceReq.java b/axhub-tool-other/src/main/java/io/shinhanlife/axhub/biz/mcp/tool/balance/dto/BalanceReq.java new file mode 100644 index 0000000..0af6d27 --- /dev/null +++ b/axhub-tool-other/src/main/java/io/shinhanlife/axhub/biz/mcp/tool/balance/dto/BalanceReq.java @@ -0,0 +1,10 @@ +package io.shinhanlife.axhub.biz.mcp.tool.balance.dto; + +import io.shinhanlife.axhub.biz.mcp.tool.annotation.McpParameter; +import lombok.Data; + +@Data +public class BalanceReq { + @McpParameter(description = "고객의 계좌번호 (- 제외)", required = true) + private String accountNumber; +} diff --git a/axhub-tool-other/src/main/java/io/shinhanlife/axhub/biz/mcp/tool/balance/dto/BalanceRes.java b/axhub-tool-other/src/main/java/io/shinhanlife/axhub/biz/mcp/tool/balance/dto/BalanceRes.java new file mode 100644 index 0000000..0a3fab2 --- /dev/null +++ b/axhub-tool-other/src/main/java/io/shinhanlife/axhub/biz/mcp/tool/balance/dto/BalanceRes.java @@ -0,0 +1,11 @@ +package io.shinhanlife.axhub.biz.mcp.tool.balance.dto; + +import lombok.Data; + +@Data +public class BalanceRes { + private String status; + private String message; + private String accountNumber; + private long balance; +} diff --git a/axhub-tool-other/src/main/java/io/shinhanlife/axhub/biz/mcp/tool/balance/service/BalanceService.java b/axhub-tool-other/src/main/java/io/shinhanlife/axhub/biz/mcp/tool/balance/service/BalanceService.java new file mode 100644 index 0000000..b99ed45 --- /dev/null +++ b/axhub-tool-other/src/main/java/io/shinhanlife/axhub/biz/mcp/tool/balance/service/BalanceService.java @@ -0,0 +1,39 @@ +package io.shinhanlife.axhub.biz.mcp.tool.balance.service; + +import io.shinhanlife.axhub.biz.mcp.tool.annotation.McpFunction; +import io.shinhanlife.axhub.biz.mcp.tool.annotation.McpTool; +import io.shinhanlife.axhub.biz.mcp.tool.balance.dto.BalanceReq; +import io.shinhanlife.axhub.biz.mcp.tool.service.AbstractMcpToolService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import java.util.Map; + +@Slf4j +@Service +@McpTool(routingType = "MCI", group = "COMMON") +public class BalanceService extends AbstractMcpToolService { + + @McpFunction( + name = "balance", + description = "고객의 계좌 잔액을 조회합니다.", + prompt = "고객 계좌 잔액을 조회해줘.", + mappingId = "ACC_001" + ) + public Object execute(BalanceReq req) { + log.info("[Balance] 계좌 잔액 조회 요청 수신. 계좌번호: {}", req.getAccountNumber()); + + // 레거시 연동 + Map result = executeLegacy("MCI", "ACC_001", req); + + // 가짜 데이터 응답 매핑 (AI 에이전트가 그럴듯하게 보여주기 위함) + if ("SUCCESS".equals(result.get("status"))) { + result.put("accountNumber", req.getAccountNumber()); + result.put("balance", 1520300); // 1,520,300원 (가상의 잔액) + result.put("currency", "KRW"); + result.put("message", "잔액 조회가 완료되었습니다."); + } + + return result; + } +}