MCP server for OWASP ZAP vulnerability scanning with Docker management
Config is the same across clients — only the file and path differ.
{
"mcpServers": {
"zap": {
"command": "zap-mcp"
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
MCP (Model Context Protocol) server for OWASP ZAP. Enables AI agents (Claude, GitHub Copilot, etc.) to drive ZAP vulnerability scanning via MCP.
No automated test available for this server. Check the GitHub README for setup instructions.
Five weighted categories — click any category to see the underlying evidence.
No known CVEs.
No package registry to scan.
Be the first to review
Have you used this server?
Share your experience — it helps other developers decide.
Sign in to write a review.
Others in security
An evil MCP server used for redteam testing
AI-powered reverse engineering assistant that bridges IDA Pro with language models through MCP.
Proof primitive for AI agents on MultiversX. Anchor file hashes on-chain as verifiable proofs.
mcpki-server is the backend infrastructure for https://www.mcpki.org, enabling secure public key management and autonomous certificate handling for large language models (LLMs).
MCP Security Weekly
Get CVE alerts and security updates for io.github.pierre3/zap-mcp and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
MCP (Model Context Protocol) server for OWASP ZAP. Enables AI agents (Claude, GitHub Copilot, etc.) to drive ZAP vulnerability scanning via MCP.
dotnet tool install -g dotnet-zap-mcp
docker compose support (for built-in ZAP container management)No configuration needed. The agent calls DockerComposeUp which automatically:
~/.zap-mcp/docker/localhost:8090The ZAP container uses two Docker named volumes:
| Volume | Container Path | Purpose |
|---|---|---|
zap-home | /home/zap/.ZAP | ZAP settings, contexts, sessions, scan policies (persisted across restarts) |
zap-data | /zap/wrk/data | Shared directory for reports, session files, and context import/export |
On the first launch, the template config.xml is copied into zap-home. On subsequent launches, only the API key is updated — any changes made through ZAP (contexts, authentication settings, scan policies, etc.) are preserved.
The zap-data volume contains:
reports/ — generated scan reportssessions/ — saved ZAP sessionscontexts/ — exported context filesAdd to your MCP configuration:
{
"mcpServers": {
"zap": {
"command": "zap-mcp"
}
}
}
Add to .vscode/mcp.json:
{
"servers": {
"zap": {
"command": "zap-mcp"
}
}
}
If you already have a ZAP instance running, pass connection details via environment variables:
{
"mcpServers": {
"zap": {
"command": "zap-mcp",
"env": {
"ZAP_BASE_URL": "http://localhost:8090",
"ZAP_API_KEY": "your-api-key"
}
}
}
}
| Tool | Parameters | Description |
|---|---|---|
DockerComposeUp | — | Start the ZAP container and wait for healthy |
DockerComposeDown | — | Stop and remove the ZAP container |
DockerComposeStatus | — | Check container status |
DockerComposeLogs | tail | Get recent container logs |
| Tool | Parameters | Description |
|---|---|---|
GetVersion | — | Verify ZAP connectivity |
GetHosts | — | List recorded hosts |
GetSites | — | List recorded sites |
GetUrls | baseUrl | List recorded URLs for a base URL |
| Tool | Parameters | Description |
|---|---|---|
StartSpider | url, maxChildren, recurse, subtreeOnly, contextName | Start a spider scan to crawl and discover pages |
GetSpiderStatus | scanId | Check spider progress (0-100%) |
GetSpiderResults | scanId | Get URLs discovered by spider |
StopSpider | scanId | Stop a running spider scan |
| Tool | Parameters | Descrip