[STK6-02] 종목 조회·검색·시세 MCP Tool
작업 내용 (설계 의도)
변경 사항
presentation/ai/StockMcpTools.kt를 신규 생성한다. 기존 ListStocksUseCase, SearchStocksUseCase, GetStockPricesUseCase를 주입받아 @Tool 메서드로 래핑한다. UseCase 로직을 변경하지 않는다.
선행 티켓: STK6-01 (Spring AI 의존성 추가)
다이어그램
처리 흐름
sequenceDiagram participant LLM as Claude participant T as StockMcpTools participant UC as UseCase LLM->>T: searchStocks("삼성전자") T->>UC: SearchStocksUseCase.execute("삼성전자") UC-->>T: List<StockResponse> T-->>LLM: JSON 직렬화 결과
클래스 의존
flowchart LR StockMcpTools -->|delegates| ListStocksUseCase StockMcpTools -->|delegates| SearchStocksUseCase StockMcpTools -->|delegates| GetStockPricesUseCase
테스트 케이스
searchStocks("삼성전자")호출 시SearchStocksUseCase.execute("삼성전자")에 위임한다.listStocks(0, 20)호출 시ListStocksUseCase.execute(0, 20)에 위임한다.getStockPrices(listOf("005930", "035420"))호출 시 두 종목 시세를 포함한 Map을 반환한다.- UseCase가 빈 목록을 반환해도 Tool이 정상 응답한다.