Token导航 LogoToken导航TokenDH.com
SAST MCP Server logo
安全风控stdio官方级别未说明来源级核验

SAST MCP Server

MCP Server

一个集成了多种SAST工具和Claude Code AI的综合安全分析服务器,支持自动化漏洞扫描和多工具并行处理。

工具数

23

提示词数

0

GitHub Stars

6

资源数

0
安全分析PythonClaudeClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

Sengtocxoen

提供方

Sengtocxoen

最后核验

2026/5/17 20:22

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install -r requirements.txt

详细介绍

MCP SAST服务器

全面的 模型上下文协议(MCP) 该服务器将多个SAST(静态应用程序安全测试)工具与Claude Code AI集成在一起,可以直接从您的AI助手进行自动安全分析和漏洞扫描。

概述

该项目在Claude Code和行业标准安全扫描工具之间架起了一座桥梁,允许开发人员通过自然语言命令执行全面的安全分析。

主要特点

  • 23+安全工具集成:

- SAST:森格里普、班迪特、ESLint安全、戈塞克、布雷克曼、格劳迪特、熊 - 秘密:TruffleLog,Gitleaks - 依赖关系:安全性、npm审计、OWASP依赖性检查、Snyk - IaC:Checkov,tfsec,Trivy - Kali工具:Nikto、Nmap、SQLMap、WPScan、DIRB、Lynis、ClamAV

  • 多进程后端 ⚡: 具有真正CPU并行性的高性能并行执行

- 进程池执行器 用于隔离流程执行 - 快3.3倍 并行扫描的性能 - 可配置的并行性 (1-16+并发扫描) - 进程隔离 增强稳定性 - 资源监控 以及健康检查

  • 提高准确性和可靠性 🎯: 高级验证和错误处理

- 自动结果验证 带校验和验证 - 重试逻辑 指数回退 - 错误分类 带有补救提示 - 过程健康监测 (内存、CPU、线程)

  • TOON格式集成 🎒: 自动转换为面向令牌的对象表示法,用于LLM优化分析

- 代币减少30-60% 与JSON相比 - 所有扫描的自动TOON格式输出 - 用于未来LLM分析的AI就绪有效载荷 - 人工智能API使用成本显著节约

  • 后台处理:所有扫描都在后台与作业管理异步运行
  • 自动文件输出:结果自动保存到具有可配置输出目录的文件中(JSON+TOON+AI有效载荷)
  • 工作管理API:跟踪扫描状态、检索结果、取消作业并列出所有扫描
  • AI分析就绪:为未来的人工智能扫描摘要和决策支持做好准备
  • MCP协议:与Claude Code AI无缝集成
  • 远程执行:在Windows上工作时,在专用安全VM(Kali Linux)上运行安全工具
  • 路径解析:自动窗口↔ 跨平台操作的Linux路径映射
  • 灵活的架构:在功能齐全或轻量级服务器之间进行选择
  • 全面覆盖:代码分析、秘密扫描、依赖性检查、IaC安全、网络安全、网络扫描、恶意软件检测

建筑

┌─────────────────┐         ┌──────────────────┐         ┌─────────────────┐
│  Claude Code    │  MCP    │  MCP Client      │  HTTP   │  SAST Server    │
│  (Windows)      │◄───────►│  client/         │◄───────►│  server/        │
│                 │         │  sast_mcp_client │         │  (Kali Linux)   │
└─────────────────┘         └──────────────────┘         └─────────────────┘
                                                                  │
                                                                  ▼
                                                          ┌─────────────────┐
                                                          │  Security Tools │
                                                          │  (installed via │
                                                          │  tools/install) │
                                                          └─────────────────┘

支持的工具

代码分析

  • Semgrep -多语言静态分析(30+种语言)
  • 匪徒 -Python安全扫描程序
  • ESLint安全 -JavaScript/TypeScript安全漏洞
  • Gosec -转到安全检查器
  • 刹车工 -Ruby on Rails安全扫描程序
  • 重力 -基于Grep的源代码审计
  • 持有者 -安全和隐私风险扫描器

秘密侦查

  • 松露猪 -git repos和文件系统的秘密扫描程序
  • Gitleaks -git仓库的快速秘密检测

依赖关系扫描

  • 安全 -Python依赖漏洞检查器
  • npm审计 -Node.js依赖安全审计
  • OWASP依赖性检查 -多语言依赖性扫描器
  • 斯尼克 -现代依赖关系和容器扫描仪

