MCP Proxy는 서로 다른 서버 통신 방식(트랜스포트) 간의 전환을 가능하게 해주는 유용한 도구입니다. 특히 Claude Desktop과 같은 AI 애플리케이션에서 stdio 의 로컬 기반의 MCP Server만 지원하기 때문에, 원격 서버와의 통신을 원활하게 하는 데 큰 도움이 됩니다.
MCP Proxy가 필요한 이유
MCP Proxy는 다음과 같은 상황에서 특히 유용합니다:
- Claude Desktop과 같은 클라이언트가 SSE(Server-Sent Events) 방식을 네이티브로 지원하지 않을 때
- 로컬 stdio 서버를 원격으로 접근 가능하게 만들고 싶을 때
- 여러 서버 간 통신 프로토콜을 통합하고 싶을 때
- 다양한 MCP(Model Context Protocol) 서버를 하나의 인터페이스로 관리하고 싶을 때
MCP Proxy는 두 가지 주요 모드를 지원합니다:
- stdio에서 SSE/StreamableHTTP로: 원격 SSE 서버에 연결하는 stdio 프록시 서버를 실행합니다.
- SSE에서 stdio로: 로컬 stdio 서버에 연결하는 SSE 서버를 노출합니다.

MCP Proxy 설치 방법
MCP Proxy는 여러 가지 방법으로 설치할 수 있습니다:
1. Smithery를 통한 설치 (Claude Desktop용)
Claude Desktop을 위해 자동으로 MCP Proxy를 설치하려면:
npx -y @smithery/cli install mcp-proxy --client claude
2. PyPI를 통한 설치
안정 버전은 PyPI 저장소에서 사용할 수 있습니다:
# 옵션 1: uv 사용 (권장)
uv tool install mcp-proxy
# 옵션 2: pipx 사용 (대안)
pipx install mcp-proxy
3. GitHub 저장소를 통한 설치 (최신 버전)
uv tool install git+https://github.com/sparfenyuk/mcp-proxy
4. 컨테이너로 설치
docker run -t ghcr.io/sparfenyuk/mcp-proxy:v0.3.2-alpine --help
MCP Proxy 사용 방법
1. stdio에서 SSE/StreamableHTTP로 모드
이 모드는 Claude Desktop과 같은 클라이언트가 원격 SSE 서버와 통신할 수 있게 해줍니다.
Claude Desktop 구성 예시:
{
"mcpServers": {
"mcp-proxy": {
"command": "mcp-proxy",
"args": [
"http://example.io/sse"
],
"env": {
"API_ACCESS_TOKEN": "access-token"
}
}
}
}
2. SSE에서 stdio로 모드
이 모드는 로컬 stdio 서버를 원격으로 접근 가능하게 만듭니다.
기본 사용법:
# 기본 MCP 서버를 프록시 뒤에서 시작
mcp-proxy uvx mcp-server-fetch
# 사용자 지정 포트로 MCP 서버 시작
mcp-proxy --port=8080 uvx mcp-server-fetch
# 사용자 지정 호스트 및 포트로 MCP 서버 시작
mcp-proxy --host=0.0.0.0 --port=8080 uvx mcp-server-fetch
3. 여러 명명된 서버 사용
MCP Proxy는 여러 명명된 서버를 관리할 수 있습니다:
# 여러 명명된 MCP 서버를 프록시 뒤에서 시작
mcp-proxy --port=8080 --named-server fetch 'uvx mcp-server-fetch' --named-server fetch2 'uvx mcp-server-fetch'
# 구성 파일을 사용하여 여러 명명된 MCP 서버 시작
mcp-proxy --port=8080 --named-server-config ./servers.json
JSON 구성 파일 형식:
{
"mcpServers": {
"fetch": {
"enabled": true,
"timeout": 60,
"command": "uvx",
"args": [
"mcp-server-fetch"
],
"transportType": "stdio"
},
"github": {
"timeout": 60,
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-github"
],
"transportType": "stdio"
}
}
}
문제 해결
문제: Claude Desktop이 서버를 시작할 수 없음 (로그에 ENOENT 코드가 표시됨)
해결책: 바이너리의 전체 경로를 사용해 보세요. 터미널을 열고 다음 명령을 실행하세요:
- macOS, Linux:
where mcp-proxy
- Windows:
where.exe mcp-proxy
그런 다음 출력 경로를 ‘command’ 속성 값으로 사용하세요:
{
"fetch": {
"command": "/full/path/to/bin/mcp-proxy",
"args": [
"http://localhost:8932/sse"
]
}
}
결론
MCP Proxy는 서로 다른 서버 통신 방식 간의 전환을 쉽게 해주는 강력한 도구입니다. Claude Desktop과 같은 AI 애플리케이션에서 특히 유용하며, 로컬 stdio 서버를 원격으로 접근 가능하게 만들거나 여러 서버를 하나의 인터페이스로 관리할 수 있게 해줍니다. 다양한 설치 방법과 구성 옵션을 통해 여러분의 필요에 맞게 유연하게 사용할 수 있습니다.
답글 남기기