
MCP ZAP Server
io.github.dtkmnPublished by GitHub account dtkmnv0.17.1Updated Nov 5, 2026
Safe, self-hosted ZAP operator for guided AI security scans and reports.
Overview
Self-hosted MCP operator for OWASP ZAP that lets an assistant run guided web security scans, review findings and generate reports.
- What you can do
- Run guided crawls and scans: spider, AJAX Spider, Client Spider, passive and active scans, plus API schema imports
- Inspect scan policy and configure target authentication profiles
- Manage a scan queue and history with status, stop controls and recovery
- Review findings, baselines and scan history, then generate and read back reports
- Apply operator guardrails: tool scopes, runtime policy bundles, rate limits, audit events and metrics
- When to use it
- Useful when you want an AI agent to drive ZAP against web applications you are authorized to test, with guided defaults and operator controls instead of raw scanner access. Suited to self-hosted local or Kubernetes deployments where scan results and reports should stay in your own environment.
- Requirements
- Runs as a local Docker-based stack (Docker 20.10+ and Docker Compose v2 with --wait support) alongside a ZAP daemon; an MCP client with Streamable HTTP and custom-header support. Requires MCP_API_KEY, sent by clients in the X-API-Key header, and ZAP_API_KEY for the ZAP daemon; ZAP_API_URL and ZAP_API_PORT point at a separately running ZAP. Optional JWT mode and Postgres for durable queue state.
Installation
In SourceWeft
- Open MCP ZAP Server in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
MCP ZAP Server
Give AI agents a safe, self-hosted ZAP operator for guided web security scans, findings, reports, and production guardrails.
[GitHub stars] [GitHub forks] [GitHub tag] [GitHub license]
Note This project is not affiliated with or endorsed by the ZAP project. It is an independent implementation.
mcp-zap-server exposes ZAP through MCP over streamable HTTP so agentic tools can run operator-controlled security workflows without brittle glue scripts or unsafe scanner access.
Use it when you want:
- safe agentic scanning with guided defaults for spider, active scan, passive scan, API imports, findings, and reports
- operator control through API-key or JWT auth, tool scopes, runtime policy bundles, rate limits, and audit events
- self-hosted deployment with Docker Compose for local adoption and Helm for Kubernetes
- one guided tool catalog with queue-managed scan starts, findings baselines, reports and explicit operator recovery
Full documentation: danieltse.org/mcp-zap-server
An experimental headless Apple Silicon package bundles Java and ZAP for HTTP workflows. It is a maintainer-built local preview; public downloads are not available, and supplied previews are unsigned. The private ChatGPT connection guide explains Secure MCP Tunnel prerequisites and access to a local scanner.
Watch the demo: browser demo or YouTube
[MCP ZAP Server demo video thumbnail]Quick Start
Prerequisites:
- Docker 20.10+
- Docker Compose v2 or newer (
docker compose) with--waitand--wait-timeoutsupport - your own MCP client with Streamable HTTP and custom-header support
This source selects image v0.17.1. Verify that the matching
GitHub release and Linux AMD64/ARM64
images are published before starting it. Until then, use the published v0.16.0
release or build local source through the contributor setup. Read the
0.17.1 upgrade guide before changing
an existing installation. Settings and selected versions are preserved; set
IMAGE_TAG in .env deliberately when upgrading.
Prefer to ask Codex to handle setup? Manually install the optional MCP ZAP Connect plugin, then ask it to check prerequisites, start the Docker stack, configure your private MCP connection and verify status. The skill can help install missing prerequisites with your approval, then recheck and continue setup. Scanning is a separate request. The commands below remain available without the plugin.
For Cursor Desktop Free, follow the guided Cursor setup. Use a local Agent chat with available Cursor allowance to set up the scanner, check status, then request a demo crawl and report separately.
Claude Code local preview uses the same scanner and setup skill in a local Claude Code session.
For Claude Desktop Free, follow the download, setup and first-scan guide.
The macOS MCPB preview adds agent-callable setup tools around the same Docker
scripts and reuses existing installations. Choose a
scanner release that includes
the Desktop .mcpb, matching guide and checksum files. If those assets are not
listed, use the local build instructions.
This extension is separate from the Claude Code plugin.
This creates missing settings, preserves existing keys and workspace data,
and starts a versioned release image. It reports ready after container health
and authenticated MCP checks pass. The packaged client uses * for the curated
guided tools; run scans only when requested. Existing settings retain their
permissions. See
quick-start permissions
for the default and optional per-client restrictions.
Use Self-Serve First Run for version selection, configuration, stopping/restarting, startup timeouts, and recovery. For source builds, use the contributor setup.
Connect your MCP client:
- MCP endpoint for host-side clients:
http://localhost:7456/mcp - Authentication: send
MCP_API_KEYfrom.envin theX-API-Keyheader - MCP client setup and authentication
The stack runs the MCP server, ZAP, and demo targets. Install and configure your preferred MCP client separately.
After connecting, try this first prompt:
Expect a completed crawl, a findings summary, and a report the client can
read. Use the container URL http://juice-shop:3000 for this scan; the host
preview http://localhost:3001 is for your browser. Finding counts vary;
a connection or scan error is not a clean result.
The default stack binds published ports to loopback. Review Quick Start Security before changing access or scan-target settings. Agent install notes cover setup permissions and standalone OCI use.
Discovery Metadata
This source includes 0.17.1 MCP Registry metadata in
.mcp/server.json. Metadata in source does not publish a
registry version or image. Check the
MCP Registry
and use metadata from the same published version as the image you deploy.
The image includes the MCP server name expected by registry and catalog tooling.
The published 0.16.0 version and its immutable digest remain documented in the
0.16.0 release guide.
Docker Compose remains the easiest installation path because the MCP server is designed to operate with a ZAP sidecar and explicit auth keys. The OCI package metadata is for advanced standalone installs where ZAP is already running and reachable from the MCP container.
What You Get
- Guided scans: intent-first tools for spider, active scan, passive scan, API imports, findings, reports, and scan history.
- Guided tool catalog: policy inspection, authentication setup and queued scan operations with status and stop controls.
- Authentication: API key mode by default, optional JWT mode with refresh and revocation support.
- Runtime policy bundles: configured dry-run and enforcement modes for guided tool calls.
- Scan queue and history: queued active, traditional spider, AJAX Spider, and Client Spider jobs with claim-based recovery, durable Postgres state, and evidence export.
- Extension contracts: experimental policy, protection, evidence metadata, and extension metadata APIs with sample extension packaging.
- Operational guardrails: request body limits, rate limits, workspace quotas, tool-scope authorization, structured logs, metrics, and audit events.
- Deployment paths: local Docker Compose, published JVM container images, and Helm charts for Kubernetes.
See the Client Spider guide for browser setup, authenticated guided crawling and reports.
Version 0.17.1
The 0.17.1 release and upgrade guide
describes neutral recorded-findings responses, authoritative explicit target
denies, permission-aware next actions, and the local client setup options.
Publication of the tag, images, registry version and Desktop downloads must be
verified separately in GitHub Releases.
Use a version with verified published images until the matching distribution is available.
The v0.17.0 GitHub release is incomplete: its Desktop assets are absent and
its image-release workflow did not complete. See the upgrade guide for availability checks.
Version 0.16.0
See the 0.16.0 release and upgrade guide for that release's behavior and requirements.
Version 0.15.0
See the 0.15.0 release and upgrade guide for that release's behavior and requirements.
Version 0.14.0
See the 0.14.0 release and upgrade guide for that release's behavior and requirements.
The release notes archive and changelog cover earlier versions. For changes to older MCP integrations, use Upgrading to Guided Tools. Verify the matching image and distribution in GitHub Releases before deployment.
Security Defaults
The default posture is intentionally conservative:
api-keymode is the base runtime default.nonemode is for explicit local dev/test only.- Docker Compose binds published ports to loopback by default.
- The Java 25 JVM image uses a digest-pinned distroless runtime with no shell or package manager; debug it through logs, metrics, and external diagnostic containers rather than installing tools into the application container.
- URL validation blocks localhost, private networks, and link-local targets by default.
- Target authentication is optional and profiles default to an empty list. When enabled, guided auth binds an exact server-side credential reference and login settings to one approved origin; callers provide only
profileIdandtargetUrl. - Public auth exchange endpoints are rate-limited.
- MCP request bodies have a hard early size cap.
For a first private AWS deployment without Kubernetes, use AWS EC2 with Docker Compose and its standalone example.
For Kubernetes, use the EKS infrastructure starter to create a dedicated evaluation cluster in an existing VPC, then deploy with the existing Helm chart. Follow the walkthrough for network configuration, JWT authentication, persistent storage and deployment checks.
Production and shared deployments should review:
- Security Modes
- JWT Authentication
- Optional Target Form-Login
- Authenticated Scanning Reference
- Abuse Protection
- Production Readiness Checklist
- Security Policy
Architecture
For multi-replica queueing, durable Postgres state, claim recovery, and ingress affinity, use the operations docs instead of this README:
- Queue Coordinator and Worker Claims
- Multi-Replica Deployment Requirements
- Scan History Ledger
- Helm Deployment
Extension Model
The extension API exposes selected contracts for policy, protection, evidence and metadata integrations:
mcp-zap-extension-apipackages selected policy, protection, evidence, and metadata contracts without gateway runtime internals.- How extensions work explains the core versus extension boundary.
- Build your own extension shows the target standalone repository shape.
- Extension API release policy explains publication stages and compatibility gates.
- Standalone sample extension shows how a separate project depends on the API artifact.
Extensions do not add runtime multi-engine support. Additional scanner engines require their own adapters and explicit capability boundaries.
Documentation Map
Start here:
- Full documentation
- Self-Serve First Run
- OSS Extension Model
- MCP Access Authentication
- MCP Client Authentication
- Optional Target Form-Login
- Guided Tools
- Upgrading to Guided Tools
Scanning:
- MCP Client Scan To Evidence
- Scan Execution
- Seeded API Gate Playbook
- API Schema Imports
- AJAX Spider
- Client Spider
- Findings and Reports
Operations:
Open Source Core And Extension Model
mcp-zap-server is the Apache-2.0-licensed open-source core. It is intended to be useful on its own for self-hosted MCP and ZAP workflows.
Private or enterprise capabilities may be built as separate extensions around this core. Those extensions are not required to run the OSS project, and enterprise implementation code is not shipped in this repository.
The boundary is intentional:
- this repository remains the public OSS distribution
- extension points should be documented and kept stable where practical
- private extensions must not weaken the security, licensing, or usability of the OSS core
- security scanning and open-source program entitlements for this repository apply only to this public project
Contributing And Support
If this project saves you time or becomes part of your security workflow, you can sponsor the maintainer to support ongoing maintenance.
Agentic Lab offers optional paid support for teams adopting the public core in production. Commercial support is separate from the Apache-2.0-licensed OSS distribution, and the public core should remain usable without private extensions or paid services.
License
Apache License 2.0. Copyright 2025-2026 Daniel Tse. See LICENSE.
Source: README.md at commit 07e2bfc
Tools
0Version history
5- v0.17.1LatestOct 22, 2026
- v0.16.0Oct 15, 2026
- v0.15.0Oct 8, 2026
- v0.14.0Oct 3, 2026
- v0.11.0Sep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts