VulnClaw MCP 服务连不上?3 步健康检查与诊断指南
【免费下载链接】VulnClaw基于 AI Agent + MCP 工具链 + 渗透 Skill 编排, 配合大语言模型, 自然语言输入 → 自动完成「信息收集 → 漏洞发现 → 漏洞利用 → 报告生成」全流程。项目地址: https://gitcode.com/GitHub_Trending/vu/VulnClaw
VulnClaw是一款基于 AI Agent + MCP 工具链 + 渗透 Skill 编排的自动化渗透测试工具,自然语言输入即可完成「信息收集 → 漏洞发现 → 漏洞利用 → 报告生成」全流程。其中 MCP(Model Context Protocol)服务是它连接浏览器、抓包器等外部工具的桥梁。当服务连不上时,不用慌——本文带你用vulnclaw doctor一键完成健康检查,并逐项排查最常见的几类问题。
一、先跑 vulnclaw doctor:一键环境自检
遇到 MCP 连不上,第一步永远是先跑官方自带的环境诊断命令:
vulnclaw doctor这条命令会检查以下内容(实现位于 vulnclaw/cli/main.py):
| 检查项 | 作用 |
|---|---|
| Python 版本 | 运行 VulnClaw 本体 |
| Node.js / npx | chrome-devtools 等 stdio 型 MCP 服务的启动器 |
| uvx / nmap | 可选依赖,缺失不致命 |
| LLM 配置 | Provider、认证模式、密钥是否就绪 |
| MCP 服务状态 | 每个服务的 enabled/disabled、运行模式、暴露的工具数 |
💡小技巧:doctor 输出中若某服务显示[red]error,会紧跟一行具体错误类型和描述,直接照它处理即可,无需翻日志。
诊断数据由统一的 MCP 诊断服务生成(vulnclaw/mcp/diagnostics.py),CLI 和 Web 面板共用同一套逻辑,因此命令行看到的与网页端看到的永远一致。
二、看懂状态:healthy / degraded / unavailable
VulnClaw 对每个 MCP 服务维护实时健康分,判定规则很简单(vulnclaw/mcp/lifecycle.py):
- 🟢healthy:近期调用成功率 > 90%
- 🟡degraded:成功率 50%~90%,服务能用但不稳定
- 🔴unavailable:成功率 < 50%,或子进程已死亡
值得注意的是:服务挂掉后系统会自动最多重启 3 次,采用指数退避(1s、2s、4s),三次都失败才标记为 unavailable。也就是说,你看到的红色状态是"重试过但确实起不来",可以直接进入下面的逐项排查。
三、按传输类型排查:stdio 与 SSE 两条线
VulnClaw 默认保留 4 个 MCP 服务:fetch、memory是本地实现开箱即用,chrome-devtools(stdio 传输)和burp(SSE 传输)需要部署外部服务。完整部署方案见官方文档 docs/mcp-deployment.md。
chrome-devtools(stdio)连不上时查这 4 项
- Chrome 是否开启了远程调试:
curl http://127.0.0.1:9222/json有 JSON 返回才算正常 - Node.js 是否安装:
node --version(需 v20+) - 手动拉起 MCP:
npx -y chrome-devtools-mcp@latest --browser-url=http://127.0.0.1:9222 - 配置里是否带调试端口:
config.yaml中需包含--browser-url=http://127.0.0.1:9222
⚠️ 一个易踩的坑:探测阶段对npx/pnpx这类包管理器命令会主动跳过真实探测,避免健康检查触发意外下载(见 vulnclaw/mcp/_probe_mixin.py)。所以如果提示 "stdio probe skipped",先手动把 MCP 包跑通再回来。
Burp MCP(SSE)连不上时查这 4 项
- Burp 的 MCP 标签页是否显示Enabled
- 端口是否可达:
curl http://127.0.0.1:9876 - Java 版本是否达标:
java --version(需 11+) - 加载的 JAR 路径是否正确
四、对照错误类型快速定位
探测失败时,诊断信息会带上error_type字段,常见取值与对策如下:
| 错误类型 | 含义 | 对策 |
|---|---|---|
sdk_unavailable | MCP Python SDK 未安装 | 重新安装 VulnClaw 完整依赖 |
config_error | 配置缺失(如 stdio 无 command、SSE 无 url) | 检查~/.vulnclaw/config.yaml |
attach_failed | 连上了但协议握手失败/服务不可达 | 按第三节逐项检查端口与进程 |
startup_error/restart_error | 启动或自动重启失败 | 手动运行该 MCP 服务查看原始报错 |
配置修改也可以直接用命令完成,例如:
vulnclaw config set mcp.servers.chrome-devtools.enabled true五、Web 面板也能看健康状态
如果你习惯用图形界面,Web 后端的 MCP 服务模块(vulnclaw/web/services/mcp_service.py)会返回与 doctor 完全一致的诊断视图,包含每个服务的工具列表、调用次数、成功/失败计数(字段定义见 vulnclaw/mcp/schemas.py)。call_count/failure_count是判断"服务偶发抽风"的关键指标——只要失败次数持续上涨,就按本文流程重查一遍。
总结一句:先跑vulnclaw doctor看红字,再按error_type对号入座,90% 的 MCP 连接问题都能 5 分钟内定位。祝排查顺利!🚀
【免费下载链接】VulnClaw基于 AI Agent + MCP 工具链 + 渗透 Skill 编排, 配合大语言模型, 自然语言输入 → 自动完成「信息收集 → 漏洞发现 → 漏洞利用 → 报告生成」全流程。项目地址: https://gitcode.com/GitHub_Trending/vu/VulnClaw
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考