소스 업데이트
All checks were successful
Deploy Tools / deploy (push) Successful in 55s

This commit is contained in:
jade
2026-08-27 09:02:49 +09:00
parent 935702a569
commit eff142b956
22 changed files with 5 additions and 1514 deletions

View File

@@ -1,16 +0,0 @@
package io.shinhanlife.dat.mcc.biz.agt.dto;
import lombok.Data;
import org.springaicommunity.mcp.annotation.McpToolParam;
@Data
public class AgentToolRequest {
@McpToolParam(description = "설계사번호", required = false)
private String agentId;
@McpToolParam(description = "GA 조직번호", required = false)
private String organizationId;
@McpToolParam(description = "조회 기준일(YYYY-MM-DD)", required = false)
private String queryDate;
}

View File

@@ -1,15 +0,0 @@
package io.shinhanlife.dat.mcc.biz.agt.dto;
import java.util.List;
import lombok.Data;
@Data
public class AgentToolResponse {
private String toolName;
private String category;
private String referenceId;
private String status;
private String summary;
private String asOfDate;
private List<String> details;
}

View File

@@ -1,152 +0,0 @@
package io.shinhanlife.dat.mcc.biz.agt.usecase;
import io.shinhanlife.dat.lib.annotation.GrowToolHint;
import io.shinhanlife.dat.mcc.biz.agt.dto.AgentToolRequest;
import io.shinhanlife.dat.mcc.biz.agt.dto.AgentToolResponse;
import org.springaicommunity.mcp.annotation.McpTool;
public interface AgentInquiryUseCase {
@McpTool(name = "agt_agent_profile", title = "GA 설계사 기본정보 조회", description = "GA 설계사 기본정보 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "agt",
mappingId = "DIRECT_AGT_AGENT_PROFILE",
functionDescription = "GA 설계사 기본정보 조회 정보를 조회합니다.",
whenToUse = "GA·설계사 업무에서 GA 설계사 기본정보 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "GA 설계사 기본정보 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"GA 설계사 기본정보 조회 정보를 보여줘", "GA 설계사 기본정보 조회 결과를 확인해줘", "현재 GA 설계사 기본정보 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"agt", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
AgentToolResponse getAgentProfile(AgentToolRequest request);
@McpTool(name = "agt_appointment_status", title = "GA 설계사 위촉상태 조회", description = "GA 설계사 위촉상태 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "agt",
mappingId = "DIRECT_AGT_APPOINTMENT_STATUS",
functionDescription = "GA 설계사 위촉상태 조회 정보를 조회합니다.",
whenToUse = "GA·설계사 업무에서 GA 설계사 위촉상태 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "GA 설계사 위촉상태 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"GA 설계사 위촉상태 조회 정보를 보여줘", "GA 설계사 위촉상태 조회 결과를 확인해줘", "현재 GA 설계사 위촉상태 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"agt", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
AgentToolResponse getAppointmentStatus(AgentToolRequest request);
@McpTool(name = "agt_agent_license", title = "GA 설계사 자격정보 조회", description = "GA 설계사 자격정보 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "agt",
mappingId = "DIRECT_AGT_AGENT_LICENSE",
functionDescription = "GA 설계사 자격정보 조회 정보를 조회합니다.",
whenToUse = "GA·설계사 업무에서 GA 설계사 자격정보 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "GA 설계사 자격정보 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"GA 설계사 자격정보 조회 정보를 보여줘", "GA 설계사 자격정보 조회 결과를 확인해줘", "현재 GA 설계사 자격정보 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"agt", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
AgentToolResponse getAgentLicense(AgentToolRequest request);
@McpTool(name = "agt_commission_grade", title = "GA 설계사 수수료등급 조회", description = "GA 설계사 수수료등급 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "agt",
mappingId = "DIRECT_AGT_COMMISSION_GRADE",
functionDescription = "GA 설계사 수수료등급 조회 정보를 조회합니다.",
whenToUse = "GA·설계사 업무에서 GA 설계사 수수료등급 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "GA 설계사 수수료등급 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"GA 설계사 수수료등급 조회 정보를 보여줘", "GA 설계사 수수료등급 조회 결과를 확인해줘", "현재 GA 설계사 수수료등급 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"agt", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
AgentToolResponse getCommissionGrade(AgentToolRequest request);
@McpTool(name = "agt_agent_education", title = "GA 설계사 교육이력 조회", description = "GA 설계사 교육이력 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "agt",
mappingId = "DIRECT_AGT_AGENT_EDUCATION",
functionDescription = "GA 설계사 교육이력 조회 정보를 조회합니다.",
whenToUse = "GA·설계사 업무에서 GA 설계사 교육이력 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "GA 설계사 교육이력 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"GA 설계사 교육이력 조회 정보를 보여줘", "GA 설계사 교육이력 조회 결과를 확인해줘", "현재 GA 설계사 교육이력 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"agt", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
AgentToolResponse getAgentEducation(AgentToolRequest request);
@McpTool(name = "agt_agent_compliance", title = "GA 설계사 준법정보 조회", description = "GA 설계사 준법정보 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "agt",
mappingId = "DIRECT_AGT_AGENT_COMPLIANCE",
functionDescription = "GA 설계사 준법정보 조회 정보를 조회합니다.",
whenToUse = "GA·설계사 업무에서 GA 설계사 준법정보 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "GA 설계사 준법정보 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"GA 설계사 준법정보 조회 정보를 보여줘", "GA 설계사 준법정보 조회 결과를 확인해줘", "현재 GA 설계사 준법정보 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"agt", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
AgentToolResponse getAgentCompliance(AgentToolRequest request);
@McpTool(name = "agt_customer_assignment", title = "GA 설계사 고객배정 조회", description = "GA 설계사 고객배정 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "agt",
mappingId = "DIRECT_AGT_CUSTOMER_ASSIGNMENT",
functionDescription = "GA 설계사 고객배정 조회 정보를 조회합니다.",
whenToUse = "GA·설계사 업무에서 GA 설계사 고객배정 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "GA 설계사 고객배정 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"GA 설계사 고객배정 조회 정보를 보여줘", "GA 설계사 고객배정 조회 결과를 확인해줘", "현재 GA 설계사 고객배정 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"agt", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
AgentToolResponse getCustomerAssignment(AgentToolRequest request);
@McpTool(name = "agt_activity_status", title = "GA 설계사 활동상태 조회", description = "GA 설계사 활동상태 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "agt",
mappingId = "DIRECT_AGT_ACTIVITY_STATUS",
functionDescription = "GA 설계사 활동상태 조회 정보를 조회합니다.",
whenToUse = "GA·설계사 업무에서 GA 설계사 활동상태 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "GA 설계사 활동상태 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"GA 설계사 활동상태 조회 정보를 보여줘", "GA 설계사 활동상태 조회 결과를 확인해줘", "현재 GA 설계사 활동상태 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"agt", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
AgentToolResponse getActivityStatus(AgentToolRequest request);
}

View File

@@ -1,170 +0,0 @@
package io.shinhanlife.dat.mcc.biz.agt.usecase;
import io.shinhanlife.dat.lib.annotation.GrowToolHint;
import io.shinhanlife.dat.mcc.biz.agt.dto.AgentToolRequest;
import io.shinhanlife.dat.mcc.biz.agt.dto.AgentToolResponse;
import org.springaicommunity.mcp.annotation.McpTool;
public interface AgentPerformanceUseCase {
@McpTool(name = "agt_production_summary", title = "GA 설계사 신계약 실적 조회", description = "GA 설계사 신계약 실적 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "agt",
mappingId = "DIRECT_AGT_PRODUCTION_SUMMARY",
functionDescription = "GA 설계사 신계약 실적 조회 정보를 조회합니다.",
whenToUse = "GA·설계사 업무에서 GA 설계사 신계약 실적 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "GA 설계사 신계약 실적 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"GA 설계사 신계약 실적 조회 정보를 보여줘", "GA 설계사 신계약 실적 조회 결과를 확인해줘", "현재 GA 설계사 신계약 실적 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"agt", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
AgentToolResponse getProductionSummary(AgentToolRequest request);
@McpTool(name = "agt_contract_count", title = "GA 설계사 계약건수 조회", description = "GA 설계사 계약건수 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "agt",
mappingId = "DIRECT_AGT_CONTRACT_COUNT",
functionDescription = "GA 설계사 계약건수 조회 정보를 조회합니다.",
whenToUse = "GA·설계사 업무에서 GA 설계사 계약건수 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "GA 설계사 계약건수 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"GA 설계사 계약건수 조회 정보를 보여줘", "GA 설계사 계약건수 조회 결과를 확인해줘", "현재 GA 설계사 계약건수 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"agt", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
AgentToolResponse getContractCount(AgentToolRequest request);
@McpTool(name = "agt_premium_summary", title = "GA 설계사 보험료 실적 조회", description = "GA 설계사 보험료 실적 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "agt",
mappingId = "DIRECT_AGT_PREMIUM_SUMMARY",
functionDescription = "GA 설계사 보험료 실적 조회 정보를 조회합니다.",
whenToUse = "GA·설계사 업무에서 GA 설계사 보험료 실적 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "GA 설계사 보험료 실적 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"GA 설계사 보험료 실적 조회 정보를 보여줘", "GA 설계사 보험료 실적 조회 결과를 확인해줘", "현재 GA 설계사 보험료 실적 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"agt", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
AgentToolResponse getPremiumSummary(AgentToolRequest request);
@McpTool(name = "agt_persistency_rate", title = "GA 설계사 계약유지율 조회", description = "GA 설계사 계약유지율 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "agt",
mappingId = "DIRECT_AGT_PERSISTENCY_RATE",
functionDescription = "GA 설계사 계약유지율 조회 정보를 조회합니다.",
whenToUse = "GA·설계사 업무에서 GA 설계사 계약유지율 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "GA 설계사 계약유지율 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"GA 설계사 계약유지율 조회 정보를 보여줘", "GA 설계사 계약유지율 조회 결과를 확인해줘", "현재 GA 설계사 계약유지율 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"agt", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
AgentToolResponse getPersistencyRate(AgentToolRequest request);
@McpTool(name = "agt_claim_support", title = "GA 보험금 청구지원 현황 조회", description = "GA 보험금 청구지원 현황 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "agt",
mappingId = "DIRECT_AGT_CLAIM_SUPPORT",
functionDescription = "GA 보험금 청구지원 현황 조회 정보를 조회합니다.",
whenToUse = "GA·설계사 업무에서 GA 보험금 청구지원 현황 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "GA 보험금 청구지원 현황 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"GA 보험금 청구지원 현황 조회 정보를 보여줘", "GA 보험금 청구지원 현황 조회 결과를 확인해줘", "현재 GA 보험금 청구지원 현황 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"agt", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
AgentToolResponse getClaimSupport(AgentToolRequest request);
@McpTool(name = "agt_commission_summary", title = "GA 설계사 수수료 요약 조회", description = "GA 설계사 수수료 요약 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "agt",
mappingId = "DIRECT_AGT_COMMISSION_SUMMARY",
functionDescription = "GA 설계사 수수료 요약 조회 정보를 조회합니다.",
whenToUse = "GA·설계사 업무에서 GA 설계사 수수료 요약 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "GA 설계사 수수료 요약 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"GA 설계사 수수료 요약 조회 정보를 보여줘", "GA 설계사 수수료 요약 조회 결과를 확인해줘", "현재 GA 설계사 수수료 요약 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"agt", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
AgentToolResponse getCommissionSummary(AgentToolRequest request);
@McpTool(name = "agt_campaign", title = "GA 영업 캠페인 조회", description = "GA 영업 캠페인 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "agt",
mappingId = "DIRECT_AGT_CAMPAIGN",
functionDescription = "GA 영업 캠페인 조회 정보를 조회합니다.",
whenToUse = "GA·설계사 업무에서 GA 영업 캠페인 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "GA 영업 캠페인 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"GA 영업 캠페인 조회 정보를 보여줘", "GA 영업 캠페인 조회 결과를 확인해줘", "현재 GA 영업 캠페인 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"agt", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
AgentToolResponse getCampaign(AgentToolRequest request);
@McpTool(name = "agt_task_list", title = "GA 설계사 업무목록 조회", description = "GA 설계사 업무목록 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "agt",
mappingId = "DIRECT_AGT_TASK_LIST",
functionDescription = "GA 설계사 업무목록 조회 정보를 조회합니다.",
whenToUse = "GA·설계사 업무에서 GA 설계사 업무목록 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "GA 설계사 업무목록 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"GA 설계사 업무목록 조회 정보를 보여줘", "GA 설계사 업무목록 조회 결과를 확인해줘", "현재 GA 설계사 업무목록 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"agt", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
AgentToolResponse getTaskList(AgentToolRequest request);
@McpTool(name = "agt_notice_list", title = "GA 설계사 공지목록 조회", description = "GA 설계사 공지목록 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "agt",
mappingId = "DIRECT_AGT_NOTICE_LIST",
functionDescription = "GA 설계사 공지목록 조회 정보를 조회합니다.",
whenToUse = "GA·설계사 업무에서 GA 설계사 공지목록 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "GA 설계사 공지목록 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"GA 설계사 공지목록 조회 정보를 보여줘", "GA 설계사 공지목록 조회 결과를 확인해줘", "현재 GA 설계사 공지목록 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"agt", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
AgentToolResponse getNoticeList(AgentToolRequest request);
}

View File

@@ -1,152 +0,0 @@
package io.shinhanlife.dat.mcc.biz.agt.usecase;
import io.shinhanlife.dat.lib.annotation.GrowToolHint;
import io.shinhanlife.dat.mcc.biz.agt.dto.AgentToolRequest;
import io.shinhanlife.dat.mcc.biz.agt.dto.AgentToolResponse;
import org.springaicommunity.mcp.annotation.McpTool;
public interface GaOrganizationUseCase {
@McpTool(name = "agt_ga_profile", title = "GA 조직 기본정보 조회", description = "GA 조직 기본정보 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "agt",
mappingId = "DIRECT_AGT_GA_PROFILE",
functionDescription = "GA 조직 기본정보 조회 정보를 조회합니다.",
whenToUse = "GA·설계사 업무에서 GA 조직 기본정보 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "GA 조직 기본정보 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"GA 조직 기본정보 조회 정보를 보여줘", "GA 조직 기본정보 조회 결과를 확인해줘", "현재 GA 조직 기본정보 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"agt", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
AgentToolResponse getGaProfile(AgentToolRequest request);
@McpTool(name = "agt_branch_list", title = "GA 지점목록 조회", description = "GA 지점목록 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "agt",
mappingId = "DIRECT_AGT_BRANCH_LIST",
functionDescription = "GA 지점목록 조회 정보를 조회합니다.",
whenToUse = "GA·설계사 업무에서 GA 지점목록 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "GA 지점목록 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"GA 지점목록 조회 정보를 보여줘", "GA 지점목록 조회 결과를 확인해줘", "현재 GA 지점목록 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"agt", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
AgentToolResponse getBranchList(AgentToolRequest request);
@McpTool(name = "agt_organization_tree", title = "GA 조직도 조회", description = "GA 조직도 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "agt",
mappingId = "DIRECT_AGT_ORGANIZATION_TREE",
functionDescription = "GA 조직도 조회 정보를 조회합니다.",
whenToUse = "GA·설계사 업무에서 GA 조직도 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "GA 조직도 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"GA 조직도 조회 정보를 보여줘", "GA 조직도 조회 결과를 확인해줘", "현재 GA 조직도 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"agt", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
AgentToolResponse getOrganizationTree(AgentToolRequest request);
@McpTool(name = "agt_organization_manager", title = "GA 조직 책임자 조회", description = "GA 조직 책임자 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "agt",
mappingId = "DIRECT_AGT_ORGANIZATION_MANAGER",
functionDescription = "GA 조직 책임자 조회 정보를 조회합니다.",
whenToUse = "GA·설계사 업무에서 GA 조직 책임자 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "GA 조직 책임자 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"GA 조직 책임자 조회 정보를 보여줘", "GA 조직 책임자 조회 결과를 확인해줘", "현재 GA 조직 책임자 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"agt", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
AgentToolResponse getOrganizationManager(AgentToolRequest request);
@McpTool(name = "agt_organization_agent_list", title = "GA 소속 설계사 목록 조회", description = "GA 소속 설계사 목록 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "agt",
mappingId = "DIRECT_AGT_ORGANIZATION_AGENT_LIST",
functionDescription = "GA 소속 설계사 목록 조회 정보를 조회합니다.",
whenToUse = "GA·설계사 업무에서 GA 소속 설계사 목록 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "GA 소속 설계사 목록 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"GA 소속 설계사 목록 조회 정보를 보여줘", "GA 소속 설계사 목록 조회 결과를 확인해줘", "현재 GA 소속 설계사 목록 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"agt", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
AgentToolResponse getOrganizationAgentList(AgentToolRequest request);
@McpTool(name = "agt_sales_area", title = "GA 영업지역 조회", description = "GA 영업지역 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "agt",
mappingId = "DIRECT_AGT_SALES_AREA",
functionDescription = "GA 영업지역 조회 정보를 조회합니다.",
whenToUse = "GA·설계사 업무에서 GA 영업지역 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "GA 영업지역 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"GA 영업지역 조회 정보를 보여줘", "GA 영업지역 조회 결과를 확인해줘", "현재 GA 영업지역 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"agt", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
AgentToolResponse getSalesArea(AgentToolRequest request);
@McpTool(name = "agt_affiliation_history", title = "GA 소속변경 이력 조회", description = "GA 소속변경 이력 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "agt",
mappingId = "DIRECT_AGT_AFFILIATION_HISTORY",
functionDescription = "GA 소속변경 이력 조회 정보를 조회합니다.",
whenToUse = "GA·설계사 업무에서 GA 소속변경 이력 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "GA 소속변경 이력 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"GA 소속변경 이력 조회 정보를 보여줘", "GA 소속변경 이력 조회 결과를 확인해줘", "현재 GA 소속변경 이력 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"agt", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
AgentToolResponse getAffiliationHistory(AgentToolRequest request);
@McpTool(name = "agt_support_contact", title = "GA 업무지원 연락처 조회", description = "GA 업무지원 연락처 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "agt",
mappingId = "DIRECT_AGT_SUPPORT_CONTACT",
functionDescription = "GA 업무지원 연락처 조회 정보를 조회합니다.",
whenToUse = "GA·설계사 업무에서 GA 업무지원 연락처 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "GA 업무지원 연락처 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"GA 업무지원 연락처 조회 정보를 보여줘", "GA 업무지원 연락처 조회 결과를 확인해줘", "현재 GA 업무지원 연락처 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"agt", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
AgentToolResponse getSupportContact(AgentToolRequest request);
}

View File

@@ -1,67 +0,0 @@
package io.shinhanlife.dat.mcc.biz.agt.usecase.impl;
import io.shinhanlife.dat.mcc.biz.agt.dto.AgentToolRequest;
import io.shinhanlife.dat.mcc.biz.agt.dto.AgentToolResponse;
import io.shinhanlife.dat.mcc.biz.agt.usecase.AgentInquiryUseCase;
import java.util.List;
import org.springframework.stereotype.Service;
@Service
public class AgentInquiryUseCaseImpl implements AgentInquiryUseCase {
@Override
public AgentToolResponse getAgentProfile(AgentToolRequest request) {
return mockResponse(request, "agt_agent_profile", "GA 설계사 기본정보 조회");
}
@Override
public AgentToolResponse getAppointmentStatus(AgentToolRequest request) {
return mockResponse(request, "agt_appointment_status", "GA 설계사 위촉상태 조회");
}
@Override
public AgentToolResponse getAgentLicense(AgentToolRequest request) {
return mockResponse(request, "agt_agent_license", "GA 설계사 자격정보 조회");
}
@Override
public AgentToolResponse getCommissionGrade(AgentToolRequest request) {
return mockResponse(request, "agt_commission_grade", "GA 설계사 수수료등급 조회");
}
@Override
public AgentToolResponse getAgentEducation(AgentToolRequest request) {
return mockResponse(request, "agt_agent_education", "GA 설계사 교육이력 조회");
}
@Override
public AgentToolResponse getAgentCompliance(AgentToolRequest request) {
return mockResponse(request, "agt_agent_compliance", "GA 설계사 준법정보 조회");
}
@Override
public AgentToolResponse getCustomerAssignment(AgentToolRequest request) {
return mockResponse(request, "agt_customer_assignment", "GA 설계사 고객배정 조회");
}
@Override
public AgentToolResponse getActivityStatus(AgentToolRequest request) {
return mockResponse(request, "agt_activity_status", "GA 설계사 활동상태 조회");
}
private AgentToolResponse mockResponse(AgentToolRequest request, String toolName, String title) {
AgentToolResponse response = new AgentToolResponse();
response.setToolName(toolName);
response.setCategory("AGT");
response.setReferenceId(request != null && hasText(request.getAgentId()) ? request.getAgentId()
: request != null && hasText(request.getOrganizationId()) ? request.getOrganizationId() : "AGT-000001");
response.setStatus("정상");
response.setSummary(title + " 결과");
response.setAsOfDate(request != null && hasText(request.getQueryDate()) ? request.getQueryDate() : "2026-08-14");
response.setDetails(List.of(title + " 모의 상세정보", "외부 시스템을 변경하지 않는 조회 결과"));
return response;
}
private boolean hasText(String value) {
return value != null && !value.isBlank();
}
}

View File

@@ -1,72 +0,0 @@
package io.shinhanlife.dat.mcc.biz.agt.usecase.impl;
import io.shinhanlife.dat.mcc.biz.agt.dto.AgentToolRequest;
import io.shinhanlife.dat.mcc.biz.agt.dto.AgentToolResponse;
import io.shinhanlife.dat.mcc.biz.agt.usecase.AgentPerformanceUseCase;
import java.util.List;
import org.springframework.stereotype.Service;
@Service
public class AgentPerformanceUseCaseImpl implements AgentPerformanceUseCase {
@Override
public AgentToolResponse getProductionSummary(AgentToolRequest request) {
return mockResponse(request, "agt_production_summary", "GA 설계사 신계약 실적 조회");
}
@Override
public AgentToolResponse getContractCount(AgentToolRequest request) {
return mockResponse(request, "agt_contract_count", "GA 설계사 계약건수 조회");
}
@Override
public AgentToolResponse getPremiumSummary(AgentToolRequest request) {
return mockResponse(request, "agt_premium_summary", "GA 설계사 보험료 실적 조회");
}
@Override
public AgentToolResponse getPersistencyRate(AgentToolRequest request) {
return mockResponse(request, "agt_persistency_rate", "GA 설계사 계약유지율 조회");
}
@Override
public AgentToolResponse getClaimSupport(AgentToolRequest request) {
return mockResponse(request, "agt_claim_support", "GA 보험금 청구지원 현황 조회");
}
@Override
public AgentToolResponse getCommissionSummary(AgentToolRequest request) {
return mockResponse(request, "agt_commission_summary", "GA 설계사 수수료 요약 조회");
}
@Override
public AgentToolResponse getCampaign(AgentToolRequest request) {
return mockResponse(request, "agt_campaign", "GA 영업 캠페인 조회");
}
@Override
public AgentToolResponse getTaskList(AgentToolRequest request) {
return mockResponse(request, "agt_task_list", "GA 설계사 업무목록 조회");
}
@Override
public AgentToolResponse getNoticeList(AgentToolRequest request) {
return mockResponse(request, "agt_notice_list", "GA 설계사 공지목록 조회");
}
private AgentToolResponse mockResponse(AgentToolRequest request, String toolName, String title) {
AgentToolResponse response = new AgentToolResponse();
response.setToolName(toolName);
response.setCategory("AGT");
response.setReferenceId(request != null && hasText(request.getAgentId()) ? request.getAgentId()
: request != null && hasText(request.getOrganizationId()) ? request.getOrganizationId() : "AGT-000001");
response.setStatus("정상");
response.setSummary(title + " 결과");
response.setAsOfDate(request != null && hasText(request.getQueryDate()) ? request.getQueryDate() : "2026-08-14");
response.setDetails(List.of(title + " 모의 상세정보", "외부 시스템을 변경하지 않는 조회 결과"));
return response;
}
private boolean hasText(String value) {
return value != null && !value.isBlank();
}
}

View File

@@ -1,67 +0,0 @@
package io.shinhanlife.dat.mcc.biz.agt.usecase.impl;
import io.shinhanlife.dat.mcc.biz.agt.dto.AgentToolRequest;
import io.shinhanlife.dat.mcc.biz.agt.dto.AgentToolResponse;
import io.shinhanlife.dat.mcc.biz.agt.usecase.GaOrganizationUseCase;
import java.util.List;
import org.springframework.stereotype.Service;
@Service
public class GaOrganizationUseCaseImpl implements GaOrganizationUseCase {
@Override
public AgentToolResponse getGaProfile(AgentToolRequest request) {
return mockResponse(request, "agt_ga_profile", "GA 조직 기본정보 조회");
}
@Override
public AgentToolResponse getBranchList(AgentToolRequest request) {
return mockResponse(request, "agt_branch_list", "GA 지점목록 조회");
}
@Override
public AgentToolResponse getOrganizationTree(AgentToolRequest request) {
return mockResponse(request, "agt_organization_tree", "GA 조직도 조회");
}
@Override
public AgentToolResponse getOrganizationManager(AgentToolRequest request) {
return mockResponse(request, "agt_organization_manager", "GA 조직 책임자 조회");
}
@Override
public AgentToolResponse getOrganizationAgentList(AgentToolRequest request) {
return mockResponse(request, "agt_organization_agent_list", "GA 소속 설계사 목록 조회");
}
@Override
public AgentToolResponse getSalesArea(AgentToolRequest request) {
return mockResponse(request, "agt_sales_area", "GA 영업지역 조회");
}
@Override
public AgentToolResponse getAffiliationHistory(AgentToolRequest request) {
return mockResponse(request, "agt_affiliation_history", "GA 소속변경 이력 조회");
}
@Override
public AgentToolResponse getSupportContact(AgentToolRequest request) {
return mockResponse(request, "agt_support_contact", "GA 업무지원 연락처 조회");
}
private AgentToolResponse mockResponse(AgentToolRequest request, String toolName, String title) {
AgentToolResponse response = new AgentToolResponse();
response.setToolName(toolName);
response.setCategory("AGT");
response.setReferenceId(request != null && hasText(request.getAgentId()) ? request.getAgentId()
: request != null && hasText(request.getOrganizationId()) ? request.getOrganizationId() : "AGT-000001");
response.setStatus("정상");
response.setSummary(title + " 결과");
response.setAsOfDate(request != null && hasText(request.getQueryDate()) ? request.getQueryDate() : "2026-08-14");
response.setDetails(List.of(title + " 모의 상세정보", "외부 시스템을 변경하지 않는 조회 결과"));
return response;
}
private boolean hasText(String value) {
return value != null && !value.isBlank();
}
}

View File

@@ -1,152 +0,0 @@
package io.shinhanlife.dat.mcc.biz.pro.usecase;
import io.shinhanlife.dat.lib.annotation.GrowToolHint;
import io.shinhanlife.dat.mcc.biz.pro.dto.ProductToolRequest;
import io.shinhanlife.dat.mcc.biz.pro.dto.ProductToolResponse;
import org.springaicommunity.mcp.annotation.McpTool;
public interface ClaimInquiryUseCase {
@McpTool(name = "pro_claim_eligibility", title = "보험금 청구 가능여부 조회", description = "보험금 청구 가능여부 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "pro",
mappingId = "DIRECT_PRO_CLAIM_ELIGIBILITY",
functionDescription = "보험금 청구 가능여부 조회 정보를 조회합니다.",
whenToUse = "고객·보험계약 업무에서 보험금 청구 가능여부 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "보험금 청구 가능여부 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"보험금 청구 가능여부 조회 정보를 보여줘", "보험금 청구 가능여부 조회 결과를 확인해줘", "현재 보험금 청구 가능여부 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"pro", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
ProductToolResponse getClaimEligibility(ProductToolRequest request);
@McpTool(name = "pro_claim_history", title = "보험금 청구이력 조회", description = "보험금 청구이력 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "pro",
mappingId = "DIRECT_PRO_CLAIM_HISTORY",
functionDescription = "보험금 청구이력 조회 정보를 조회합니다.",
whenToUse = "고객·보험계약 업무에서 보험금 청구이력 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "보험금 청구이력 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"보험금 청구이력 조회 정보를 보여줘", "보험금 청구이력 조회 결과를 확인해줘", "현재 보험금 청구이력 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"pro", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
ProductToolResponse getClaimHistory(ProductToolRequest request);
@McpTool(name = "pro_claim_status", title = "보험금 청구상태 조회", description = "보험금 청구상태 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "pro",
mappingId = "DIRECT_PRO_CLAIM_STATUS",
functionDescription = "보험금 청구상태 조회 정보를 조회합니다.",
whenToUse = "고객·보험계약 업무에서 보험금 청구상태 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "보험금 청구상태 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"보험금 청구상태 조회 정보를 보여줘", "보험금 청구상태 조회 결과를 확인해줘", "현재 보험금 청구상태 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"pro", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
ProductToolResponse getClaimStatus(ProductToolRequest request);
@McpTool(name = "pro_claim_documents", title = "보험금 청구서류 조회", description = "보험금 청구서류 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "pro",
mappingId = "DIRECT_PRO_CLAIM_DOCUMENTS",
functionDescription = "보험금 청구서류 조회 정보를 조회합니다.",
whenToUse = "고객·보험계약 업무에서 보험금 청구서류 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "보험금 청구서류 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"보험금 청구서류 조회 정보를 보여줘", "보험금 청구서류 조회 결과를 확인해줘", "현재 보험금 청구서류 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"pro", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
ProductToolResponse getClaimDocuments(ProductToolRequest request);
@McpTool(name = "pro_claim_payment", title = "보험금 지급내역 조회", description = "보험금 지급내역 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "pro",
mappingId = "DIRECT_PRO_CLAIM_PAYMENT",
functionDescription = "보험금 지급내역 조회 정보를 조회합니다.",
whenToUse = "고객·보험계약 업무에서 보험금 지급내역 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "보험금 지급내역 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"보험금 지급내역 조회 정보를 보여줘", "보험금 지급내역 조회 결과를 확인해줘", "현재 보험금 지급내역 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"pro", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
ProductToolResponse getClaimPayment(ProductToolRequest request);
@McpTool(name = "pro_claim_accident", title = "보험사고 정보 조회", description = "보험사고 정보 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "pro",
mappingId = "DIRECT_PRO_CLAIM_ACCIDENT",
functionDescription = "보험사고 정보 조회 정보를 조회합니다.",
whenToUse = "고객·보험계약 업무에서 보험사고 정보 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "보험사고 정보 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"보험사고 정보 조회 정보를 보여줘", "보험사고 정보 조회 결과를 확인해줘", "현재 보험사고 정보 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"pro", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
ProductToolResponse getClaimAccident(ProductToolRequest request);
@McpTool(name = "pro_claim_beneficiary", title = "보험금 수익자 조회", description = "보험금 수익자 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "pro",
mappingId = "DIRECT_PRO_CLAIM_BENEFICIARY",
functionDescription = "보험금 수익자 조회 정보를 조회합니다.",
whenToUse = "고객·보험계약 업무에서 보험금 수익자 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "보험금 수익자 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"보험금 수익자 조회 정보를 보여줘", "보험금 수익자 조회 결과를 확인해줘", "현재 보험금 수익자 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"pro", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
ProductToolResponse getClaimBeneficiary(ProductToolRequest request);
@McpTool(name = "pro_claim_contact", title = "보험금 청구 담당자 조회", description = "보험금 청구 담당자 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "pro",
mappingId = "DIRECT_PRO_CLAIM_CONTACT",
functionDescription = "보험금 청구 담당자 조회 정보를 조회합니다.",
whenToUse = "고객·보험계약 업무에서 보험금 청구 담당자 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "보험금 청구 담당자 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"보험금 청구 담당자 조회 정보를 보여줘", "보험금 청구 담당자 조회 결과를 확인해줘", "현재 보험금 청구 담당자 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"pro", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
ProductToolResponse getClaimContact(ProductToolRequest request);
}

View File

@@ -1,170 +0,0 @@
package io.shinhanlife.dat.mcc.biz.pro.usecase;
import io.shinhanlife.dat.lib.annotation.GrowToolHint;
import io.shinhanlife.dat.mcc.biz.pro.dto.ProductToolRequest;
import io.shinhanlife.dat.mcc.biz.pro.dto.ProductToolResponse;
import org.springaicommunity.mcp.annotation.McpTool;
public interface ContractInquiryUseCase {
@McpTool(name = "pro_contract_list", title = "보험계약 목록 조회", description = "보험계약 목록 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "pro",
mappingId = "DIRECT_PRO_CONTRACT_LIST",
functionDescription = "보험계약 목록 조회 정보를 조회합니다.",
whenToUse = "고객·보험계약 업무에서 보험계약 목록 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "보험계약 목록 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"보험계약 목록 조회 정보를 보여줘", "보험계약 목록 조회 결과를 확인해줘", "현재 보험계약 목록 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"pro", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
ProductToolResponse getContractList(ProductToolRequest request);
@McpTool(name = "pro_contract_detail", title = "보험계약 상세 조회", description = "보험계약 상세 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "pro",
mappingId = "DIRECT_PRO_CONTRACT_DETAIL",
functionDescription = "보험계약 상세 조회 정보를 조회합니다.",
whenToUse = "고객·보험계약 업무에서 보험계약 상세 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "보험계약 상세 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"보험계약 상세 조회 정보를 보여줘", "보험계약 상세 조회 결과를 확인해줘", "현재 보험계약 상세 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"pro", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
ProductToolResponse getContractDetail(ProductToolRequest request);
@McpTool(name = "pro_contract_coverage", title = "보험계약 보장내역 조회", description = "보험계약 보장내역 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "pro",
mappingId = "DIRECT_PRO_CONTRACT_COVERAGE",
functionDescription = "보험계약 보장내역 조회 정보를 조회합니다.",
whenToUse = "고객·보험계약 업무에서 보험계약 보장내역 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "보험계약 보장내역 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"보험계약 보장내역 조회 정보를 보여줘", "보험계약 보장내역 조회 결과를 확인해줘", "현재 보험계약 보장내역 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"pro", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
ProductToolResponse getContractCoverage(ProductToolRequest request);
@McpTool(name = "pro_contract_premium", title = "보험계약 보험료 조회", description = "보험계약 보험료 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "pro",
mappingId = "DIRECT_PRO_CONTRACT_PREMIUM",
functionDescription = "보험계약 보험료 조회 정보를 조회합니다.",
whenToUse = "고객·보험계약 업무에서 보험계약 보험료 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "보험계약 보험료 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"보험계약 보험료 조회 정보를 보여줘", "보험계약 보험료 조회 결과를 확인해줘", "현재 보험계약 보험료 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"pro", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
ProductToolResponse getContractPremium(ProductToolRequest request);
@McpTool(name = "pro_contract_payment_status", title = "보험료 납입상태 조회", description = "보험료 납입상태 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "pro",
mappingId = "DIRECT_PRO_CONTRACT_PAYMENT_STATUS",
functionDescription = "보험료 납입상태 조회 정보를 조회합니다.",
whenToUse = "고객·보험계약 업무에서 보험료 납입상태 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "보험료 납입상태 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"보험료 납입상태 조회 정보를 보여줘", "보험료 납입상태 조회 결과를 확인해줘", "현재 보험료 납입상태 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"pro", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
ProductToolResponse getContractPaymentStatus(ProductToolRequest request);
@McpTool(name = "pro_contract_beneficiary", title = "보험계약 수익자 조회", description = "보험계약 수익자 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "pro",
mappingId = "DIRECT_PRO_CONTRACT_BENEFICIARY",
functionDescription = "보험계약 수익자 조회 정보를 조회합니다.",
whenToUse = "고객·보험계약 업무에서 보험계약 수익자 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "보험계약 수익자 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"보험계약 수익자 조회 정보를 보여줘", "보험계약 수익자 조회 결과를 확인해줘", "현재 보험계약 수익자 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"pro", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
ProductToolResponse getContractBeneficiary(ProductToolRequest request);
@McpTool(name = "pro_contract_surrender_value", title = "보험계약 해지환급금 조회", description = "보험계약 해지환급금 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "pro",
mappingId = "DIRECT_PRO_CONTRACT_SURRENDER_VALUE",
functionDescription = "보험계약 해지환급금 조회 정보를 조회합니다.",
whenToUse = "고객·보험계약 업무에서 보험계약 해지환급금 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "보험계약 해지환급금 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"보험계약 해지환급금 조회 정보를 보여줘", "보험계약 해지환급금 조회 결과를 확인해줘", "현재 보험계약 해지환급금 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"pro", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
ProductToolResponse getContractSurrenderValue(ProductToolRequest request);
@McpTool(name = "pro_contract_loan_status", title = "보험계약 대출현황 조회", description = "보험계약 대출현황 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "pro",
mappingId = "DIRECT_PRO_CONTRACT_LOAN_STATUS",
functionDescription = "보험계약 대출현황 조회 정보를 조회합니다.",
whenToUse = "고객·보험계약 업무에서 보험계약 대출현황 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "보험계약 대출현황 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"보험계약 대출현황 조회 정보를 보여줘", "보험계약 대출현황 조회 결과를 확인해줘", "현재 보험계약 대출현황 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"pro", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
ProductToolResponse getContractLoanStatus(ProductToolRequest request);
@McpTool(name = "pro_contract_rider_list", title = "보험계약 특약목록 조회", description = "보험계약 특약목록 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "pro",
mappingId = "DIRECT_PRO_CONTRACT_RIDER_LIST",
functionDescription = "보험계약 특약목록 조회 정보를 조회합니다.",
whenToUse = "고객·보험계약 업무에서 보험계약 특약목록 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "보험계약 특약목록 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"보험계약 특약목록 조회 정보를 보여줘", "보험계약 특약목록 조회 결과를 확인해줘", "현재 보험계약 특약목록 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"pro", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
ProductToolResponse getContractRiderList(ProductToolRequest request);
}

View File

@@ -1,152 +0,0 @@
package io.shinhanlife.dat.mcc.biz.pro.usecase;
import io.shinhanlife.dat.lib.annotation.GrowToolHint;
import io.shinhanlife.dat.mcc.biz.pro.dto.ProductToolRequest;
import io.shinhanlife.dat.mcc.biz.pro.dto.ProductToolResponse;
import org.springaicommunity.mcp.annotation.McpTool;
public interface CustomerInquiryUseCase {
@McpTool(name = "pro_customer_profile", title = "고객 기본정보 조회", description = "고객 기본정보 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "pro",
mappingId = "DIRECT_PRO_CUSTOMER_PROFILE",
functionDescription = "고객 기본정보 조회 정보를 조회합니다.",
whenToUse = "고객·보험계약 업무에서 고객 기본정보 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "고객 기본정보 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"고객 기본정보 조회 정보를 보여줘", "고객 기본정보 조회 결과를 확인해줘", "현재 고객 기본정보 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"pro", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
ProductToolResponse getCustomerProfile(ProductToolRequest request);
@McpTool(name = "pro_customer_contact", title = "고객 연락처 조회", description = "고객 연락처 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "pro",
mappingId = "DIRECT_PRO_CUSTOMER_CONTACT",
functionDescription = "고객 연락처 조회 정보를 조회합니다.",
whenToUse = "고객·보험계약 업무에서 고객 연락처 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "고객 연락처 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"고객 연락처 조회 정보를 보여줘", "고객 연락처 조회 결과를 확인해줘", "현재 고객 연락처 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"pro", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
ProductToolResponse getCustomerContact(ProductToolRequest request);
@McpTool(name = "pro_customer_consent", title = "고객 동의정보 조회", description = "고객 동의정보 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "pro",
mappingId = "DIRECT_PRO_CUSTOMER_CONSENT",
functionDescription = "고객 동의정보 조회 정보를 조회합니다.",
whenToUse = "고객·보험계약 업무에서 고객 동의정보 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "고객 동의정보 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"고객 동의정보 조회 정보를 보여줘", "고객 동의정보 조회 결과를 확인해줘", "현재 고객 동의정보 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"pro", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
ProductToolResponse getCustomerConsent(ProductToolRequest request);
@McpTool(name = "pro_customer_identity", title = "고객 본인확인정보 조회", description = "고객 본인확인정보 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "pro",
mappingId = "DIRECT_PRO_CUSTOMER_IDENTITY",
functionDescription = "고객 본인확인정보 조회 정보를 조회합니다.",
whenToUse = "고객·보험계약 업무에서 고객 본인확인정보 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "고객 본인확인정보 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"고객 본인확인정보 조회 정보를 보여줘", "고객 본인확인정보 조회 결과를 확인해줘", "현재 고객 본인확인정보 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"pro", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
ProductToolResponse getCustomerIdentity(ProductToolRequest request);
@McpTool(name = "pro_customer_address", title = "고객 주소정보 조회", description = "고객 주소정보 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "pro",
mappingId = "DIRECT_PRO_CUSTOMER_ADDRESS",
functionDescription = "고객 주소정보 조회 정보를 조회합니다.",
whenToUse = "고객·보험계약 업무에서 고객 주소정보 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "고객 주소정보 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"고객 주소정보 조회 정보를 보여줘", "고객 주소정보 조회 결과를 확인해줘", "현재 고객 주소정보 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"pro", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
ProductToolResponse getCustomerAddress(ProductToolRequest request);
@McpTool(name = "pro_customer_occupation", title = "고객 직업정보 조회", description = "고객 직업정보 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "pro",
mappingId = "DIRECT_PRO_CUSTOMER_OCCUPATION",
functionDescription = "고객 직업정보 조회 정보를 조회합니다.",
whenToUse = "고객·보험계약 업무에서 고객 직업정보 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "고객 직업정보 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"고객 직업정보 조회 정보를 보여줘", "고객 직업정보 조회 결과를 확인해줘", "현재 고객 직업정보 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"pro", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
ProductToolResponse getCustomerOccupation(ProductToolRequest request);
@McpTool(name = "pro_customer_family", title = "고객 가족정보 조회", description = "고객 가족정보 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "pro",
mappingId = "DIRECT_PRO_CUSTOMER_FAMILY",
functionDescription = "고객 가족정보 조회 정보를 조회합니다.",
whenToUse = "고객·보험계약 업무에서 고객 가족정보 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "고객 가족정보 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"고객 가족정보 조회 정보를 보여줘", "고객 가족정보 조회 결과를 확인해줘", "현재 고객 가족정보 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"pro", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
ProductToolResponse getCustomerFamily(ProductToolRequest request);
@McpTool(name = "pro_customer_risk_grade", title = "고객 위험등급 조회", description = "고객 위험등급 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "pro",
mappingId = "DIRECT_PRO_CUSTOMER_RISK_GRADE",
functionDescription = "고객 위험등급 조회 정보를 조회합니다.",
whenToUse = "고객·보험계약 업무에서 고객 위험등급 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "고객 위험등급 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"고객 위험등급 조회 정보를 보여줘", "고객 위험등급 조회 결과를 확인해줘", "현재 고객 위험등급 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"pro", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
ProductToolResponse getCustomerRiskGrade(ProductToolRequest request);
}

View File

@@ -1,66 +0,0 @@
package io.shinhanlife.dat.mcc.biz.pro.usecase.impl;
import io.shinhanlife.dat.mcc.biz.pro.dto.ProductToolRequest;
import io.shinhanlife.dat.mcc.biz.pro.dto.ProductToolResponse;
import io.shinhanlife.dat.mcc.biz.pro.usecase.ClaimInquiryUseCase;
import java.util.List;
import org.springframework.stereotype.Service;
@Service
public class ClaimInquiryUseCaseImpl implements ClaimInquiryUseCase {
@Override
public ProductToolResponse getClaimEligibility(ProductToolRequest request) {
return mockResponse(request, "pro_claim_eligibility", "보험금 청구 가능여부 조회");
}
@Override
public ProductToolResponse getClaimHistory(ProductToolRequest request) {
return mockResponse(request, "pro_claim_history", "보험금 청구이력 조회");
}
@Override
public ProductToolResponse getClaimStatus(ProductToolRequest request) {
return mockResponse(request, "pro_claim_status", "보험금 청구상태 조회");
}
@Override
public ProductToolResponse getClaimDocuments(ProductToolRequest request) {
return mockResponse(request, "pro_claim_documents", "보험금 청구서류 조회");
}
@Override
public ProductToolResponse getClaimPayment(ProductToolRequest request) {
return mockResponse(request, "pro_claim_payment", "보험금 지급내역 조회");
}
@Override
public ProductToolResponse getClaimAccident(ProductToolRequest request) {
return mockResponse(request, "pro_claim_accident", "보험사고 정보 조회");
}
@Override
public ProductToolResponse getClaimBeneficiary(ProductToolRequest request) {
return mockResponse(request, "pro_claim_beneficiary", "보험금 수익자 조회");
}
@Override
public ProductToolResponse getClaimContact(ProductToolRequest request) {
return mockResponse(request, "pro_claim_contact", "보험금 청구 담당자 조회");
}
private ProductToolResponse mockResponse(ProductToolRequest request, String toolName, String title) {
ProductToolResponse response = new ProductToolResponse();
response.setToolName(toolName);
response.setCategory("PRO");
response.setReferenceId(request != null && hasText(request.getSubjectId()) ? request.getSubjectId() : "CUST-000001");
response.setStatus("정상");
response.setSummary(title + " 결과");
response.setAsOfDate(request != null && hasText(request.getQueryDate()) ? request.getQueryDate() : "2026-08-14");
response.setDetails(List.of(title + " 모의 상세정보", "외부 시스템을 변경하지 않는 조회 결과"));
return response;
}
private boolean hasText(String value) {
return value != null && !value.isBlank();
}
}

View File

@@ -1,71 +0,0 @@
package io.shinhanlife.dat.mcc.biz.pro.usecase.impl;
import io.shinhanlife.dat.mcc.biz.pro.dto.ProductToolRequest;
import io.shinhanlife.dat.mcc.biz.pro.dto.ProductToolResponse;
import io.shinhanlife.dat.mcc.biz.pro.usecase.ContractInquiryUseCase;
import java.util.List;
import org.springframework.stereotype.Service;
@Service
public class ContractInquiryUseCaseImpl implements ContractInquiryUseCase {
@Override
public ProductToolResponse getContractList(ProductToolRequest request) {
return mockResponse(request, "pro_contract_list", "보험계약 목록 조회");
}
@Override
public ProductToolResponse getContractDetail(ProductToolRequest request) {
return mockResponse(request, "pro_contract_detail", "보험계약 상세 조회");
}
@Override
public ProductToolResponse getContractCoverage(ProductToolRequest request) {
return mockResponse(request, "pro_contract_coverage", "보험계약 보장내역 조회");
}
@Override
public ProductToolResponse getContractPremium(ProductToolRequest request) {
return mockResponse(request, "pro_contract_premium", "보험계약 보험료 조회");
}
@Override
public ProductToolResponse getContractPaymentStatus(ProductToolRequest request) {
return mockResponse(request, "pro_contract_payment_status", "보험료 납입상태 조회");
}
@Override
public ProductToolResponse getContractBeneficiary(ProductToolRequest request) {
return mockResponse(request, "pro_contract_beneficiary", "보험계약 수익자 조회");
}
@Override
public ProductToolResponse getContractSurrenderValue(ProductToolRequest request) {
return mockResponse(request, "pro_contract_surrender_value", "보험계약 해지환급금 조회");
}
@Override
public ProductToolResponse getContractLoanStatus(ProductToolRequest request) {
return mockResponse(request, "pro_contract_loan_status", "보험계약 대출현황 조회");
}
@Override
public ProductToolResponse getContractRiderList(ProductToolRequest request) {
return mockResponse(request, "pro_contract_rider_list", "보험계약 특약목록 조회");
}
private ProductToolResponse mockResponse(ProductToolRequest request, String toolName, String title) {
ProductToolResponse response = new ProductToolResponse();
response.setToolName(toolName);
response.setCategory("PRO");
response.setReferenceId(request != null && hasText(request.getSubjectId()) ? request.getSubjectId() : "CUST-000001");
response.setStatus("정상");
response.setSummary(title + " 결과");
response.setAsOfDate(request != null && hasText(request.getQueryDate()) ? request.getQueryDate() : "2026-08-14");
response.setDetails(List.of(title + " 모의 상세정보", "외부 시스템을 변경하지 않는 조회 결과"));
return response;
}
private boolean hasText(String value) {
return value != null && !value.isBlank();
}
}

View File

@@ -1,66 +0,0 @@
package io.shinhanlife.dat.mcc.biz.pro.usecase.impl;
import io.shinhanlife.dat.mcc.biz.pro.dto.ProductToolRequest;
import io.shinhanlife.dat.mcc.biz.pro.dto.ProductToolResponse;
import io.shinhanlife.dat.mcc.biz.pro.usecase.CustomerInquiryUseCase;
import java.util.List;
import org.springframework.stereotype.Service;
@Service
public class CustomerInquiryUseCaseImpl implements CustomerInquiryUseCase {
@Override
public ProductToolResponse getCustomerProfile(ProductToolRequest request) {
return mockResponse(request, "pro_customer_profile", "고객 기본정보 조회");
}
@Override
public ProductToolResponse getCustomerContact(ProductToolRequest request) {
return mockResponse(request, "pro_customer_contact", "고객 연락처 조회");
}
@Override
public ProductToolResponse getCustomerConsent(ProductToolRequest request) {
return mockResponse(request, "pro_customer_consent", "고객 동의정보 조회");
}
@Override
public ProductToolResponse getCustomerIdentity(ProductToolRequest request) {
return mockResponse(request, "pro_customer_identity", "고객 본인확인정보 조회");
}
@Override
public ProductToolResponse getCustomerAddress(ProductToolRequest request) {
return mockResponse(request, "pro_customer_address", "고객 주소정보 조회");
}
@Override
public ProductToolResponse getCustomerOccupation(ProductToolRequest request) {
return mockResponse(request, "pro_customer_occupation", "고객 직업정보 조회");
}
@Override
public ProductToolResponse getCustomerFamily(ProductToolRequest request) {
return mockResponse(request, "pro_customer_family", "고객 가족정보 조회");
}
@Override
public ProductToolResponse getCustomerRiskGrade(ProductToolRequest request) {
return mockResponse(request, "pro_customer_risk_grade", "고객 위험등급 조회");
}
private ProductToolResponse mockResponse(ProductToolRequest request, String toolName, String title) {
ProductToolResponse response = new ProductToolResponse();
response.setToolName(toolName);
response.setCategory("PRO");
response.setReferenceId(request != null && hasText(request.getSubjectId()) ? request.getSubjectId() : "CUST-000001");
response.setStatus("정상");
response.setSummary(title + " 결과");
response.setAsOfDate(request != null && hasText(request.getQueryDate()) ? request.getQueryDate() : "2026-08-14");
response.setDetails(List.of(title + " 모의 상세정보", "외부 시스템을 변경하지 않는 조회 결과"));
return response;
}
private boolean hasText(String value) {
return value != null && !value.isBlank();
}
}

View File

@@ -1,61 +0,0 @@
package io.shinhanlife.dat.mcc.biz.pro.usecase.impl;
import io.shinhanlife.glow.communication.dto.Transfer;
import org.springframework.stereotype.Service;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
/**
* @package io.shinhanlife.dat.mcc.biz.pro.usecase.impl
* @className PersonalCustomerDetailInquiryUseCaseImpl
* @description AX HUB 시스템 처리 클래스
* @author jade
* @create 2026.08.25
* <pre>
* ---------- 개정이력 ----------
* 수정일 수정자 수정내용
* ---------- -------- ---------------------------
* 2026.08.25 jade 최초생성
*
* </pre>
*/
@Slf4j
@Service
@RequiredArgsConstructor
public class PersonalCustomerDetailInquiryUseCaseImpl implements PersonalCustomerDetailInquiryUseCase {
private final MciNcscClient mci;
private final PersonalCustomerDetailInquiryConverter converter;
@Override
public PersonalCustomerDetailInquiryResponse execute(PersonalCustomerDetailInquiryRequest req) {
log.info("[MCI Tool] {} 요청 수신.", "pro_personal_inquiry");
try {
// MapStruct를 이용한 자동 매핑 (AI DTO -> MCI DTO)
DATNCSO00001_I mciReq = converter.toLegacyRequest(req);
Transfer< DATNCSO00001_O> resTransfer = mci.callTo(
" DATNCSO00001",
null,
mciReq,
DATNCSO00001_O.class
);
PersonalCustomerDetailInquiryResponse response = new PersonalCustomerDetailInquiryResponse();
if (resTransfer.getBody() != null) {
response = converter.toResponse(resTransfer.getBody());
}
response.setResultCode("SUCCESS");
response.setResultMessage(resTransfer.getBody() != null
? "MCI call completed."
: "MCI call completed without a response body.");
return response;
} catch (Exception e) {
log.error("[MCI Tool] 연동 중 오류 발생: {}", e.getMessage(), e);
PersonalCustomerDetailInquiryResponse response = new PersonalCustomerDetailInquiryResponse();
response.setResultCode("ERROR");
response.setResultMessage(e.getMessage() != null ? e.getMessage() : "Unknown error");
return response;
}
}
}

View File

@@ -7,8 +7,7 @@ spring:
- classpath:glow/application-glow.yml
- classpath:glow/application-glow-local.yml
datasource:
url: jdbc:p6spy:h2:mem:testdb;DB_CLOSE_DELAY=-1;
driverClassName: com.p6spy.engine.spy.P6SpyDriver
url: jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1;
username: sa
password: password
h2: