
MCP 서버를 감싸는 프록시 서버로, 행동 프로파일링, 보안 스캐닝, 위험 게이팅, 안전한 실행을 제공합니다. 프롬프트 인젝션, 악성 툴 메타데이터, 인수 인젝션, 소스 코드 위험, 자격 증명 노출을 탐지합니다.
MCP safety warden은 모든 MCP 서버를 감싸고 해당 도구에 동작 프로파일링, 보안 스캐닝, 위험 게이팅, 안전한 실행을 추가하는 프록시 서버입니다.
[!IMPORTANT] MCP 보안은 활발한 연구 분야입니다. 최근 조사 보고서들은 프로토콜 특화 위협 유형(도구 중독, 프롬프트 인젝션, 러그풀 공격, 공급망 손상, 자격 증명 유출, 전체 서버 수명 주기에 걸친 구성 공격 등)을 광범위하게 분류하고 있습니다. 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. mcpsafety+ 5단계 파이프라인 – 모든 MCP 서버에 대해 전체 보안 감사를 실행할 때 작동
안전한 실행: 인수 스캐닝(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_ 값이 저장 시 암호화됩니다.
모든 구성은 환경 변수를 통해 이루어집니다.