# VulnClaw MCP 工具部署方案

## 概览

VulnClaw 保留 4 个 MCP 服务，其中 2 个本地实现开箱即用，2 个需部署外部服务。

| 服务 | 模式 | 状态 | 用途 |
|---|---|---|---|
| fetch | 本地 (httpx) | 开箱即用 | HTTP 请求/API 测试 |
| memory | 本地 (JSON) | 开箱即用 | 跨会话记忆持久化 |
| chrome-devtools | stdio MCP | 需部署 | 浏览器自动化/JS 执行/截图 |
| burp | stdio MCP | 需部署 | 抓包/重放/HTTP 拦截（替代 Yakit） |

---

## 1. Chrome DevTools MCP

### 仓库

https://github.com/ChromeDevTools/chrome-devtools-mcp

### 前置条件

- Node.js LTS (v20+)
- Chrome 浏览器（Stable 或 Chrome for Testing）
- ffmpeg（screencast 功能需要，可选）

### 安装

无需手动安装，VulnClaw 配置中已使用 `npx -y chrome-devtools-mcp@latest` 自动拉取。

### 启动 Chrome 远程调试

PowerShell:

```powershell
& "C:\Program Files\Google\Chrome\Application\chrome.exe" --remote-debugging-port=9222 --user-data-dir=C:\tmp\chrome-debug
```

cmd:

```bat
"C:\Program Files\Google\Chrome\Application\chrome.exe" --remote-debugging-port=9222 --user-data-dir=C:\tmp\chrome-debug
```

Linux/Mac:

```bash
google-chrome --remote-debugging-port=9222 --user-data-dir=/tmp/chrome-debug
```

### VulnClaw 配置

编辑 `~/.vulnclaw/config.yaml`，Windows 默认路径为 `C:\Users\<用户名>\.vulnclaw\config.yaml`：

```yaml
mcp:
  servers:
    chrome-devtools:
      enabled: true
      transport:
        type: stdio
        command: npx
        args:
          - "-y"
          - "chrome-devtools-mcp@latest"
          - "--browser-url=http://127.0.0.1:9222"
```

可以通过 CLI 启用 Chrome DevTools MCP：

```bash
vulnclaw config set mcp.servers.chrome-devtools.enabled true
```

如需指定 `--browser-url`，仍需编辑上面的 `config.yaml`。

### 提供的能力（31+ 工具）

- **输入自动化**: 点击、拖拽、表单填充、对话框处理
- **导航**: 页面管理、URL 跳转、元素等待
- **性能分析**: Trace 录制、Google CrUX 集成
- **网络**: 请求监控、网络拦截
- **调试**: 截图、Console 日志、Lighthouse 审计
- **内存**: 堆快照分析
- **模拟**: 设备/视口模拟

### 渗透测试场景

- 访问目标页面截图取证
- 执行 JS 检测 DOM XSS
- 监控网络请求发现 API 端点
- 自动化表单交互测试 CSRF/认证绕过

---

## 2. Burp Suite MCP（替代 Yakit）

### 仓库

https://github.com/PortSwigger/mcp-server

### 前置条件

- Java（PATH 中可用，`java --version` 验证）
- Burp Suite Professional（Community 版功能有限）
- `jar` 命令可用

### 安装步骤

#### Step 1: 克隆并构建

```bash
git clone https://github.com/PortSwigger/mcp-server.git burp-mcp
cd burp-mcp
./gradlew embedProxyJar
# Windows 用: gradlew.bat embedProxyJar
# 产物: build/libs/burp-mcp-all.jar
```

#### Step 2: 加载到 Burp Suite

1. 打开 Burp Suite -> Extensions 标签页
2. 点击 Add -> Type 选择 Java
3. 选择 `build/libs/burp-mcp-all.jar`
4. 点击 Next 完成加载

#### Step 3: 启用 MCP Server

1. 在 Burp 中找到 MCP 标签页
2. 勾选 "Enabled"
3. 默认监听 `http://127.0.0.1:9876`
4. 可选：修改 Host/Port

### VulnClaw 配置

编辑 `~/.vulnclaw/config.yaml`，Windows 默认路径为 `C:\Users\<用户名>\.vulnclaw\config.yaml`：

```yaml
mcp:
  servers:
    burp:
      enabled: true
      transport:
        type: sse
        url: "http://127.0.0.1:9876"
```

VulnClaw 直接连接 Burp 扩展暴露的 SSE 服务，不再通过 `java -jar` 代理启动 Burp MCP。

### 提供的能力

- **抓包**: 查看 Proxy History 中的请求/响应
- **重放**: 构造并发送自定义 HTTP 请求
- **拦截**: 实时修改请求/响应
- **扫描**: 调用 Burp Scanner（Pro 版）
- **Intruder**: 参数化攻击

### 替代 Yakit 的对照

| 功能 | Yakit | Burp MCP |
|---|---|---|
| MITM 抓包 | MITM 劫持 | Proxy History |
| 请求重放 | Web Fuzzer | send_http1_request |
| 流量分析 | 流量分析 | get_proxy_history |
| 漏洞扫描 | 插件扫描 | Burp Scanner |
| MCP 集成 | 未实现 (Issue #2703) | 官方支持 v1.3.0 |

---

## 快速验证

### 验证 Chrome DevTools MCP

```bash
# 1. 启动 Chrome 调试模式
# 2. 启动 VulnClaw
vulnclaw chat

# 3. 输入测试命令
> 打开 http://example.com 并截图
```

### 验证 Burp MCP

```bash
# 1. 启动 Burp Suite 并启用 MCP 扩展
# 2. 启动 VulnClaw
vulnclaw chat

# 3. 输入测试命令
> 查看 Burp 抓包历史
```

---

## 故障排查

### Chrome DevTools 连不上

1. 确认 Chrome 已启动远程调试：`curl http://127.0.0.1:9222/json`
2. 确认 Node.js 已安装：`node --version`
3. 尝试手动运行：`npx -y chrome-devtools-mcp@latest --browser-url=http://127.0.0.1:9222`
4. 如需连接固定调试端口，确认 `config.yaml` 中包含 `--browser-url=http://127.0.0.1:9222`

### Burp MCP 连不上

1. 确认 Burp 中 MCP 标签页显示 "Enabled"
2. 确认端口可达：`curl http://127.0.0.1:9876`
3. 确认 Java 版本：`java --version`（需要 Java 11+）
4. 检查 JAR 路径是否正确
