
MCP 서버를 감싸는 프록시 서버로, 행동 프로파일링, 보안 스캐닝, 위험 게이팅, 안전한 실행을 제공합니다. 프롬프트 인젝션, 악성 툴 메타데이터, 인수 인젝션, 소스 코드 위험, 자격 증명 노출을 탐지합니다.
MCP safety warden은 모든 MCP 서버를 감싸서 해당 도구에 동작 프로파일링, 보안 스캐닝, 위험 게이팅, 안전한 실행을 추가하는 프록시 서버입니다.
[!IMPORTANT] MCP 보안은 활발한 연구 분야입니다. 최근 조사들은 도구 중독(tool poisoning), 프롬프트 인젝션, 러그풀 공격(rug-pull attacks), 공급망 침해, 자격 증명 유출, 그리고 전체 서버 수명 주기에 걸친 구성 공격(composition attacks)에 이르는 다양한 프로토콜 특화 위협 범주를 정리하고 있습니다. Securing the MCP (OpenReview), Landscape & Threats (arXiv), When MCP Servers Attack (arXiv), MCP-38 Taxonomy (arXiv)를 참고하세요.
모든 MCP 서버에 안전 게이팅을 추가하는 프록시로 사용하거나, 소유하지 않은 서버를 지정하여 단 한 번의 도구 호출도 없이 전체 보안 감사를 실행할 수 있습니다.
그림 1. 두 가지 운영 모드: 프록시와 감사
동작 프로파일링: 효과 클래스, 재시도 안전성, 파괴성. LLM 지원(Anthropic, OpenAI, Gemini, Ollama) 및 규칙 기반 폴백. 관찰된 통계(지연 시간 p50/p95, 실패율, 출력 크기)는 프록시된 모든 호출 후에 갱신됩니다.
보안 스캐닝: mcpsafety+ 5단계 파이프라인(Recon, Planner, Hacker, Auditor, Supervisor). Cisco AI Defense (AST/YARA). Snyk (메타데이터 분석). Kali 및 Burp Suite 통합은 실제 네트워크 데이터와 HTTP 계층 프로브로 파이프라인을 강화합니다. GitHub에서 소스 코드 스캐닝을 수행하며 엔트로피, AST, 테인트 흐름, 러그풀 탐지를 지원합니다.
그림 2. 모든 MCP 서버에서 전체 보안 감사를 실행할 때 트리거되는 mcpsafety+ 5단계 파이프라인
안전한 실행: 인자 스캐닝(20개 이상의 공격 범주, LLM 2차 검사). 2계층 출력 인젝션 스캐닝. 대안 및 도구별 정책을 포함한 위험 게이팅. 모든 호출에 대한 드리프트 탐지 및 독립 실행 검사.
그림 3. 안전한 실행 파이프라인: 프록시된 모든 도구 호출이 통과하는 5가지 검사
CLI: 24개 하위 명령, 대화형 위험 메뉴, 모든 명령에 --json 플래그, CI용 --yes.
탐지 항목
키가 없으면 래퍼는 규칙 기반 전용 모드로 작동합니다: 낮은 신뢰도의 도구 분류, 정규식 전용 인젝션 스캐닝, 위험 게이트에 대안 없음, mcpsafety+ 파이프라인 없음. 완전한 로컬 설정을 위해서는 Ollama를 실행하고 OLLAMA_MODEL을 설정한 뒤 --provider ollama를 명시적으로 전달하세요(Ollama는 자동 감지되지 않습니다).
[!NOTE] 로컬 설정이 필요한 stdio 서버 (시작 전에 로컬 구성이 필요한
stdio서버 - 누락된 구성 파일, 자격 증명, 데이터 디렉터리, OS별 의존성)는 래퍼가 검사할 수 없습니다 - 도구 검색이 실패하고 0개의 도구가 저장됩니다.scan/onboard에--github-url을 전달하거나security_scan_server에github_url파라미터를 전달하여 서버를 실행하지 않고도 전체 소스 코드 보안 스캔을 실행할 수 있습니다. mcpsafety+ 파이프라인은 GitHub에서 소스를 직접 가져와 분석합니다.sse및streamable_http서버는 영향을 받지 않습니다.
pip install mcpsafetywarden
모든 선택적 추가 기능 포함:
pip install "mcpsafetywarden[all]"
또는 특정 추가 기능:
pip install "mcpsafetywarden[anthropic,snyk]"
소스에서:
git clone https://github.com/gautamvarmadatla/mcpsafetywarden
cd mcpsafetywarden
pip install .
SQLite 데이터베이스는 첫 실행 시 플랫폼 사용자 데이터 디렉터리(Linux에서는 ~/.local/share/mcpsafetywarden/, macOS에서는 ~/Library/Application Support/mcpsafetywarden/, Windows에서는 %APPDATA%\mcpsafetywarden\)에 자동으로 생성됩니다. MCP_DB_PATH로 재정의할 수 있습니다.
자격 증명 보호 (자동, 별도 조치 불필요)
register_server 또는 onboard_server에 전달된 비밀 값(Bearer 토큰, headers 또는 env의 API 키)은 모델 컨텍스트에 닿기 전에 자동으로 감지되어 불투명한 cref_ 식별자로 대체됩니다. 실제 자격 증명은 데이터베이스에 암호화되어 저장되고 연결 시 조용히 해석됩니다. 모델, 대화 기록, 로그는 cref_<id>만 보게 됩니다.
선택 사항: 저장된 자격 증명의 저장 시 암호화
pip install cryptography
python -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())"
서버를 시작하기 전에 출력된 키를 MCP_DB_ENCRYPTION_KEY로 설정하세요. 이는 서버 자격 증명과 cref_ 값 모두를 저장 시 암호화합니다.
모든 구성은 환경 변수를 통해 이루어집니다.