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-config는type: sse로 HTTP SSE 엔드포인트에 연결 가능하다.- Claude Desktop 등 외부 MCP 클라이언트도 SSE 엔드포인트로 바로 연결할 수 있다.
검토 대안
| 방안 | 기각 이유 |
|---|---|
| WebSocket (WebFlux) | 기존 Spring MVC와 충돌. WebFlux 스택 전환 비용 높음 |
| stdio | 웹 환경에서 사용 불가. 프로세스 간 통신 전용이라 네트워크 클라이언트 연결 불가 |
트레이드 오프
- 득: 기존 MVC 스택 재사용. 단일 포트(:8080)에서 REST API + MCP SSE 동시 제공.
- 실: SSE는 단방향(서버→클라이언트) 통신. MCP 클라이언트→서버 메시지는 별도 HTTP POST로 처리해야 한다.