基础设施即代码

  • 支票 -Terraform、CloudFormation、Kubernetes、Dockerfile扫描器
  • tfsec -地形安全扫描仪
  • 三叉戟 -容器和IaC漏洞扫描程序

Kali Linux安全工具

  • -Web服务器漏洞扫描程序
  • Nmap -网络和端口扫描器
  • SQLMap -SQL注入检测与利用
  • WPScan -WordPress安全扫描程序
  • DIRB -Web内容发现扫描程序
  • Lynis -系统审计和强化工具
  • ClamAV -防病毒和恶意软件扫描程序

安装

先决条件

Windows计算机(客户端):

  • Python 3.8+
  • 已安装克劳德代码

Linux机器(服务器-推荐Kali Linux):

快速开始

1.克隆存储库

git clone https://github.com/your-username/MCP-SAST-Server.git
cd MCP-SAST-Server

2.安装Python依赖项

pip install -r requirements.txt

3.配置服务器(可选)

复制示例环境文件并自定义:

cp .env.example .env
# Edit .env with your settings (port, paths, timeouts)

4.启动SAST服务器(在Kali Linux上)

选项A:全功能服务器 (建议使用完整功能)

python3 server/sast_server.py --port 6000

选项B:简单服务器 (无外部依赖,基本功能)

python3 server/simple_sast_server.py --port 6000

5.配置Claude代码(在Windows上)

选项A:使用示例配置

  1. 打开 config.example.json 在存储库中
  2. 复制与您的设置匹配的配置
  3. 将其添加到您的 .claude.json 文件
  4. 更新路径和服务器URL

选项B:手动配置

将MCP服务器配置添加到您的 .claude.json:

{
  "mcpServers": {
    "sast_tools": {
      "type": "stdio",
      "command": "python",
      "args": [
        "/path/to/sast-mcp/client/sast_mcp_client.py",
        "--server",
        "http://YOUR_KALI_IP:6000"
      ]
    }
  }
}

重要提示:更新这些值:

  • /path/to/sast-mcp/client/sast_mcp_client.py -MCP客户端脚本的完整路径
  • YOUR_KALI_IP -您的Kali Linux机器的IP地址(例如。, 192.168.1.100)
  • 端口 6000 -如果配置了其他端口,请进行更改

Windows路径示例:

  • C:/Projects/sast-mcp/client/sast_mcp_client.py
  • F:/work/sast-mcp/client/sast_mcp_client.py

Linux/Mac路径示例:

  • /home/user/sast-mcp/client/sast_mcp_client.py
  • ~/projects/sast-mcp/client/sast_mcp_client.py

6.验证安装

在Kali Linux上:

curl http://localhost:6000/health

在克劳德代码中:

@sast_tools

Check the SAST server health and show me available tools

用法示例

安全扫描

扫描Python代码以查找漏洞:

@sast_tools

Run a Bandit scan on F:/work/MyProject/backend with high severity filter

多语言安全审计:

@sast_tools

Use Semgrep with OWASP Top 10 rules to scan F:/work/MyProject

在存储库中查找机密:

@sast_tools

Scan F:/work/MyProject for leaked secrets using TruffleHog

依赖检查

检查Python依赖关系:

@sast_tools

Run Safety check on F:/work/MyProject/requirements.txt

审核Node.js包:

@sast_tools

Run npm audit on F:/work/MyProject/frontend with critical severity

基础设施安全

扫描地形文件:

@sast_tools

Use Checkov to scan Terraform configurations in F:/work/MyProject/terraform

检查Docker安全性:

@sast_tools

Scan F:/work/MyProject/Dockerfile with Trivy

Kali安全工具

使用Niketo扫描网络服务器:

@sast_tools

Run Nikto scan on https://example.com with SSL and save results to /tmp/nikto-scan.txt

使用Nmap进行网络扫描:

@sast_tools

Use Nmap to scan 192.168.1.1 for open ports 1-1000 and save results

SQL注入测试:

@sast_tools

Test https://example.com/login.php for SQL injection using SQLMap

WordPress安全扫描:

@sast_tools

Scan https://wordpress-site.com with WPScan to enumerate vulnerable plugins

Web内容发现:

@sast_tools

Run DIRB on https://example.com to discover hidden directories and files

系统审核:

@sast_tools

Run Lynis system audit to check security hardening

恶意软件扫描:

@sast_tools

Scan F:/work/MyProject with ClamAV antivirus to detect malware

工具安装

快速安装(推荐)

