关于 wass-mcp
WASS-MCP 是用于授权 Web 应用安全测试的 MCP 服务。它整合多种扫描器,支持并行全面扫描,并保存执行历史以供后续查看。
主要功能
- 01使用 Nikto 扫描 Web 服务器
- 02使用 Nuclei 模板检测漏洞
- 03使用 Wapiti 扫描 Web 应用
- 04使用 Shcheck 分析安全响应头
- 05并行扫描并汇总结果
- 06持久保存扫描执行历史
适用场景
- 01扫描获准测试的 Web 服务器漏洞
- 02检查网站的 HTTP 安全响应头
- 03并行运行多个扫描器并查看汇总报告
- 04浏览或管理以往扫描结果
MCP 相关
WASS-MCP 通过 Streamable HTTP 向 MCP 客户端提供扫描和历史记录工具,包括各扫描器工具及并行执行的 full_scan。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
WASS-MCP
用于 Web 应用安全扫描的模型上下文协议(MCP)服务。
功能
- MCP 协议支持 - 完全兼容 MCP 客户端(Claude 等)
- Nikto 集成 - Web 服务漏洞扫描
- Nuclei 集成 - 基于模板的漏洞扫描
- Wapiti 集成 - Web 应用漏洞扫描
- Shcheck 集成 - 安全标头分析
- 执行历史记录 - 持久化存储扫描结果
- 无状态设计 - 服务器重启后仍可正常运行,不会出现会话错误
- RESTful HTTP 传输 - 基于可流式传输的 HTTP MCP 协议
用法
docker run -p 127.0.0.1:8989:8989 tb0hdan/wass-mcp
MCP 客户端配置
将 WASS-MCP 服务添加到 Claude MCP 客户端的示例命令:
claude mcp add wass-mcp --transport http http://127.0.0.1:8989
或添加到 Gemini:
gemini mcp add wass-mcp --transport http http://127.0.0.1:8989
可用工具
nikto
使用 Nikto 执行 Web 服务漏洞扫描。
参数:
| 名称 | 类型 | 必填 | 描述 |
|---|---|---|---|
host | string | 是 | 目标主机名或 IP 地址 |
port | integer | 否 | 目标端口(默认:80) |
vhost | string | 否 | 虚拟主机标头 |
max_lines | integer | 否 | 最大输出行数 |
offset | integer | 否 | 输出行偏移量 |
示例:
{
"host": "192.168.1.100",
"port": 443
}
nuclei
使用 Nuclei 执行基于模板的漏洞扫描。
参数:
| 名称 | 类型 | 必填 | 描述 |
|---|---|---|---|
host | string | 是 | 目标主机名或 IP 地址 |
port | integer | 否 | 目标端口(默认:80) |
vhost | string | 否 | 虚拟主机标头 |
max_lines | integer | 否 | 最大输出行数 |
offset | integer | 否 | 输出行偏移量 |
检测的漏洞:
- 通过社区模板检测 CVE
- 错误配置
- 暴露的面板/仪表板
- 默认凭据
- 技术识别
- 安全标头分析
- 以及通过 8000+ 个社区模板检测的更多问题
示例:
{
"host": "192.168.1.100",
"port": 443
}
wapiti
使用 Wapiti 执行全面的 Web 应用漏洞扫描。
参数:
| 名称 | 类型 | 必填 | 描述 |
|---|---|---|---|
host | string | 是 | 目标主机名或 IP 地址 |
port | integer | 否 | 目标端口(默认:80) |
vhost | string | 否 | 虚拟主机标头 |
max_lines | integer | 否 | 最大输出行数 |
offset | integer | 否 | 输出行偏移量 |
检测的漏洞:
- SQL 注入 / 盲 SQL 注入
- 跨站脚本攻击(XSS)
- 文件包含 / 路径遍历
- 命令执行
- CRLF 注入
- 服务端请求伪造(SSRF)
- 开放重定向
- HTTP 安全标头
- 内容安全策略问题
示例:
{
"host": "192.168.1.100",
"port": 8080
}
shcheck_py
使用 shcheck.py 分析 HTTP 安全标头。
参数:
| 名称 | 类型 | 必填 | 描述 |
|---|---|---|---|
host | string | 是 | 目标主机名或 IP 地址 |
port | integer | 否 | 目标端口(默认:80) |
vhost | string | 否 | 虚拟主机标头 |
max_lines | integer | 否 | 最大输出行数 |
offset | integer | 否 | 输出行偏移量 |
分析的标头:
- Content-Security-Policy
- Strict-Transport-Security
- X-Frame-Options
- X-Content-Type-Options
- Referrer-Policy
- Permissions-Policy
- 以及其他与安全相关的标头
示例:
{
"host": "example.com",
"port": 443
}
full_scan
使用所有可用扫描器并行执行全面的安全扫描。
参数:
| 名称 | 类型 | 必填 | 说明 |
|---|---|---|---|
host | string | 是 | 目标主机名或 IP 地址 |
port | integer | 否 | 目标端口(默认值:80) |
vhost | string | 否 | 虚拟主机标头 |
max_lines | integer | 否 | 最大输出行数 |
offset | integer | 否 | 输出行偏移量 |
功能:
- 并行运行 nikto、nuclei、wapiti 和 shcheck 扫描器
- 将结果合并为统一报告
- 包含每个扫描器的耗时和状态
- 优雅地处理扫描器二进制文件缺失的情况
示例:
{
"host": "192.168.1.100",
"port": 8080
}
history
浏览和管理工具执行历史记录。
参数:
| 名称 | 类型 | 必填 | 说明 |
|---|---|---|---|
action | string | 是 | 可选值:list、get、delete、clear |
id | integer | 适用于 get/delete | 执行 ID |
limit | integer | 否 | 每页结果数(默认值:10) |
offset | integer | 否 | 分页偏移量 |
操作:
list- 分页列出执行历史记录get- 获取特定执行的完整详情delete- 根据 ID 删除特定执行记录clear- 删除所有执行历史记录
API 端点
| 端点 | 说明 |
|---|---|
POST /mcp | MCP 协议端点 |
GET / | 服务信息(JSON) |
GET /debug/pprof/* | 性能分析端点 |
开发和高级用法
源码构建要求
- Go 1.25+
- Nikto(
apt install nikto或等效命令) - Nuclei(
go install github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest) - Wapiti(
apt install wapiti或等效命令) - Shcheck(
pip install shcheck或从 GitHub 获取) - SQLite3
# Clone the repository
git clone https://github.com/tb0hdan/wass-mcp.git
cd wass-mcp
# Build
make build
# Run
./build/wass-mcp
启动服务
# Default (localhost:8989)
./build/wass-mcp
# Custom bind address
./build/wass-mcp --bind 0.0.0.0:8080
# Custom database path
./build/wass-mcp --db /var/lib/wass-mcp/data.db
# Debug mode
./build/wass-mcp --debug
配置选项
| 标志 | 默认值 | 说明 |
|---|---|---|
--bind | localhost:8989 | HTTP 服务绑定地址 |
--db | ./wass-mcp.db | SQLite 数据库文件路径 |
--debug | false | 启用调试日志 |
--version | - | 输出版本并退出 |
代码检查
make lint
测试
make test
项目结构
wass-mcp/
├── cmd/wass-mcp/ # Application entry point
├── pkg/
│ ├── server/ # MCP server wrapper
│ ├── storage/ # Database layer (SQLite/GORM)
│ ├── models/ # Data models
│ ├── tools/ # MCP tool implementations
│ │ ├── nikto/ # Nikto web server scanner
│ │ ├── wapiti/ # Wapiti web app scanner
│ │ ├── nuclei/ # Nuclei template scanner
│ │ ├── shcheck/ # Security headers checker
│ │ ├── fullscan/ # Parallel full scan
│ │ └── history/ # History management
│ └── types/ # Shared types and constants
├── docs/ # Documentation
└── build/ # Build output and coverage reports
安全声明
此工具仅供授权的安全测试使用。扫描任何系统前,请确保已获得适当授权。未经授权的扫描在您所在的司法管辖区可能违法。
项目说明
如需完整的项目说明、设计决策和架构概述,请参阅 项目说明 文档。
许可证
BSD 3-Clause License - 版权所有 (c) 2026,Bohdan Turkynevych。详情请参阅 LICENSE。
贡献
- Fork 此代码仓库
- 创建功能分支(
git checkout -b feature/new-tool) - 提交更改(
git commit -am 'Add new scanning tool') - 推送到分支(
git push origin feature/new-tool) - 创建 Pull Request
致谢
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。