[STK6-03] 관심종목·목표가 알림 MCP Tool
작업 내용 (설계 의도)
변경 사항
presentation/ai/WatchlistMcpTools.kt와 AlertMcpTools.kt를 신규 생성한다. 기존 관심종목·알림 UseCase를 @Tool로 래핑한다. UseCase 로직 변경 없음.
선행 티켓: STK6-01
다이어그램
처리 흐름
sequenceDiagram participant LLM as Claude participant W as WatchlistMcpTools participant A as AlertMcpTools participant UC as UseCases LLM->>W: addToWatchlist("005930") W->>UC: AddWatchlistItemUseCase.execute UC-->>W: WatchlistItemResponse LLM->>A: createPriceAlert("005930", "ABOVE", 80000) A->>UC: CreatePriceAlertUseCase.execute UC-->>A: AlertResponse
클래스 의존
flowchart LR WatchlistMcpTools -->|delegates| AddWatchlistItemUseCase WatchlistMcpTools -->|delegates| RemoveWatchlistItemUseCase WatchlistMcpTools -->|delegates| ListWatchlistUseCase AlertMcpTools -->|delegates| CreatePriceAlertUseCase AlertMcpTools -->|delegates| DeletePriceAlertUseCase AlertMcpTools -->|delegates| ListPriceAlertsUseCase
테스트 케이스
addToWatchlist("005930")호출 시AddWatchlistItemUseCase에 위임한다.removeFromWatchlist("005930")호출 시 예외 없이 삭제 위임한다.listWatchlist()호출 시 빈 목록에서도 정상 응답한다.createPriceAlert("005930", "ABOVE", 80000)호출 시 AlertDirection.ABOVE로 변환해 위임한다.- 존재하지 않는 알림 ID 삭제 시 예외를 LLM이 이해할 수 있는 메시지로 반환한다.