我们提供了一个自动安装脚本,用于安装所有必需的工具:

# On your Kali Linux machine
cd /path/to/sast-mcp
sudo bash tools/install_tools.sh

脚本将:

  • ✅ 更新系统包
  • ✅ 安装Python、Node.js、Ruby和Go
  • ✅ 自动安装所有23+安全工具
  • ✅ 安装Python依赖项(Flask、MCP SDK)
  • ✅ 验证所有安装
  • ✅ 向您展示下一步

安装需要5-15分钟,具体取决于您的互联网速度。

⚠ 有安装问题吗? 常见问题包括下载卡住、版本冲突或网络超时。请尝试再次运行脚本或手动安装工具。

手动安装

如果您更喜欢手动安装工具:

在Kali Linux上安装安全工具

Kali Linux上预装了许多工具。对于缺失的工具:

Semgrep:

pip3 install semgrep

土匪:

pip3 install bandit

TruffleLog:

pip3 install trufflehog

Gitleaks:

wget https://github.com/gitleaks/gitleaks/releases/download/v8.18.0/gitleaks_8.18.0_linux_x64.tar.gz
tar -xzf gitleaks_8.18.0_linux_x64.tar.gz
sudo mv gitleaks /usr/local/bin/

支票 :

pip3 install checkov

安全:

pip3 install safety

Trivy:

wget -qO - https://aquasecurity.github.io/trivy-repo/deb/public.key | sudo apt-key add -
echo "deb https://aquasecurity.github.io/trivy-repo/deb $(lsb_release -sc) main" | sudo tee -a /etc/apt/sources.list.d/trivy.list
sudo apt update
sudo apt install trivy

安装Kali Linux工具

大多数Kali工具都预装在Kali Linux上。对于缺失的工具:

sudo apt install nikto

Nmap:

sudo apt install nmap

SQLMap:

sudo apt install sqlmap

WPScan:

sudo gem install wpscan
# Or
sudo apt install wpscan

DIRB :

sudo apt install dirb

林尼斯:

sudo apt install lynis

Snyk:

npm install -g snyk
# Or download from https://github.com/snyk/cli

ClamAV:

sudo apt install clamav clamav-daemon
sudo freshclam  # Update virus definitions

有关完整的安装指南,请参阅每个工具的官方文档。

配置

服务器配置(.env文件)

服务器可以使用环境变量或 .env 文件:

使用.env文件(推荐):

# Copy the example file
cp .env.example .env

# Edit .env with your settings
nano .env

可用配置选项:

# Server Port (default: 6000)
API_PORT=6000

# Debug Mode (default: 0)
DEBUG_MODE=0

# Command Timeout in seconds (default: 3600 / 1 hour)
COMMAND_TIMEOUT=3600

# Max timeout limit (default: 86400 / 24 hours)
# For scans that take days, increase this value
# Examples: 259200 (3 days), 604800 (1 week)
MAX_TIMEOUT=86400

# Tool-Specific Timeouts (in seconds)
# Customize timeout for each security tool based on your needs
NIKTO_TIMEOUT=3600        # Web server scanning
NMAP_TIMEOUT=7200         # Network/port scanning
SQLMAP_TIMEOUT=7200       # SQL injection testing
WPSCAN_TIMEOUT=3600       # WordPress scanning
DIRB_TIMEOUT=7200         # Web content discovery
LYNIS_TIMEOUT=1800        # System auditing
SNYK_TIMEOUT=3600         # Dependency scanning
CLAMAV_TIMEOUT=14400      # Malware scanning (4 hours)
SEMGREP_TIMEOUT=7200      # Code analysis
BANDIT_TIMEOUT=1800       # Python security
TRUFFLEHOG_TIMEOUT=3600   # Secret detection

# Path Mapping (for Windows/Linux cross-platform)
MOUNT_POINT=/mnt/work
WINDOWS_BASE=F:/

# Multi-Process Backend Configuration
USE_MULTIPROCESSING=1           # Enable multi-process backend (default: 1)
MAX_PARALLEL_SCANS=4            # Number of concurrent scans (default: 4)
MAX_PROCESS_WORKERS=8           # Process pool size (default: CPU count - 1)
PROCESS_MEMORY_LIMIT_MB=2048    # Memory limit per process (default: 2048)
SCAN_WAIT_TIMEOUT=1800          # Scan slot wait timeout (default: 1800 / 30 min)

