MCP ZAP Server
Give AI agents a safe, self-hosted OWASP ZAP operator for guided web security scans, findings, reports, and production guardrails.
备注 此项目不隶属于OWASP或OWASP ZAP项目,也不受其认可。这是一个独立的实施。
mcp-zap-server 通过可流式HTTP上的MCP公开OWASP ZAP,因此代理工具可以运行操作员控制的安全工作流,而无需脆弱的胶水脚本或不安全的扫描仪访问。
在需要时使用它:
- 安全代理扫描 具有spider、主动扫描、被动扫描、API导入、发现和报告的引导默认值
- 操作员控制 通过API-key或JWT身份验证、工具范围、运行时策略捆绑包、速率限制和审核事件
- 自托管部署 Docker Compose用于本地采用,Helm用于Kubernetes
- ZAP专家访问 当您有意需要较低级别的ZAP上下文、用户、扫描和报告控件时
完整文档: danieltse.org/mcp-zap-server
快速开始
先决条件:
- Docker 20.10+
- Docker Compose v2(
docker compose) - 支持MCP的客户端,或捆绑的Open WebUI客户端
git clone https://github.com/dtkmn/mcp-zap-server.git
cd mcp-zap-server
./bin/bootstrap-local.sh
./dev.sh
./bin/self-serve-doctor.sh这些脚本是支持的本地快乐之路,而不是隐藏的魔法:
bootstrap-local.sh创造.env,生成本地API密钥,并准备ZAP工作空间。dev.sh使用更快的JVM映像启动Docker Compose堆栈。self-serve-doctor.sh检查Docker、auth、MCP初始化,tools/list、引导工具和无害的工具调用。
然后打开:
- 打开WebUI:
http://localhost:3000 - 主机侧客户端的MCP端点:
http://localhost:7456/mcp - 游标配置示例:
examples/cursor/mcp.json
扫描捆绑的演示目标时,使用ZAP可以使用的容器URL 从内部进行创作:
- 果汁店扫描目标:
http://juice-shop:3000 - 宠物店扫描目标:
http://petstore:8080
默认的Compose堆栈在上发布主机端口 127.0.0.1 只有。集 MCP_ZAP_BIND_ADDRESS=0.0.0.0 只有当您有意公开受信任网络控件背后的堆栈时。
客户端设置:
发现元数据
此存储库包含MCP注册表元数据 .mcp/server.jsonThe v0.8.0 Docker镜像被标记为注册表和目录工具所期望的MCP服务器名称。
Docker Compose仍然是最简单的安装路径,因为MCP服务器被设计为使用OWASP ZAP sidecar和显式身份验证密钥进行操作。OCI包元数据用于高级独立安装,其中OWASP ZAP已在运行并可从MCP容器访问。
所得
- 引导式扫描:用于spider、主动扫描、被动扫描、API导入、发现、报告和扫描历史记录的意图优先工具。
- ZAP控制专家:用于高级ZAP上下文、用户、扫描和报告工作流的可选低级工具。
- 认证:默认API密钥模式,可选JWT模式,支持刷新和吊销。
- 运行时策略包:通过以下方式提供模拟运行和执法支持
zap_policy_dry_run以及策略模式配置。 - 扫描队列和历史记录:使用基于声明的恢复、持久的Postgres状态和证据导出对活动、蜘蛛和AJAX蜘蛛作业进行排队。
- 延期合同:实验性策略、保护、证据元数据和扩展元数据API,带有示例扩展打包。
- 操作护栏:请求主体限制、速率限制、工作区配额、工具范围授权、结构化日志、指标和审计事件。
- 部署路径:本地Docker Compose、面向生产的Compose和Kubernetes的Helm charts。
最新发布
v0.8.0 添加:
- public-preview扩展API发布和独立扩展示例
- 扫描历史发布证据和客户交接工具
- HA队列索赔围栏、调度员/结果应用者边界和Postgres比赛覆盖范围
- Docker镜像打包强化、MCP Docker目录标签和本地镜像端口对齐
- 用于市场发现的MCP注册表元数据和代理安装说明
阅读完整笔记:
安全默认值
默认姿势是故意保守的:
api-keymode是基本运行时默认值。none模式仅用于显式本地开发/测试。- 默认情况下,Docker Compose将已发布的端口绑定到环回。
- 默认情况下,URL验证会阻止本地主机、专用网络和链接本地目标。
- 引导式身份验证使用凭证引用分配服务器端机密。
- 公共身份验证交换端点是速率受限的。
- MCP请求机构有一个硬性的早期规模上限。
生产和共享部署应审查:
建筑
flowchart LR
Client["Open WebUI / MCP Client"] -->|"MCP over Streamable HTTP"| MCP["MCP ZAP Server"]
MCP -->|"ZAP API"| ZAP["OWASP ZAP"]
ZAP -->|"scan"| Target["Authorized target app"]
MCP -->|"reports / findings / history"| Evidence["Evidence + reports"]对于多副本排队、持久的Postgres状态、声明恢复和入口关联,请使用操作文档而不是此README:
扩展模型
ZAP是第一个扫描引擎,而不是整个产品边界。当前 公共推广工作故意规模较小:
mcp-zap-extension-api打包选定的策略、保护、证据和
元数据契约没有网关运行时内部。
- 扩展如何工作 解释核心与
延伸边界。
显示了目标独立存储库形状。
解释发布阶段和兼容性门。
证明了一个单独的项目可以针对API工件进行编译。
这还不是运行时多引擎支持。需要额外的扫描引擎 适配器设计和明确的故障关闭能力边界 成为产品声明。
文档地图
从这里开始:
扫描:
操作:
开源核心和扩展模型
mcp-zap-server 是Apache2.0许可的开源核心。它本身对于自托管MCP和OWASP ZAP工作流非常有用。
私有或企业功能可以围绕此核心构建为单独的扩展。运行OSS项目不需要这些扩展,企业实现代码也不在此存储库中提供。
边界是有意的:
- 此存储库仍然是公共OSS分发
- 应记录扩展点,并在可行的情况下保持稳定
- 私有扩展不得削弱OSS核心的安全性、许可或可用性
- 此存储库的安全扫描和开源程序权限仅适用于此公共项目
贡献与支持
如果此项目为您节省了时间或成为您安全工作流程的一部分,您可以 赞助维护者 以支持持续的维护。
Agent Lab为在生产中采用公共核心的团队提供可选的付费支持。商业支持与Apache-2.0许可的OSS分发是分开的,公共核心应该在没有私有扩展或付费服务的情况下保持可用。
许可证
Apache许可证2.0。版权所有2025-2026谢。看 许可证.
