Meet Yogui, the official guardian and mascot of MCP Verify.
## 📄 TL;DR
**企业级 MCP 服务器安全工具包**,提供 4 种接口:交互式 Shell、CLI 命令、MCP Server 工具、VSCode 扩展。具备 **智能模糊测试器 v1.0**(反馈循环 + 12 种变异策略)、**61 条安全规则**(涵盖 6 大威胁类别:OWASP Top 10、MCP 特定、OWASP LLM Top 10、多代理攻击、企业合规、AI 武器化)、多上下文工作区(开发/预发布/生产)、安全配置文件(轻量/均衡/激进)以及 LLM 语义分析(Gemini 免费层级)。输出 JSON/HTML/SARIF 报告,支持评分(0-100)和基线对比,适用于 CI/CD 生产环境。
## 🎯 谁适合使用?
- **MCP 服务器开发者** - 在上线前发现安全问题
- **DevSecOps 工程师** - 在 CI/CD 流水线中实现自动化安全验证
- **采用 MCP 的企业** - 确保第三方 MCP 服务器符合安全标准
## ⚡ 快速开始(3 分钟)
```
# Clone and build
git clone https://github.com/FinkTech/mcp-verify.git
cd mcp-verify
npm install
npm run build
# Option 1: Interactive Shell (recommended for exploration)
mcp-verify
> set target "node server.js"
> validate
> fuzz --tool "Echo Tool"
> exit
# Option 2: One-shot command (for scripts/CI-CD)
mcp-verify validate "node server.js"
```
**输出结果:**
```
✓ Validation complete
Validation Report:
──────────────────────────────────────────────────
Server: my-mcp-server
Status: ✓ Valid
Tools: 5 (5 valid)
Technical Vulnerability Score: 95/100 (EXCELLENT)
Quality Score: 92/100
──────────────────────────────────────────────────
JSON: ./reports/json/mcp-report-2026-02-03.json
HTML: ./reports/html/mcp-report-2026-02-03.html
```
```
flowchart LR
A[MCP Server\nstdio / HTTP / SSE] --> B[Handshake\nprotocol version\nserver name]
B --> C[Discovery\ntools · resources · prompts]
C --> D[Schema Validation\nJSON-RPC 2.0\nMCP spec]
C --> E[Security Scan\n61 rules · 6 blocks]
C --> F[Smart Fuzzer\n12 mutation strategies]
C --> G[LLM Analysis\noptional · semantic]
D & E & F & G --> H[Report\nJSON · HTML · SARIF\nMarkdown · Badge]
H --> I{Score}
I -->|≥ threshold| J[✅ Pass\nexit 0]
I -->|< threshold| K[❌ Fail\nexit 2]
```
📚 **更多示例**:[guides/EXAMPLES.md](./guides/EXAMPLES.md)
🎮 **交互式 Shell**:[查看下方](#-interactive-shell)
🔧 **设置 LLM 分析**:[guides/LLM_SETUP.md](./guides/LLM_SETUP.md)
🔄 **CI/CD 集成**:[guides/CI_CD.md](./guides/CI_CD.md)
## 🎁 你能获得什么
### 🔍 安全分析
| 功能 | 描述 |
| ---- | ---- |
| **💯 技术漏洞评分** | 企业级评分引擎(0-100),结合 61 条安全规则、智能模糊测试器 v1.0 与 LLM 分析 |
| **🛡️ 61 条安全规则** | OWASP Top 10(13 条)+ MCP 特定(8 条)+ OWASP LLM Top 10(9 条)+ 多代理(11 条)+ 合规(9 条)+ AI 武器化(11 条) |
| **🧬 智能模糊测试器 v1.0** | 智能载荷生成,支持反馈循环、12 种变异策略、指纹识别与定时检测 |
| **📜 协议合规性** | 验证 JSON-RPC 2.0 与 MCP 2024-11-05 规范 |
| **👤 安全配置文件** | `light`(快速 CI/CD)、`balanced`(默认)、`aggressive`(深度审计)+ 自定义配置文件 |
### 🛠️ 工具与接口
| 功能 | 描述 |
| ---- | ---- |
| **🎮 交互式 Shell** | 具备自动补全、历史记录、多上下文工作区、输出重定向的完整 REPL |
| **💻 CLI 命令** | 11 个安全工具(validate、fuzz、stress、doctor、proxy、play、dashboard、mock、init、examples、fingerprint) |
| **🤖 MCP Server** | 7 个 MCP 工具供 AI 代理使用(validateServer、scanSecurity、analyzeQuality、generateReport、listInstalledServers、selfAudit、compareServers) |
| **📦 VSCode 扩展** | 实时扫描、4 个树形视图、诊断、代码操作、报告面板 |
| **📊 Web 仪表板** | 实时监控([查看文档](./apps/web-dashboard/README.md)) |
### 📊 分析与报告
| 功能 | 描述 |
| ---- | ---- |
| **🧠 LLM 语义分析** | 可选 AI 深度检查(Gemini 免费层级、Anthropic、Ollama、OpenAI) |
| **📄 多种报告格式** | JSON(CI/CD)、HTML(人类可读)、SARIF(GitHub)、Markdown、SVG 徽章 |
| **📈 基线对比** | [回归检测](./REGRESSION-DETECTION.md) 与可自定义的分数下降阈值 |
| **🌍 多语言** | 英语 + 西班牙语(i18n 系统) |
| **🚀 CI/CD 就绪** | 退出码(`0`=通过、`1`=警告、`2`=严重)+ GitHub Actions 集成 |
## 📦 安装
### 方法 1:从源码安装(推荐)✅
```
git clone https://github.com/FinkTech/mcp-verify.git
cd mcp-verify
npm install
npm run build
# Use directly
node dist/mcp-verify.js validate "node server.js"
# Or create alias (Linux/macOS)
alias mcp-verify="node $(pwd)/dist/mcp-verify.js"
```
### 方法 2:NPM 包安装 ✅
```
npm install -g mcp-verify
mcp-verify validate "node server.js"
```
### 方法 3:独立二进制文件 ✅
```
# High-performance native binary using Node SEA
npm run compile # Current platform only
npm run compile:all # All platforms (Linux, macOS, Windows)
# Use the binary directly
./dist/bin/linux/mcp-verify validate "node server.js" # Linux
./dist/bin/macos/mcp-verify validate "node server.js" # macOS
./dist/bin/windows/mcp-verify.exe validate "node server.js" # Windows
```
## 🎮 交互式 Shell
mcp-verify 包含一个**功能完整的交互式 Shell**,用于探索性测试和工作流自动化:
```
# Start interactive mode (default if no command specified)
mcp-verify
# Or explicitly
mcp-verify interactive
```
### 功能特性
| 功能 | 描述 |
| ---- | ---- |
| **上下文自动补全** | 命令、标志、文件路径与工具名称的 Tab 补全 |
| **持久化历史记录** | 命令历史保存在 `~/.mcp-verify/history.json`(跨会话) |
| **多上下文工作区** | 独立管理开发/预发布/生产环境 |
| **输出重定向** | 保存命令输出:`validate > report.txt` 或 `fuzz >> results.log` |
| **密钥脱敏** | 自动从历史记录中脱敏 API 密钥 |
| **会话持久化** | 状态保存在 `.mcp-verify/session.json`(每个项目) |
### 交互式命令
```
# Session management
set target "node server.js" # Set default target
set lang es # Change language to Spanish
status # Show session status
history # Show command history
history --clear # Clear all history
# Multi-context commands
context list # List all contexts
context switch staging # Switch to staging context
context create testing # Create new context
# Security profiles
profile set aggressive # Switch to aggressive profile
profile save my-audit # Save current config as custom profile
profile list # List available profiles
# Security tools (all CLI commands work in shell)
validate # Validate current target
fuzz --tool "Echo Tool" # Fuzz specific tool
doctor # Run diagnostics
stress --users 20 # Load test with 20 concurrent users
# Shell utilities
clear # Clear screen
exit # Exit shell
help # Show all available commands with descriptions
```
### 提示符标识
提示符会显示当前上下文与配置文件:
```
# Default context
mcp-verify (balanced) >
# Named context with target
[my-project] mcp-verify (dev:aggressive) node server.js >
```
📚 **完整 Shell 指南**:[apps/cli-verifier/CLAUDE.md](./apps/cli-verifier/CLAUDE.md)
## 🎯 多上下文工作区
支持管理多个服务器配置(开发、预发布、生产),各配置独立:
### 创建上下文
```
# Interactive mode
mcp-verify
> context create dev
> set target "node dev-server.js"
> profile set light
> context create staging
> set target "https://staging.example.com/mcp"
> profile set balanced
> context create prod
> set target "https://prod.example.com/mcp"
> profile set aggressive
```
### 切换上下文
```
> context list
Contexts (3):
● dev node dev-server.js light
○ staging https://staging.example.com/mcp balanced
○ prod https://prod.example.com/mcp aggressive
> context switch prod
✓ Switched to context: prod
Target: https://prod.example.com/mcp
Profile: aggressive
```
### 上下文隔离
每个上下文包含:
- **独立目标**(stdio 命令或 HTTP URL)
- **独立安全配置文件**(轻量/均衡/激进/自定义)
- **独立配置**(超时、LLM 设置等)
- **独立工具发现**(缓存可用工具)
**持久化**:所有上下文保存在 `.mcp-verify/session.json`(每个项目工作区)
## 🛡️ 安全配置文件
通过内置或自定义配置文件控制模糊测试强度与验证严格度:
### 内置配置文件
| 配置文件 | 使用场景 | 载荷数 | 变异数 | 分数阈值 | 失败条件 |
| -------- | -------- | ------ | ------ | -------- | -------- |
| **light** | 快速检查、CI/CD | 25 | 0 | 60 | 严重 |
| **balanced** | 常规测试(默认) | 50 | 3 | 70 | 严重 |
| **aggressive** | 预生产审计 | 100 | 5 | 90 | 严重 + 高 |
### 配置文件对比
```
# Light profile (fast, CI-friendly)
validate "node server.js" --profile light
# ~30 seconds, catches obvious issues
# Balanced profile (default, thorough)
validate "node server.js"
# ~2 minutes, good coverage
# Aggressive profile (comprehensive)
validate "node server.js" --profile aggressive
# ~5 minutes, maximum detection
```
### 自定义配置文件
可保存当前配置为可复用配置文件:
```
# Interactive mode
mcp-verify
> profile set balanced # Start from balanced
> set fuzz.maxPayloadsPerTool 75 # Customize
> set validate.minScore 85
> profile save my-audit # Save as custom profile
# Use custom profile
> profile set my-audit
> validate
```
**存储位置**:自定义配置文件保存在 `~/.mcp-verify/config.json`(全局,跨项目)
📊 **配置文件细节**:每个配置文件控制:
- 每个工具的载荷数量
- 变异策略(SQL 深度、Unicode 绕过、定时探测等)
- 异常检测阈值
- 分数要求(最低可接受分数)
- 失败条件(失败于严重、失败于高)
## 🛠️ 核心命令
### 基础验证
```
# Validate MCP server
mcp-verify validate "node server.js"
# With LLM semantic analysis (Ollama - free, local)
mcp-verify validate "node server.js" --llm ollama:llama3.2
# Generate all report formats
mcp-verify validate "node server.js" --html --format sarif
```
### CI/CD 集成
```
# Fail build if critical issues found
mcp-verify validate "node server.js" --fail-on-degradation
# Compare against baseline (regression detection)
mcp-verify validate "node server.js" \
--save-baseline baseline.json # First run: save baseline
mcp-verify validate "node server.js" \
--compare-baseline baseline.json \ # Future runs: compare
--fail-on-degradation # Exit code 2 if scores drop
```
### 故障排查
```
# Diagnose connection issues
mcp-verify doctor "node server.js"
# Run mock server for testing
mcp-verify mock --port 3000
```
### 可用命令列表
| 命令 | 用途 | 文档 |
| ---- | ---- | ---- |
| `validate` | 包含 61 条安全规则的完整安全验证(6 大威胁类别) | [EXAMPLES.md](./guides/EXAMPLES.md) |
| `fuzz` | 智能模糊测试(含反馈循环与变异) | [COMMANDS.md](./COMMANDS.md#fuzz) |
| `stress` | 负载/并发测试 | [EXAMPLES.md](./guides/EXAMPLES.md) |
| `doctor` | 诊断、环境检查与二进制完整性验证 | [Doctor 章节](#-doctor--diagnostics--integrity) |
| `proxy` | 具备 5 层安全网关的透明代理 | [Proxy 章节](#-security-proxy-with-guardrails) |
| `play` | 交互式工具测试沙盒 | 内置帮助 |
| `dashboard` | 实时终端监控(Blessed UI) | 内置帮助 |
| `mock` | 模拟 MCP 服务器用于客户端测试 | 内置帮助 |
| `init` | 搭建新的 MCP 服务器项目 | 内置帮助 |
| `examples` | 交互式示例浏览器 | 内置帮助 |
| `fingerprint` | 服务器技术识别 | 内置帮助 |
| `interactive` | 启动交互式 Shell(默认模式) | [交互式 Shell](#-interactive-shell) |
### 🩺 Doctor – 诊断与完整性检查
`doctor` 命令执行全面的系统诊断与二进制完整性验证:
```
# Full diagnostic report
mcp-verify doctor "node server.js"
# Watch mode (auto-refresh every 5s)
mcp-verify doctor --watch
# Verbose output with detailed steps
mcp-verify doctor --verbose
# Generate reports
mcp-verify doctor --html --output ./reports
```
**二进制完整性管理**(跟踪 CLI + 服务器二进制文件):
```
# Show integrity history (last 20 builds)
mcp-verify doctor --show-history
# Regenerate hashes without full rebuild
mcp-verify doctor --fix-integrity
# Clean old history (keep last 10 builds)
mcp-verify doctor --clean-history 10
```
**Doctor 检查内容**:
- ✅ 二进制完整性(CLI 与服务器的 SHA-256 校验)
- ✅ 环境(Node.js、Python、Git、Deno 运行时)
- ✅ MCP 服务器连接与握手
- ✅ 敏感环境变量审计
**完整性特性**:
- 分别跟踪 CLI 与服务器二进制文件
- 保留最近 20 个构建记录(可配置)
- 每个构建的 Git 提交可追溯
- 崩溃安全的原子文件操作
- 存储于 `.mcp-verify/integrity-history.json`(即使清理后仍保留)
## 🚦 退出码
mcp-verify 使用标准退出码用于 CI/CD 集成:
| 编码 | 含义 | 描述 |
| ---- | ---- | ---- |
| **0** | ✅ 成功 | 服务器通过验证 |
| **1** | ⚠️ 警告 | 发现非关键问题 |
| **2** | ❌ 严重 | 安全漏洞或基线降级 |
**CI/CD 用法**:
```
# GitHub Actions example
- name: Validate MCP Server
run: mcp-verify validate "node server.js"
# Fails workflow if exit code is 2 (critical issues)
```
📚 **完整 CI/CD 指南**:[guides/CI_CD.md](./guides/CI_CD.md)
## 🔐 安全规则
mcp-verify 检查 **61 个安全漏洞**,覆盖 **6 大威胁类别**:
```
block-beta
columns 3
OWASP["📦 Block OWASP\nSEC-001–013\n13 rules\nOWASP Top 10"]:1
MCP["🔌 Block MCP\nSEC-014–021\n8 rules\nMCP-Specific"]:1
A["🤖 Block A\nSEC-022–030\n9 rules\nOWASP LLM Top 10"]:1
B["🤝 Block B\nSEC-031–041\n11 rules\nMulti-Agent Attacks"]:1
C["🏢 Block C\nSEC-042–050\n9 rules\nEnterprise Compliance"]:1
D["⚔️ Block D\nSEC-051–061\n11 rules\nAI Weaponization"]:1
```
📦 Block OWASP:OWASP Top 10 对应(SEC-001 到 SEC-013)
| 规则 | 严重度 | 描述 | OWASP 映射 |
| ---- | ------ | ---- | ---------- |
| SEC-001 | 高 | 认证绕过 | A07:2021 |
| SEC-002 | 严重 | 命令注入 | A03:2021 |
| SEC-003 | 高 | SQL 注入 | A03:2021 |
| SEC-004 | 高 | 服务器端请求伪造 (SSRF) | A10:2021 |
| SEC-005 | 高 | XML 外部实体注入 (XXE) | A05:2021 |
| SEC-006 | 高 | 反序列化不安全 | A08:2021 |
| SEC-007 | 高 | 路径遍历 | A01:2021 |
| SEC-008 | 中 | 数据泄露 | A01:2021 |
| SEC-009 | 高 | 敏感数据暴露 | A02:2021 |
| SEC-010 | 中 | 缺少速率限制 | A04:2021 |
| SEC-011 | 中 | ReDoS(正则表达式 DoS) | A04:2021 |
| SEC-012 | 高 | 弱加密 | A02:2021 |
| SEC-013 | 高 | 提示注入 | 新兴 |
🔌 Block MCP:MCP 特定安全(SEC-014 到 SEC-021)
| 规则 | 严重度 | 描述 | 类别 |
| ---- | ------ | ---- | ---- |
| SEC-014 | 高 | 暴露网络端点 | MCP 安全 |
| SEC-015 | 高 | 缺少认证 | MCP 安全 |
| SEC-016 | 中 | 不安全的 URI 方案 | MCP 安全 |
| SEC-017 | 中 | 工具权限过大 | MCP 安全 |
| SEC-018 | 中 | 描述中的密钥 | MCP 安全 |
| SEC-019 | 中 | 缺少输入约束 | MCP 安全 |
| SEC-020 | 中 | 危险工具链 | MCP 安全 |
| SEC-021 | 高 | 未加密凭证 | MCP 安全 |
🤖 Block A:OWASP LLM Top 10 在 MCP 上下文(SEC-022 到 SEC-030)
| 规则 | 严重度 | 描述 | OWASP LLM |
| ---- | ------ | ---- | --------- |
| SEC-022 | 高 | 过度代理 | LLM01 |
| SEC-023 | 高 | 工具提示注入 | LLM01 |
| SEC-024 | 严重 | 工具输入提示注入 | LLM01 |
| SEC-025 | 高 | 供应链工具依赖 | LLM03 |
| SEC-026 | 中 | 工具响应中的敏感数据 | LLM06 |
| SEC-027 | 中 | 训练数据投毒 | LLM03 |
| SEC-028 | 中 | 工具 DoS | LLM04 |
| SEC-029 | 中 | 不安全的插件设计 | LLM07 |
| SEC-030 | 中 | 过度数据披露 | LLM06 |
🤝 Block B:多代理与代理攻击(SEC-031 到 SEC-041)
| 规则 | 严重度 | 描述 | 类别 |
| ---- | ------ | ---- | ---- |
| SEC-031 | 高 | 工具结果篡改 | 多代理 |
| SEC-032 | 高 | 递归代理循环 | 多代理 |
| SEC-033 | 高 | 多代理权限提升 | 多代理 |
| SEC-034 | 中 | 代理状态投毒 | 多代理 |
| SEC-035 | 中 | 分布式代理 DDoS | 多代理 |
| SEC-036 | 高 | 代理协同攻击 | 多代理 |
| SEC-037 | 高 | 代理身份伪造 | 多代理 |
| SEC-038 | 高 | 跨代理提示注入 | 多代理 |
| SEC-039 | 中 | 代理声誉劫持 | 多代理 |
| SEC-040 | 中 | 工具链路径遍历 | 多代理 |
| SEC-041 | 中 | 代理内存注入 | 多代理 |
🏢 Block C:运营与企业合规(SEC-042 到 SEC-050)
| 规则 | 严重度 | 描述 | 类别 |
| ---- | ------ | ---- | ---- |
| SEC-042 | 中 | 缺少审计日志 | 合规 |
| SEC-043 | 中 | 不安全的会话管理 | 合规 |
| SEC-044 | 中 | 暴露端点 | 合规 |
| SEC-045 | 低 | 不安全的默认 | 合规 |
| SEC-046 | 中 | 缺少 CORS 验证 | 合规 |
| SEC-047 | 低 | 缺少模式版本控制 | 合规 |
| SEC-048 | 中 | 缺少功能协商 | 合规 |
| SEC-049 | 中 | 认证中的定时侧信道 | 合规 |
| SEC-050 | 低 | 输出熵不足 | 合规 |
⚔️ Block D:AI 武器化与供应链(SEC-051 到 SEC-061)
| 规则 | 默认状态 | 严重度 | 描述 | 类别 |
| ---- | -------- | ------ | ---- | ---- |
| SEC-051 | ❌ 禁用 | 高 | 武器化 MCP 模糊测试器 | 武器化 |
| SEC-052 | ❌ 禁用 | 严重 | 自主 MCP 后门 | 武器化 |
| SEC-053 | ❌ 禁用 | 严重 | 恶意配置文件 | 供应链 |
| SEC-054 | ✅ 启用 | 严重 | API 端点劫持 (CVE-2026-21852) | 供应链 |
| SEC-055 | ❌ 禁用 | 高 | 提权即服务 | 武器化 |
| SEC-056 | ❌ 禁用 | 高 | 通过 MCP 钓鱼 | 武器化 |
| SEC-057 | ❌ 禁用 | 中 | 通过隐写术的数据外泄 | 武器化 |
| SEC-058 | ❌ 禁用 | 严重 | 自复制 MCP | 武器化 |
| SEC-059 | ✅ 启用 | 高 | 未验证的工具授权 | 授权 |
| SEC-060 | ✅ 启用 | 中 | 缺少事务语义 | 可靠性 |
| SEC-061 | ✅ 启用 | 高 | 同形/Unicode 欺骗 | 供应链 |
**可接受的风险等级**:
- **生产环境**:分数 ≥ 90(优秀)
- **预发布环境**:分数 ≥ 70(良好)
- **内部工具**:分数 ≥ 50(一般)
📊 **详细评分**:[SECURITY_SCORING.md](./SECURITY_SCORING.md)
## 🤖 智能模糊测试器 v1.0
智能模糊测试器是一个**智能载荷生成引擎**,能够从服务器响应中学习并自动生成针对性变异:
### 关键特性
| 功能 | 描述 |
| ---- | ---- |
| **反馈循环** | 分析响应中的异常(定时、崩溃、错误)并生成变异 |
| **12 种变异策略** | SQL 深度、Null 字节注入、Unicode 绕过、定时探测、缓冲区压力、引号变化等 |
| **自动指纹识别** | 检测服务器语言/框架并禁用无关生成器(节省 40-60% 时间) |
| **9 个载荷生成器** | 提示注入、SQL/XSS/CMD 注入、JWT 攻击、原型污染、JSON-RPC 违规、模式混淆、路径遍历 |
| **10 个漏洞检测器** | 定时、错误披露、XSS、提示泄露、Jailbreak、路径遍历、弱 ID、信息泄露、协议违规等 |
| **基线校准** | 在异常检测前建立清晰的定时/尺寸基线 |
### 工作原理
```
flowchart TD
A[MCP Server\nDiscovered Tools] --> B[Initial Payloads\nlight · medium severity]
B --> C[Baseline Calibration\nnormal timing & size]
C --> D[Main Fuzzing Loop\nconcurrent execution]
D --> E{Response\nAnalysis}
E -->|timing anomaly\ncrash · error| F[Feedback Loop\ngenerate mutations]
E -->|normal| G[Next Payload]
F --> H[Mutation Queue\nhigh-priority first]
H --> D
D --> I[Vulnerability Detectors\n10 detectors · engine hints]
I --> J[Findings Report\nSQL · XSS · Prompt · Timing\nPath Traversal · Jailbreak]
```
### 智能变异
当模糊测试器检测到**有趣响应**(定时异常、崩溃、错误模式)时,会自动生成针对性变异:
```
# Example: SQL injection timing anomaly detected
Original payload: "' OR 1=1 --"
Response time: 2500ms (baseline: 120ms)
Mutations generated:
→ "' OR SLEEP(5) --" # Timing probe (confirm blind SQLi)
→ "' UNION SELECT * --" # SQL depth
→ "\" OR 1=1 --" # Quote variation
→ "\u0027 OR 1=1 --" # Unicode normalization
```
### 使用示例
```
# Basic fuzzing
mcp-verify fuzz "node server.js"
# Fuzz specific tool
mcp-verify fuzz "node server.js" --tool "DatabaseQuery"
# Aggressive fuzzing with fingerprinting
mcp-verify fuzz "node server.js" \
--profile aggressive \
--fingerprint \
--concurrency 5
# Stop on first crash
mcp-verify fuzz "node server.js" --stop-on-first
```
### 模糊测试器输出
```
Smart Fuzzer v1.0
──────────────────────────────────────────────────
Session : fuzz-1234567890-abc123
Duration : 45.23s
Payloads : 250/280
Vulns : 3 (2 critical, 1 high)
Errors : 0
── Feedback Loop ──────────────────────────────
Interesting responses : 12
Mutations injected : 45
Mutation rounds : 2
Timing anomalies : 5
Structural drifts : 4
Server crashes : 1
```
📚 **模糊测试器架构**:[libs/fuzzer/CLAUDE.md](./libs/fuzzer/CLAUDE.md)
### 🛡️ 具备 3 层网关 + 紧急停止的透明安全代理
`proxy` 命令创建一个**透明 MCP 代理**,内置 **安全网关 v1.0**:3 层防御系统 + 客户端感知的紧急停止机制:
### 安全网关架构(3 层)
**实时威胁检测,采用渐进式分析:**
| 层级 | 类型 | 延迟 | 检测方法 | 使用时机 |
| ---- | ---- | ---- | -------- | -------- |
| **第 1 层:快速规则** | 静态模式 | <10ms | 正则表达式 + 硬编码模式 | 每个请求(SQL/CMD 注入、路径遍历) |
| **第 2 层:可疑规则** | 启发式分析 | <50ms | 评分 + 异常检测 | 第 1 层通过时(工具链、过度权限) |
| **第 3 层:LLM 规则** | 深度语义 | 500-2000ms | AI 驱动的上下文分析 | 可选启用(语义攻击、新型威胁) |
**关键特性**:
- **可解释的阻断** - 每次拒绝都包含:规则 ID、严重度、CWE、OWASP 映射、修复步骤
- **缓存优先策略** - SHA-256 哈希 + 60 秒 TTL + LRU 淘汰(1000 条记录)
- **客户端感知状态** - 每个客户端独立跟踪紧急停止(防止 DoS 攻击)
### 3 击停止紧急停止系统
**针对 HTTP 429(速率限制)错误的渐进退避机制:**
| 击数 | 退避时间 | 触发条件 | 行为 |
| ---- | -------- | -------- | ---- |
| **第 1 击** | 30 秒 | 首次 429 错误 | 客户端被阻塞 30 秒,自动恢复 |
| **第 2 击** | 60 秒 | 同一会话内第二次 429 | 客户端被阻塞 60 秒,记录警告 |
| **第 3 击** | 永久 | 同一会话内第三次 429 | **紧急停止模式** - 客户端被永久阻塞,直到代理重启 |
**客户端识别优先级**:
1. `x-client-id` 头部(显式指定)
2. `x-forwarded-for` 头部(代理链)
3. `remoteAddress`(直接连接)
4. `default-client`(默认值)
### 5 个内置防护门
| 防护门 | 防护内容 | 示例 |
| ---- | ---- | ---- |
| **HTTPS 强制** | 将 HTTP 升级为 HTTPS | `http://api.com` → `https://api.com` |
| **输入净化** | 移除恶意模式(`