요약:
Anthropic은 Model Context Protocol(MCP)에 대한 업데이트를 발표하며 새로운 'Streamable HTTP' 전송 방식을 도입했습니다. 이 방식은 기존의 HTTP+SSE 접근 방식을 대체하며, 클라이언트-서버 간의 메시지 전송을 더 유연하고 사용자 친화적으로 만듭니다. 주요 변경 사항으로는 /sse 엔드포인트 제거, 통합된 /message 엔드포인트 사용, 필요에 따라 SSE 스트림으로의 동적 업그레이드 등이 있습니다. 이 업데이트는 서버리스 아키텍처에 적합하고, 클라우드 플랫폼과의 호환성을 높이며, 서버 리소스 활용도를 개선합니다.
출처:
https://www.aibase.com/news/16375
번역
Anthropic은 오늘 Model Context Protocol(MCP)에 대한 주요 업데이트를 발표하여 기존 HTTP+SSE 접근 방식을 대체하는 새로운 "Streamable HTTP" 전송 방식을 도입했습니다. 이 혁신은 MCP 원격 전송의 주요 한계를 완전히 해결하면서도 원래의 장점을 유지합니다.
이 업데이트는 기본적으로 MCP 데이터 전송 메커니즘을 재구성하여 프로토콜을 보다 유연하고 사용자 친화적이며 호환 가능하게 만듭니다. 예를 들어, 이전 MCP 전송은 지속적인 연결이 필요한 고객 서비스 전화와 같았지만(SSE는 지속적인 연결이 필요함), 새로운 접근 방식은 필요에 따라 메시지를 보내고 답변을 기다리는 것과 비슷합니다(일반 HTTP 요청이지만 선택적 스트리밍이 있음).
이 업데이트에는 핵심 변경 사항 5가지가 포함됩니다. 첫째, 전용 /sse 엔드포인트가 제거되었습니다. 서버는 더 이상 별도의 SSE(Server-Sent Events) 엔드포인트를 유지하지 않습니다. 둘째, 모든 클라이언트-서버 메시지는 통합 /message 엔드포인트를 통해 전송되며 더 이상 /sse에 의존하지 않습니다. 셋째, 서버는 필요에 따라 HTTP 요청을 SSE 스트림으로 동적으로 업그레이드하여 알림이나 요청을 보낼 수 있습니다. 넷째, 클라이언트는 Header를 통해 Mcp-Session-Id를 제공하고 서버는 세션 정보를 저장할지 여부를 결정할 수 있습니다. 마지막으로, 완전한 무상태 서버 작업을 지원하여 지속적인 연결이 필요 없습니다.
이러한 변경의 주요 이유는 현재 HTTP+SSE 전송의 몇 가지 단점입니다. 연결 해제 후 연결 재개가 부족하여 클라이언트가 전체 세션을 다시 시작해야 합니다. 서버는 지속적인 SSE 연결을 지원하기 위해 고가용성을 유지해야 합니다. SSE는 단방향 통신(서버에서 클라이언트로)만 지원하여 유연한 양방향 통신을 방해합니다. 새로운 "Streamable HTTP" 전송 방식은 이러한 문제를 성공적으로 해결하여 시스템 확장성과 유연성을 크게 개선합니다.
개발자에게 이 업데이트는 여러 가지 편의성을 제공합니다. MCP 서버 구현이 간단해져 MCP를 지원하는 데 일반 HTTP 서버만 필요하므로 전용 SSE 서버가 필요 없습니다. 지속적인 연결을 지원하지 않는 Vercel, Cloudflare, AWS Lambda와 같은 클라우드 플랫폼에 배포하기가 더 쉬워집니다. 새로운 방식인 표준 HTTP는 CDN, API 게이트웨이, 로드 밸런서와 완벽하게 통합되어 호환성이 크게 개선되고, 확장성이 크게 향상되어 상태 비저장 작업을 지원하고 필요 시 SSE로 동적으로 업그레이드됩니다.
인프라와 서버 아키텍처 측면에서도 새로운 접근 방식은 혁신적인 변화를 가져옵니다. 이제 상태 비저장 서버가 가능해져 서버가 클라이언트 세션 정보를 지속적으로 저장할 필요가 없습니다. 마이크로서비스 아키텍처에 더 적합하여 REST API, GraphQL, 로드 밸런서, CDN과 쉽게 통합됩니다. 또한 요청 처리 후 리소스가 해제되므로 서버 리소스 사용률이 더 높아 동시성이 높은 시나리오에 적합합니다.
흥미롭게도, SSE의 문제에도 불구하고 Anthropic은 WebSocket을 대안으로 선택하지 않았습니다. 그 이유는 다음과 같습니다. WebSocket은 지속적인 연결이 필요한 반면, MCP는 기본적으로 각 요청이 독립적으로 실행되는 RPC와 유사한 모델을 사용합니다. WebSocket은 HTTP 헤더 정보를 전송할 수 없어 인증 프로세스가 복잡합니다. WebSocket은 GET 업그레이드만 지원하고 POST는 지원하지 않아 MCP의 기본 POST 요청 사용과 호환되지 않습니다. 따라서 SSE나 WebSocket을 의무화하는 대신 HTTP를 계속 사용하지만 필요에 따라 서버에 SSE로 업그레이드할 수 있는 기능을 제공하기로 결정했습니다.
전반적으로 이 업데이트는 MCP를 더 가볍고 유연하게 만들어 서버가 스트리밍을 지원할지 여부를 자율적으로 결정할 수 있게 해줍니다. 배포 프로세스가 상당히 간소화되어 서버리스 아키텍처에 적합해지고, 호환성이 크게 개선되어 다양한 네트워크 인프라와 원활하게 작동하며, 서버 리소스 활용도가 높아져 대규모 동시 요청을 지원합니다.
이러한 혁신적인 변화로 인해 MCP 서버는 더 간단하고, 효율적이며, 더 유연해져 대규모 분산 배포를 지원하고, SSE의 한계를 완전히 없애고, AI 모델과 애플리케이션 간 통신의 새로운 장을 열었습니다.
프로젝트 주소:
https://github.com/modelcontextprotocol/specation/pull/206
[광고] STEEM 개발자 커뮤니티에 참여 하시면, 다양한 혜택을 받을 수 있습니다.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Upvoted! Thank you for supporting witness @jswit.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit