stdio는 죽지 않았다: MCP 원격 전송이 Streamable HTTP로 수렴한 이유
MCP 전송 논쟁이 한 라운드 정리됐다. 초기의 HTTP+SSE 듀얼 엔드포인트 방식은 폐기되고 단일 /mcp 엔드포인트로 POST·스트리밍을 처리하는 Streamable HTTP가 원격 표준으로 자리잡았다. SSE 방식이 연결 상태를 서버가 길게 들고 있어야 해서 서버리스·로드밸런서 환경과 충돌했던 게 직접 원인이다. Streamable HTTP는 요청별로 일반 JSON 응답을 줄지 text/event-stream을 줄지 서버가 선택하고, Mcp-Session-Id 헤더로 세션을 잇기 때문에 스테이트리스 워커에도 얹기 쉽다. 그럼에도 stdio는 사라지지 않았다. 로컬 파일·DB·CLI에 붙는 데스크톱 서버에서는 네트워크 왕복도 인증 핸드셰이크도 없는 stdio가 여전히 가장 단순하고 빠르며, 원격은 OAuth 2.1 리소스 서버로 보호되는 멀티테넌트 SaaS형 서버의 몫으로 역할이 갈렸다.
실무에선 'stdio 로컬 / Streamable HTTP 원격' 이원 전략이 정답에 가깝다. Cloudflare Workers나 Vercel에 MCP 서버를 올릴 거면 SSE 예제는 버리고 처음부터 Streamable HTTP + 세션 헤더로 설계해야 재작성을 면한다.
원문 출처
Model Context Protocol Specification