" MCP(Model Context Protocol) 서버의 코드 취약점을 탐지하는 정적 분석 도구 "
- AST-CFG-Taint 분석으로 Go, TypeScript/JavaScript 코드 취약점 탐지
- GitHub URL 및 로컬 저장소 모두 지원
- Go
- TypeScript/JavaScript
- Command Injection
- Path Traversal
- Server-Side Request Forgery
- Toxic Flow
- Tool Poisoning
- Tool Name Spoofing
- Tool Shadowing
- Config Poisoning
- Advanced Tool Poisoning
- Full Schema Poisoning
MCP-SCAN/
├── scanner/
│ ├── cli.py # CLI 진입점
│ ├── analyzers/ # 코드 분석 엔진
│ │ ├── common/ # 공통 유틸리티
│ │ └── rules/ # 탐지 규칙
│ └── runner/ # 스캔 오케스트레이션
│ ├── manager.py # 메인 스캔 매니저
│ └── file_analyzer.py # 파일 분석기
├── output/ # 스캔 결과
└── requirements.txt # Python 의존성
# 저장소 클론
git clone https://github.com/BOM-Tool/MCP-SCAN.git
cd MCP-SCAN
# Docker 컨테이너 빌드 및 시작
docker-compose up -d --build
# GitHub 저장소 스캔
docker exec bomtool-scanner python -m scanner.cli -p https://github.com/user/repo
# 로컬 저장소 스캔 (test 디렉토리에 복사 후 스캔)
docker exec bomtool-scanner python -m scanner.cli -p /app/test
# 컨테이너 중지
docker-compose down요구사항: Python 3.10+, Node.js, Go
# 저장소 클론
git clone https://github.com/BOM-Tool/MCP-SCAN.git
cd MCP-SCAN
# 가상환경 생성 및 활성화 (권장)
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
# 의존성 설치
pip install -r requirements.txt
# Parser 빌드
cd scanner/analyzers/rules/parsers
npm install && go build -o go_parser go_parser.go go_types.go
cd ../../../..
# 실행
python -m scanner.cli -p https://github.com/user/repo| 짧은 형태 | 긴 형태 | 설명 | 기본값 |
|---|---|---|---|
-p |
--path |
스캔할 저장소 경로 또는 GitHub URL (필수) | - |
스캔 결과는 output/ 디렉토리에 JSON 형식으로 저장됩니다.