sparfenyuk/mcp-proxy
A bridge between Streamable HTTP and stdio MCP transports
해결하는 문제
mcp-proxy는 Model Context Protocol (MCP)의 다양한 서버 전송 프로토콜 간 전환을 가능하게 합니다. 특히 stdio만 지원하는 클라이언트가 SSE(Server-Sent Events) 또는 StreamableHTTP를 사용하는 원격 서버에 연결해야 할 때, 클라이언트와 서버 간의 통신 방식이 다를 경우의 호환성 문제를 해결합니다.
작동 방식
이 도구는 주로 두 가지 모드로 작동합니다:
- stdio → SSE/StreamableHTTP: 로컬 브리지 역할을 합니다. 클라이언트(예: Claude Desktop)는 stdio를 통해 프록시와 통신하고, 프록시는 해당 요청을 SSE 또는 StreamableHTTP를 통해 원격 MCP 서버로 전달합니다.
- SSE → stdio: 서버 역할을 합니다. 프록시는 네트워크 포트를 열어 원격 LLM 클라이언트의 SSE 요청을 수신하고, 해당 요청을 처리하기 위해 로컬 stdio 기반 MCP 서버를 생성합니다.
또한 "Named Servers" 기능을 지원하여, URL 경로에 따라 여러 개의 다른 stdio 서버로 요청을 라우팅할 수 있는 단일 프록시 인스턴스를 관리할 수 있습니다.
대상 사용자
리모트 서버에 연결하거나 로컬 도구를 리모트 클라이언트에 노출해야 하는 MCP 호환 LLM 클라이언트의 개발자 및 사용자. 특히 클라이언트나 서버의 기본 전송 지원이 제한된 경우에 유용합니다.
주요 특징
- 양방향 전송 전환: stdio → SSE/StreamableHTTP 및 SSE → stdio 모두 지원.
- Named Server 라우팅: 고유한 URL 경로(예:
/servers/fetch/sse)에서 여러 stdio 서버를 호스팅 가능. - 인증 지원: OAuth2(클라이언트 ID, 시크릿, 토큰 URL) 및 사용자 정의 HTTP 헤더를 통한 원격 연결용 내장 옵션.
- 유연한 배포: PyPI, GitHub, 또는 멀티플랫폼 Docker 컨테이너로 제공.
- CORS 구성: SSE 서버 모드에서 허용할 원본과 노출할 헤더를 지정 가능.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- Dispatch