# Retry and Validation Configuration
MAX_RETRY_ATTEMPTS=2            # Retry attempts for failed scans (default: 2)
RETRY_BACKOFF_BASE=2.0          # Exponential backoff multiplier (default: 2.0)
ENABLE_RESULT_VALIDATION=1      # Enable result validation (default: 1)
ENABLE_CHECKSUM_VERIFICATION=1  # Enable checksum verification (default: 1)
MIN_RESULT_SIZE_BYTES=10        # Minimum valid result size (default: 10)

超时配置提示:

对于大规模或全面的安全扫描,您可能需要增加超时时间:

  • 大型代码库(>100K LOC):增加 SEMGREP_TIMEOUT 至14400(4小时)
  • 全网络扫描:设置 NMAP_TIMEOUT 至28800(8小时)或更高
  • 彻底的SQL注入测试:使用 SQLMAP_TIMEOUT 21600(6小时)
  • 完成恶意软件扫描:设置 CLAMAV_TIMEOUT 至43200(12小时)
  • 多日扫描:增加 MAX_TIMEOUT 259200(3天)或以上

如果扫描超时,服务器会保存部分结果,这样您就不会丢失所有数据。

直接使用环境变量:

export API_PORT=6000
export DEBUG_MODE=1
export MOUNT_POINT=/mnt/work
export WINDOWS_BASE=F:/

客户端配置(config.example.json)

关于Claude代码的配置,请参见 config.example.json 其中包括:

  • Windows与本地Kali VM示例
  • 带有远程Kali服务器的Windows示例
  • Linux/Mac配置示例

只需将适当的配置复制到您的 .claude.json 并更新路径和IP地址。

路径解析

服务器会自动将Windows路径解析为Linux装载路径:

  • F:/MyProject/file.txt/mnt/work/MyProject/file.txt
  • F:\work\Project\scan.json/mnt/work/work/Project/scan.json
  • F:/scan-results.txt/mnt/work/scan-results.txt

默认映射: F: /(Windows)↔ /mnt/work(Linux)

如果不同,请使用环境变量配置装载点。

API终点

健康检查

GET /health

SAST工具

POST /api/sast/semgrep
POST /api/sast/bandit
POST /api/sast/bearer
POST /api/sast/graudit
POST /api/sast/gosec
POST /api/sast/brakeman
POST /api/sast/eslint-security

秘密扫描

POST /api/secrets/trufflehog
POST /api/secrets/gitleaks

依赖关系扫描

POST /api/dependencies/safety
POST /api/dependencies/npm-audit
POST /api/dependencies/dependency-check

基础设施即代码

POST /api/iac/checkov
POST /api/iac/tfsec

容器安全

POST /api/container/trivy

自定义命令

POST /api/command

后台作业管理

GET  /api/jobs                  # List all jobs
GET  /api/jobs/{job_id}         # Get job status
GET  /api/jobs/{job_id}/result  # Get job result
POST /api/jobs/{job_id}/cancel  # Cancel a job
POST /api/jobs/cleanup           # Cleanup old jobs

后台处理

默认情况下,所有安全扫描现在都在后台运行,允许您:

  • 同时启动多个扫描
  • 执行扫描时继续工作
  • 方便时检索结果
  • 跟踪扫描进度和状态

运作原理

  1. 提交扫描:当您请求扫描时(例如Semgrep),服务器会立即返回作业ID
  2. 后台执行:扫描在后台运行(默认情况下最多10个并发作业)
  3. 自动文件存储:结果将自动保存到 /var/sast-mcp/scan-results/ (或您配置的目录)
  4. 检索结果:使用作业ID检查状态并检索结果

工作流示例

1.启动Semgrep扫描:

curl -X POST http://localhost:6000/api/sast/semgrep \
  -H "Content-Type: application/json" \
  -d '{
    "target": "/path/to/code",
    "config": "auto",
    "output_format": "json"
  }'

答复:

{
  "success": true,
  "message": "Scan job submitted successfully",
  "job_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "job_status": "pending",
  "output_file": "/var/sast-mcp/scan-results/semgrep_20250104_143022_a1b2c3d4.json",
  "check_status_url": "/api/jobs/a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "get_result_url": "/api/jobs/a1b2c3d4-e5f6-7890-abcd-ef1234567890/result"
}

2.检查扫描状态:

curl http://localhost:6000/api/jobs/a1b2c3d4-e5f6-7890-abcd-ef1234567890

答复:

