Skip to content

BOM-Tool/MCP-SCAN

Repository files navigation

MCP-SCAN

" MCP(Model Context Protocol) 서버의 코드 취약점을 탐지하는 정적 분석 도구 "

  • AST-CFG-Taint 분석으로 Go, TypeScript/JavaScript 코드 취약점 탐지
  • GitHub URL 및 로컬 저장소 모두 지원

지원 언어

  • Go
  • TypeScript/JavaScript

탐지 가능한 취약점

일반 취약점

  • Command Injection
  • Path Traversal
  • Server-Side Request Forgery

MCP 특화 취약점

  • 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

Docker 없이 직접 실행

요구사항: 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

CLI 옵션

짧은 형태 긴 형태 설명 기본값
-p --path 스캔할 저장소 경로 또는 GitHub URL (필수) -

출력

스캔 결과는 output/ 디렉토리에 JSON 형식으로 저장됩니다.

About

MCP Server Vulnerability Scanner

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors