用途
mcp-zap-server 旨在为 AI 智能体提供一个安全、自托管的 ZAP 操作器,用于引导式 Web 安全扫描、发现结果查看、报告生成以及生产环境护栏。它通过 MCP over streamable HTTP 暴露 ZAP 能力,让智能体工具能够运行由操作员控制的安全工作流,而无需脆弱的胶水脚本或不安全的扫描器访问。
该项目是独立实现,与 ZAP 项目无隶属或背书关系。
主要能力
- 引导式扫描:面向意图的工具,涵盖 spider、主动扫描、被动扫描、API 导入、发现结果、报告和扫描历史。
- 专家级 ZAP 控制:可选的底层工具,用于高级 ZAP 上下文、用户、扫描和报告工作流。
- 认证:默认使用 API 密钥模式,可选 JWT 模式并支持刷新和撤销。
- 运行时策略包:通过 zap_policy_dry_run 和策略模式配置支持试运行与强制执行。
- 扫描队列与历史:支持排队的主动扫描、传统 Spider、AJAX Spider 和 Client Spider 任务,具备基于声明的恢复、持久化 Postgres 状态和证据导出。
- 扩展契约:实验性的策略、保护、证据元数据和扩展元数据 API,并提供示例扩展打包。
- 操作护栏:请求体限制、速率限制、工作区配额、工具作用域授权、结构化日志、指标和审计事件。
- 部署路径:本地 Docker Compose、已发布的 JVM 容器镜像,以及用于 Kubernetes 的 Helm 图表。
使用方式
环境要求
- Docker Compose v2 或更新版本(docker compose),支持 --wait 和 --wait-timeout。
- 你自己的 MCP 客户端,需支持 Streamable HTTP 和自定义请求头。
快速开始
这些源文件准备的是 v0.16.0;发布和镜像发布尚待完成。在运行 --start 之前,请确认 GitHub Releases 和发布工作流中的发布状态。要使用已发布的版本,请运行 ./bin/bootstrap-local.sh 但不带 --start,在 .env 中将 IMAGE_TAG 设置为已验证的已发布版本,然后运行启动命令。现有设置和所选版本会被保留。
该脚本会创建缺失的设置、保留现有密钥和工作区数据,并启动带版本号的发布镜像。在容器健康检查和经过认证的 MCP 检查通过后,它会报告就绪。
连接 MCP 客户端
- 主机侧客户端的 MCP 端点:http://localhost:7456/mcp
- 认证:在 X-API-Key 请求头中发送 .env 中的 MCP_API_KEY
该技术栈运行 MCP 服务器、ZAP 和演示目标。请单独安装并配置你偏好的 MCP 客户端。
连接后,可尝试以下首个提示:
预期结果是完成一次爬取、一份发现摘要,以及客户端可读取的报告。此扫描请使用容器 URL http://juice-shop:3000;主机预览 http://localhost:3001 供浏览器使用。发现数量会有所不同;连接或扫描错误并不代表干净的结果。
默认技术栈将发布的端口绑定到回环地址。在更改访问或扫描目标设置之前,请查看 Quick Start Security。
发现元数据
仓库在 .mcp/server.json 中包含 MCP Registry 元数据。该元数据准备的是 0.16.0;镜像和 Registry 发布尚待完成。请使用与你部署的镜像相同版本的元数据。镜像包含 registry 和目录工具所期望的 MCP 服务器名称。在安装带版本号的镜像或发布其包元数据之前,请检查 GitHub Releases 和发布工作流;仅凭仓库元数据不能证明镜像可用。
Docker Compose 仍是最简单的安装路径,因为 MCP 服务器设计为与 ZAP sidecar 和显式认证密钥一起运行。OCI 包元数据适用于高级独立安装,此时 ZAP 已在运行且可从 MCP 容器访问。
适用场景
- 希望以安全、受控的方式让 AI 智能体执行 Web 安全扫描的团队。
- 需要自托管部署,并具备认证、策略和审计能力的场景。
- 本地开发测试可使用 Docker Compose,生产或共享部署可参考 JWT 认证、可选目标表单登录、认证扫描参考、滥用防护、生产就绪检查清单和安全策略等文档。
- 多副本队列、持久化 Postgres 状态、声明恢复和入口亲和性请参考运维文档。
限制
- 版本 v0.16.0 已在本地准备;发布、容器镜像和 MCP Registry 发布尚待完成。部署其镜像前请检查 GitHub Releases 和发布工作流。
- Apple Silicon 打包和私有 ChatGPT 连接工作仍为预览,具有单独的分发和安装检查;它们在此出现并不代表已公开可用。
- 默认安全态势较为保守:api-key 模式是基础运行时默认;none 模式仅用于显式本地开发/测试;Docker Compose 默认将发布端口绑定到回环地址;URL 验证默认阻止 localhost、私有网络和链路本地目标。
- 目标认证为可选,配置文件默认为空列表。启用时,引导式认证会将精确的服务器端凭据引用和登录设置绑定到一个已批准来源;调用方仅提供 profileId 和 targetUrl。
- 公共认证交换端点有速率限制。
- MCP 请求体有硬性早期大小上限。
- 目前并非运行时多引擎支持。额外的扫描器引擎需要适配器设计和显式故障关闭的能力边界,才能成为产品声明。
- 扩展模型当前公开工作有意保持较小;私有或企业能力可作为独立扩展构建,但企业实现代码不在此仓库中提供。
许可与支持
mcp-zap-server 是 Apache-2.0 许可的开源核心,旨在自托管 MCP 和 ZAP 工作流中独立使用。Agentic Lab 为在生产中采用公共核心的团队提供可选付费支持;商业支持与 Apache-2.0 许可的 OSS 分发是分开的,公共核心应可在没有私有扩展或付费服务的情况下使用。