{
  "success": true,
  "job": {
    "job_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "tool_name": "semgrep",
    "status": "running",
    "created_at": "2025-01-04T14:30:22",
    "started_at": "2025-01-04T14:30:23",
    "output_file": "/var/sast-mcp/scan-results/semgrep_20250104_143022_a1b2c3d4.json",
    "progress": 0,
    "duration_seconds": 45.2
  }
}

3.完成后获取结果:

curl http://localhost:6000/api/jobs/a1b2c3d4-e5f6-7890-abcd-ef1234567890/result

答复:

{
  "success": true,
  "status": "completed",
  "job": {
    "job_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "status": "completed",
    "duration_seconds": 127.5
  },
  "result": {
    "job_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "tool_name": "semgrep",
    "started_at": "2025-01-04T14:30:23",
    "completed_at": "2025-01-04T14:32:30",
    "scan_result": {
      "stdout": "...",
      "summary": {
        "total_findings": 15,
        "total_errors": 0
      }
    }
  }
}

配置

在您的计算机中配置后台处理 .env 文件:

# Default directory for scan results
DEFAULT_OUTPUT_DIR=/var/sast-mcp/scan-results

# Maximum concurrent scan jobs
MAX_WORKERS=10

# Keep job metadata for 72 hours (3 days)
JOB_RETENTION_HOURS=72

自定义输出位置

您可以为任何扫描指定自定义输出文件:

{
  "target": "/path/to/code",
  "output_file": "F:/my-scans/custom-name.json"
}

如果未指定,文件将自动命名: {tool}_{timestamp}_{job_id}.json

同步模式(传统)

为了向后兼容,您可以同步运行扫描:

{
  "target": "/path/to/code",
  "background": false
}

这将一直阻止,直到扫描完成(不建议用于长时间运行的扫描)。

项目结构

sast-mcp/
├── client/              # MCP client (sast_mcp_client.py)
├── server/
│   ├── config.py        # All env/timeouts in one place
│   ├── sast_server.py   # Full-featured server
│   └── simple_sast_server.py  # Lightweight alternative
├── tools/               # install_tools.sh, toon_converter.py, ai_analysis.py
├── README.md            # This file
├── DOCS.md              # Detailed docs (health, parallel, multiprocess, Kali setup)
├── requirements.txt
├── .env.example
└── config.example.json

详细文件 (并行扫描、多进程后端、异步客户端、Kali/Windows设置、工具运行状况):请参阅 DOCS.md.

故障排除

连接问题

问题: 无法连接到SAST服务器

解决方案:

  1. 验证服务器是否正在运行: curl http://KALI_IP:6000/health
  2. 检查Kali Linux上的防火墙设置
  3. 确保IP地址在 .claude.json 是正确的
  4. 检查Windows和Kali之间的网络连接

路径解决问题

问题: 扫描失败,显示“未找到路径”

解决方案:

  1. 验证Linux上是否已装载Windows共享: ls /mnt/work
  2. 检查安装点配置是否匹配 MOUNT_POINT 环境变量
  3. 确保路径中使用正斜杠 .claude.json

工具不可用

问题: 健康检查显示工具不可用

解决方案:

  1. 安装缺失的工具(参见 工具安装)
  2. 验证工具是否在PATH中: which semgrep
  3. 手动测试工具: semgrep --version

安全注意事项

  • 网络安全:使用防火墙规则限制对SAST服务器端口的访问
  • 认证:考虑添加API身份验证以供生产使用
  • 秘密:永远不要将API密钥或凭据提交到存储库
  • 隔离:在隔离的VM或容器中运行SAST服务器
  • 更新:定期更新安全工具,以获取最新的漏洞特征

贡献

欢迎投稿!拜托:

  1. 分叉存储库
  2. 创建要素分支(git checkout -b feature/amazing-feature)
  3. 提交您的更改(git commit -m 'Add amazing feature')
  4. 推到分支(git push origin feature/amazing-feature)
  5. 打开拉取请求

许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。

致谢

支持

对于问题、疑问或贡献:

  • 问题:
  • 讨论:

路线图

  • \[\]添加身份验证/授权
  • \[\]实现扫描结果缓存
  • \[\]添加webhook通知
  • \[\]为扫描结果创建web仪表板
  • \[\]支持其他SAST工具
  • \[\]Docker容器化
  • \[\]CI/CD集成示例

______________________________________________________________________

建于❤️ 用于安全代码开发

目录标签

目录标签

安全分析PythonClaude本地部署漏洞扫描多工具集成并行处理代码审计

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

token

工具数量(toolCount,工具数)

23

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiotoken部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP