피드로 돌아가기
Building the Hugging Face MCP Server
Hugging Face BlogHugging Face Blog
Backend

Hugging Face가 Model Context Protocol(MCP) 서버를 구축하면서 Streamable HTTP 전송 방식을 선택해 원격 접근 가능한 AI 어시스턴트 통합 플랫폼 제공

Building the Hugging Face MCP Server

2025년 7월 10일11intermediate

Context

AI 어시스턴트들이 Hugging Face Hub에 접근하려면 복잡한 다운로드와 설정이 필요했으며, 사용자들이 자신의 요구에 맞게 서버를 커스터마이징할 수 없었다. MCP는 November 2024 출시 후 9개월 동안 3번의 프로토콜 수정을 거쳤으며, SSE Transport 대체, 인증 메커니즘 도입 등의 변화로 클라이언트 호환성 관리가 복잡해졌다.

Technical Solution

  • 전송 방식 선택: STDIO(로컬), HTTP with SSE(deprecated), Streamable HTTP(현재 선택) 세 가지 중 원격 접근 가능한 Streamable HTTP로 결정
  • 통신 패턴 구현: Direct Response(단순 Request/Response), Request Scoped Streams(진행 상황 업데이트용), Server Push Streams(장기 SSE 연결) 3가지 패턴 중 직무 특성에 맞게 선택 가능하도록 구현
  • 상태 관리 방식 제공: Stateless(수평 확장 용이) 또는 Stateful(mcp-session-id로 클라이언트 컨텍스트 유지) 두 가지 옵션 지원
  • MCP 기능별 패턴 매핑: Tools/Prompts/Resources는 모든 패턴에서 지원, Sampling/Elicitation은 Server Push 또는 Request Scoped에서만 지원, Resource Subscriptions는 Server Push에서만 지원
  • 다중 배포 옵션 제공: STDIO, SSE, Streamable HTTP를 모두 지원하며 Direct Response 및 Server Push 모드 선택 가능하도록 오픈소스화
  • 관찰성 구축: 클라이언트별 연결 관리 방식을 모니터링할 수 있는 내장 관찰성 대시보드 제공

Impact

2025년 7월 첫 주에 164개의 서로 다른 클라이언트가 서버에 접근했으며, 모든 클라이언트의 약 절반이 mcp-remote를 다리로 사용했다. 제어 메시지 대 도구 호출의 비율은 약 100:1이다.

Key Takeaway

원격 MCP 서버를 구축할 때는 클라이언트 연결 방식(Stateless vs Stateful), 통신 패턴(Direct vs Streamed), 필요한 MCP 기능 집합 간의 트레이드오프를 명확히 파악하고, 다양한 클라이언트 버전과 프로토콜 개정을 수용할 수 있도록 여러 전송 옵션을 동시에 지원하는 것이 중요하다.


MCP 서버를 개발하는 엔지니어들은 Streamable HTTP의 Direct Response 모드로 시작해 수평 확장 가능성을 확보한 후, 필요에 따라 Server Push Streams로 업그레이드하는 점진적 접근 방식을 취하면 초기 구현 복잡도를 낮추면서도 향후 요구사항 변화에 대응할 수 있다.

원문 읽기