Rust로 MCP 서버를 위한 셀프 호스팅 리버스 프록시(Reverse Proxy)를 구축했습니다
요약
Rust를 사용하여 MCP 서버의 보안과 관리를 강화하는 리버스 프록시인 MCP Gateway를 구축했습니다. 인증, 속도 제한, 로깅 및 사용량 추적 기능을 제공하여 AI 도구와 MCP 서버 간의 안전한 통신을 지원합니다.
핵심 포인트
- Rust와 Axum을 활용한 고성능 MCP 서버 게이트웨이 구현
- AES-256-GCM 기반의 서버별 API 키 인증 기능 제공
- 토큰 버킷 알고리즘을 이용한 클라이언트별 속도 제한(Rate limiting)
- SQLite를 활용한 지연 시간 및 요청 상태 로깅
- Anthropic 및 OpenAI 응답 기반의 토큰 사용량 추적
문제점
MCP 서버와 통신하는 모든 AI 도구(Claude, Cursor 등)는
인증(Auth), 속도 제한(Rate limiting), 관찰 가능성(Observability) 없이
직접 연결됩니다.
무엇이 서버에 접속하고 있는지, 얼마나 자주 접속하는지 알 수 없습니다.
내가 만든 것
MCP Gateway는 모든 MCP 서버의 앞단에 위치하며 다음을 처리합니다:
- 라우팅 (Routing) —
/mcp/server-name/*를 올바른 백엔드로 프록시 - 인증 (Auth) — 메모리 내에서 AES-256-GCM으로 암호화된 서버별 API 키
- 속도 제한 (Rate limiting) — 클라이언트당 토큰 버킷(Token bucket), 429 + Retry-After
- 로깅 (Logging) — 지연 시간(Latency) 및 상태(Status)를 포함한 모든 요청의 SQLite 로그
- 사용량 추적 (Usage tracking) — Anthropic/OpenAI 응답으로부터의 토큰 수
- CLI —
mcpgw server add/list/remove,mcpgw logs show,mcpgw stats
퀵스타트 (Quickstart)
MCPGW_MASTER_SECRET=your-secret docker compose up --build
스택 (Stack)
Rust, Axum, SQLite (rusqlite), DashMap, AES-GCM
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기