MCP 트랜스포트 방식 선택

상태

승인

후보군

방안설명
SSE (WebMVC) — spring-ai-starter-mcp-server-webmvc/mcp/sse 엔드포인트 자동 생성. 기존 Spring MVC 스택과 동일 서버(:8080)에서 동작
WebSocket (WebFlux) — spring-ai-starter-mcp-server-webflux리액티브 스택 기반. 별도 WebFlux 설정 필요
stdio표준 입출력 기반. 로컬 프로세스 간 통신 전용

결정

spring-ai-starter-mcp-server-webmvc (SSE 트랜스포트)를 채택한다. stock-mcp.json"url": "http://localhost:8080/mcp/sse"로 연결한다.

결정 이유

  • 기존 Spring MVC 스택과 동일 서버(:8080)에서 동작해 별도 포트 불필요.
  • claude -p --mcp-configtype: sse로 HTTP SSE 엔드포인트에 연결 가능하다.
  • Claude Desktop 등 외부 MCP 클라이언트도 SSE 엔드포인트로 바로 연결할 수 있다.

검토 대안

방안기각 이유
WebSocket (WebFlux)기존 Spring MVC와 충돌. WebFlux 스택 전환 비용 높음
stdio웹 환경에서 사용 불가. 프로세스 간 통신 전용이라 네트워크 클라이언트 연결 불가

트레이드 오프

  • 득: 기존 MVC 스택 재사용. 단일 포트(:8080)에서 REST API + MCP SSE 동시 제공.
  • 실: SSE는 단방향(서버→클라이언트) 통신. MCP 클라이언트→서버 메시지는 별도 HTTP POST로 처리해야 한다.