여러 MCP 서버를 Docker 및 Windsurf로 실행하기
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
개발 툴
대상자
Docker와 MCP(Machine Context Protocol) 서버를 사용하여 모델 실행, LAN 공유, 프록시 설정을 필요한 백엔드 개발자 및 DevOps 엔지니어
난이도: 중급 (Docker 기본 지식 필요)
핵심 요약
- MCP 서버 유형:
Local / stdio
: Docker로 쉽게 실행 (예:docker run ghcr.io/github/github-mcp-server
)Remote / SSE
: HTTP(S)로 접근 가능 (예:supergateway
로 브리징)- 보안 관리:
--env-file
또는.env
파일 사용,GITHUB_PERSONAL_ACCESS_TOKEN
직접 입력 금지- 도구 활용:
supergateway
: 로컬 Docker 서버를 SSE로 노출Smithery.ai
: MCP 서버 및 플러그인의 디렉토리 및 CLI 관리
섹션별 세부 요약
1. MCP 서버 유형 및 설정
- Local / stdio:
- GitHub MCP 서버:
docker run ghcr.io/github/github-mcp-server
명령어로 실행 --rm
옵션으로 컨테이너 자동 종료- Remote / SSE:
supergateway
로stdio
서버를/sse
경로로 노출 (예:--ssePath /sse
)npx
를 사용한 서버 실행 (예:npx -y @upstash/context7-mcp
)
2. 보안 및 환경 설정
- 토큰 관리:
docker run
명령어에 직접 토큰 입력은 위험 →.env
파일 또는--env-file
사용export GITHUB_PERSONAL_ACCESS_TOKEN=…
으로 환경 변수 설정- Windsurf 설정:
mcp_config.json
에 서버 URL 및 포트 설정 (예:"serverUrl": "http://localhost:9000"
)
3. 도구 및 플랫폼 활용
- supergateway:
- 로컬 Docker 서버를 LAN 또는 공유 서버로 연결 (예:
--port 8000
,--ssePath /sse
) - 파일 시스템 MCP:
-v $(pwd):/projects:ro
로 로컬 디렉토리 마운트 - Smithery.ai:
- MCP 서버/플러그인 설치 및 관리 (예:
npx -y @smithery/cli install mcp-proxy
) - CLI로 클라이언트(예: Claude, Windsurf)에 직접 설치
4. macOS 및 네트워크 문제 해결
- 네트워크 샌드박스:
- macOS에서
localhost
외 IP 접근 시 "no route to host" 오류 발생 →socat
사용 (예:socat TCP-LISTEN:9000 TCP:192.168.1.95:8010
) - Windsurf 설정:
--no-sandbox
옵션으로 샌드박스 우회 (Linux 지원)
결론
- 보안을 위해
.env
파일 또는--env-file
사용,GITHUB_PERSONAL_ACCESS_TOKEN
직접 입력 금지 - macOS에서
socat
으로 LAN 서버와의 연결 문제 해결 Smithery.ai
를 통해 MCP 서버 및 플러그인을 쉽게 설치, 관리 가능 (예:npx -y @smithery/cli install mcp-proxy
)