mcp-프록시
에 대한
mcp-proxy
서버 전송 방식을 전환할 수 있는 도구입니다. 지원되는 모드는 두 가지입니다.
- stdio를 SSE/StreamableHTTP로
- SSE에서 stdio로
1. stdio를 SSE/StreamableHTTP로
stdio에서 원격 SSE 서버에 연결하는 프록시 서버를 실행합니다.
이 모드를 사용하면 Claude Desktop과 같은 클라이언트가 기본적으로 지원되지 않더라도 SSE를 통해 원격 서버와 통신할 수 있습니다.
지엑스피1
1.1 구성
이 모드에서는 MCP 서버의 SSE 엔드포인트 URL을 프로그램의 첫 번째 인수로 제공해야 합니다. 서버가 Streamable HTTP 전송을 사용하는 경우, --transport=streamablehttp
전달하여 mcp-proxy
측에서 Streamable HTTP 전송을 적용해야 합니다.
인수
이름 | 필수의 | 설명 | 예 |
---|---|---|---|
command_or_url | 예 | 연결할 MCP 서버 SSE 엔드포인트 | http://example.io/sse |
--headers | 아니요 | MCP 서버 SSE 연결에 사용할 헤더 | 권한 'Bearer my-secret-access-token' |
--transport | 아니요 | MCP 서버에 연결할 때 사용할 전송 프로토콜을 결정합니다. 'sse' 또는 'streamablehttp'일 수 있습니다. | 스트리밍 가능한 http |
환경 변수
이름 | 필수의 | 설명 | 예 |
---|---|---|---|
API_ACCESS_TOKEN | 아니요 | --headers Authorization 'Bearer <API_ACCESS_TOKEN>' | 당신의 토큰 |
1.2 사용 예
mcp-proxy
MCP 클라이언트에 의해 시작되도록 되어 있으므로 구성도 그에 맞게 이루어져야 합니다.
Claude Desktop의 경우 구성 항목은 다음과 같습니다.
2. SSE에서 stdio로
로컬 stdio 서버에 연결하는 SSE 서버를 노출하는 프록시 서버를 실행합니다.
이렇게 하면 로컬 stdio 서버에 원격으로 연결할 수 있습니다. mcp-proxy
SSE 요청을 수신하기 위해 포트를 열고, MCP 요청을 처리하는 로컬 stdio 서버를 생성합니다.
2.1 구성
이 모드에서는 --sse-port
인수를 설정해야 합니다. --sse-host
인수를 설정하여 SSE 서버가 수신 대기할 호스트 IP 주소를 지정할 수 있습니다. --env
인수를 사용하여 추가 환경 변수를 로컬 stdio 서버로 전달할 수 있습니다. 로컬 stdio 서버의 명령줄 인수는 --
구분 기호 뒤에 전달해야 합니다.
인수
이름 | 필수의 | 설명 | 예 |
---|---|---|---|
command_or_url | 예 | MCP stdio 서버를 생성하는 명령 | uvx mcp-server-fetch |
--port | 아니요, 무작위로 사용 가능 | 수신할 MCP 서버 포트 | 8080 |
--host | 아니요, 기본값은 127.0.0.1 입니다. | MCP 서버가 수신할 호스트 IP 주소 | 0.0.0.0 |
--env | 아니요 | MCP stdio 서버에 전달할 추가 환경 변수입니다. 여러 번 사용할 수 있습니다. | 푸 바 |
--cwd | 아니요 | MCP stdio 서버 프로세스에 전달할 작업 디렉토리입니다. | /임시 |
--pass-environment | 아니요 | 서버를 생성할 때 모든 환경 변수를 전달합니다. | --no-pass-environment |
--allow-origin | 아니요 | SSE 서버에 허용되는 출처입니다. 여러 번 사용할 수 있습니다. 기본값은 CORS가 허용되지 않습니다. | --허용-원점 "*" |
--stateless | 아니요 | 스트리밍 가능한 http 전송에 대해 상태 비저장 모드를 활성화합니다. 기본값은 False입니다. | --무국적 |
--named-server NAME COMMAND_STRING | 아니요 | 명명된 stdio 서버를 정의합니다. | --named-server fetch 'uvx mcp-server-fetch' |
--named-server-config FILE_PATH | 아니요 | 명명된 stdio 서버를 정의하는 JSON 파일의 경로입니다. | --named-server-config /경로/서버/.json |
--sse-port (더 이상 사용되지 않음) | 아니요, 무작위로 사용 가능 | 수신할 SSE 서버 포트 | 8080 |
--sse-host (더 이상 사용되지 않음) | 아니요, 기본값은 127.0.0.1 입니다. | SSE 서버가 수신할 호스트 IP 주소 | 0.0.0.0 |
2.2 사용 예
포트 8080에서 수신하고 로컬 MCP 서버에 연결하는 mcp-proxy
서버를 시작하려면:
명명된 서버
NAME
URL 경로/servers/NAME/
에 사용됩니다.COMMAND_STRING
서버를 시작하는 명령입니다(예: 'uvx mcp-server-fetch').- 여러 번 사용할 수 있습니다.
--named-server-config
사용되면 이 인수는 무시됩니다.
FILE_PATH
- 제공되는 경우 이는 명명된 서버에 대한 단독 소스이며--named-server
CLI 인수는 무시됩니다.
기본 서버가 지정된 경우( --named-server
또는 --named-server-config
없이 command_or_url
인수), 루트 경로(예: http://127.0.0.1:8080/sse
)에서 액세스할 수 있습니다.
--named-server
또는 --named-server-config
로 정의된 명명된 서버는 /servers/<server-name>/
에서 액세스할 수 있습니다(예: http://127.0.0.1:8080/servers/fetch1/sse
). /status
엔드포인트는 전역 상태를 제공합니다.
--named-server-config
에 대한 JSON 구성 파일 형식:
JSON 파일은 다음 구조를 따라야 합니다.
mcpServers
: 각 키가 서버 이름(URL 경로에 사용됨, 예:/servers/fetch/
)이고 값이 서버를 정의하는 객체인 사전입니다.command
: (필수) stdio 서버에서 실행할 명령입니다.args
: (선택 사항) 명령에 대한 인수 목록입니다. 기본값은 빈 목록입니다.enabled
: (선택 사항)false
인 경우 이 서버 정의는 건너뜁니다. 기본값은true
입니다.timeout
및transportType
: 이 필드는 표준 MCP 클라이언트 구성에는 존재하지만, 현재mcp-proxy
에서 명명된 서버를 로드할 때 무시됩니다 . 전송 유형은 암시적으로 "stdio"입니다.
설치
Smithery를 통해 설치
Smithery 를 통해 Claude Desktop용 MCP 프록시를 자동으로 설치하려면:
PyPI를 통해 설치
패키지의 안정 버전은 PyPI 저장소에서 다운로드할 수 있습니다. 다음 명령을 사용하여 설치할 수 있습니다.
설치가 완료되면 mcp-proxy
명령을 사용하여 서버를 실행할 수 있습니다. 각 모드의 구성 옵션은 위에서 확인하세요.
Github 저장소를 통해 설치(최신)
다음 명령을 사용하여 git 저장소에서 최신 버전의 패키지를 설치할 수 있습니다.
[!NOTE] 이미 서버를 설치한 경우
uv tool upgrade --reinstall
명령을 사용하여 업데이트할 수 있습니다.
[!NOTE] 서버를 삭제하려면
uv tool uninstall mcp-proxy
명령을 사용하세요.
컨테이너로 설치
버전 0.3.2부터 해당 컨테이너 이미지를 가져와서 실행할 수 있습니다.
문제 해결
- 문제 : Claude Desktop이 서버를 시작할 수 없습니다. 로그에 ENOENT 코드가 있습니다.해결책 : 바이너리의 전체 경로를 사용해 보세요. 터미널을 열고
where mcp-proxy
(macOS, Linux) 또는where.exe mcp-proxy
(Windows) 명령을 실행하세요. 그런 다음 출력 경로를 'command' 속성의 값으로 사용하세요.
컨테이너 이미지 확장
mcp-proxy
컨테이너 이미지를 확장하여 추가 실행 파일을 포함할 수 있습니다. 예를 들어, uv
기본적으로 포함되어 있지 않지만, 이를 사용하여 사용자 지정 이미지를 만들 수 있습니다.
Docker Compose 설정
사용자 정의 Dockerfile을 사용하면 Docker Compose 파일에서 서비스를 정의할 수 있습니다.
[!NOTE]
--pass-environment
인수를 설정하는 것을 잊지 마세요. 그렇지 않으면 "관리되는 설치 또는 검색 경로에서 인터프리터를 찾을 수 없습니다"라는 오류가 발생합니다.
명령줄 인수
예제 구성 파일
테스트
mcp-server-fetch
서버로 mcp-proxy
서버를 실행하여 확인하세요. 검사기 도구를 사용하여 대상 서버를 테스트할 수 있습니다.
You must be authenticated.
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
STDIO 대신 SSE 전송을 사용하여 원격 MCP 서버와의 상호작용을 활성화하여 통신 기능을 향상시킵니다.
Related Resources
Related MCP Servers
- AsecurityAlicenseAqualityA simple MCP server that facilitates website fetching through a configurable server platform using stdio or SSE transport, allowing integration with tools like Cursor for streamlined access.Last updated -223PythonMIT License
- -securityFlicense-qualityMCP server enabling LLMs to perform browser tasks via SSE transport, allowing clients like Cursor.ai and Claude to open websites and interact with web content through natural language commands.Last updated -
- -securityFlicense-qualityA remote MCP server implementation for Cloudflare that uses server-sent events (SSE) to enable Model Control Protocol communication.Last updated -TypeScript
- AsecurityAlicenseAqualityThe most powerful MCP server for Slack Workspaces. This integration supports both Stdio and SSE transports, proxy settings and does not require any permissions or bots being created or approved by Workspace admins 😏.Last updated -263GoMIT License