GitHub
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
Beschreibung vom Entwickler (englisches Original)
MCP server for OWASP ZAP vulnerability scanning with Docker management
Diese drei werden nie zu einer Punktzahl zusammengefasst: Meinungen, Messungen und Beliebtheit sind verschiedene Dinge.
Für diesen Server haben wir noch keine Zusammenfassung in einfacher Sprache geschrieben. Unten stehen die Fakten, die wir aus der Registry gelesen haben.
Wähle die KI-App, die du nutzt, und kopiere die Einstellungen.
ZAP_BASE_URL, ZAP_API_KEYWelche App nutzt du?
Wähle oben deine App. Wir merken sie uns, damit der Button beim nächsten Mal „In … installieren“ anzeigt.
Öffne Claude Desktop → Settings → Developer → Edit Config und füge dies in claude_desktop_config.json ein
{
"mcpServers": {
"zap": {
"command": "dnx",
"args": [
"dotnet-zap-mcp",
"--yes"
],
"env": {
"ZAP_BASE_URL": "your-value",
"ZAP_API_KEY": "your-value"
}
}
}
}Führe das in deinem Terminal aus
claude mcp add zap --env ZAP_BASE_URL=your-value --env ZAP_API_KEY=your-value -- dnx dotnet-zap-mcp --yesTrag die leeren Werte ein, bevor du ihn startest.
In .cursor/mcp.json in deinem Projekt oder in ~/.cursor/mcp.json einfügen
{
"mcpServers": {
"zap": {
"command": "dnx",
"args": [
"dotnet-zap-mcp",
"--yes"
],
"env": {
"ZAP_BASE_URL": "your-value",
"ZAP_API_KEY": "your-value"
}
}
}
}Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.
In .vscode/mcp.json in deinem Projekt einfügen
{
"servers": {
"zap": {
"type": "stdio",
"command": "dnx",
"args": [
"dotnet-zap-mcp",
"--yes"
],
"env": {
"ZAP_BASE_URL": "your-value",
"ZAP_API_KEY": "your-value"
}
}
}
}Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.
Dieser Server läuft auf deinem Computer, und ChatGPT kann sich nur mit Servern im Internet verbinden. Wähle eine andere App.
Deine Auswahl bleibt in einem Cookie auf diesem Gerät; kein Konto nötig.
ZAP_BASE_URL envZAP_API_KEY envDiese Einstellungen werden aus dem Registry-Eintrag des Entwicklers erzeugt. Wenn in der README etwas anderes steht, folge der README.
Läuft auf deinem Computer; die Tool-Liste erscheint nach der Installation in deiner KI-App.
Wir prüfen Informationen, die jeder sehen kann; den Code haben wir nicht gelesen. Checks, die nicht zutreffen, werden nicht mitgezählt. · Geprüft am 7. Nov. 2026
Der Registry-Name wurde mit dem GitHub-Konto pierre3 bestätigt, dem das Repo gehört
Dieses Repo haben wir noch nicht von GitHub gelesen
Dieses Repo haben wir noch nicht von GitHub gelesen
Dieser Server läuft auf deinem Computer; es gibt keinen Endpunkt im Internet
Läuft auf deinem Computer und nutzt stattdessen lokale Einstellungen
Läuft auf deinem Computer; Tool-Listen können wir nur von Endpunkten im Internet lesen
Verglichen mit allen aktiven Servern dieser Kategorie in der Registry. Sterne zählen nur, wenn dem Herausgeber das Repo gehört.
Er hat 1 von 1 zutreffenden Basischecks bestanden. Den Code haben wir nicht gelesen. Bevor du einen Schlüssel oder Token hinzufügst, sieh nach, welche Zugriffe der Server verlangt, und nutze einen Schlüssel, der nur die Berechtigungen hat, die du brauchst.
Die Registry nennt keinen erforderlichen Schlüssel, manche Server bitten dich aber bei der ersten Nutzung, dich anzumelden.
Er läuft auf deinem Computer. Deine KI-App startet ihn bei Bedarf, und die Daten laufen nicht über die Server des Entwicklers (außer der Server ruft selbst einen Onlinedienst auf).
Das GitHub-Repo wurde zuletzt – geändert, und die neueste Version (1.1.0) kam vor 7 Monaten in die Registry.
Apps, die MCP unterstützen, etwa Claude Desktop, Claude Code, Cursor und VS Code. Außerdem brauchst du .NET auf deinem Computer.
In derselben Kategorie: GitHub, Desktop Commander, Cloudflare MCP
Server derselben Kategorie von anderen Entwicklern, sortiert nach Sternen.
So liest du eine Karte:★ GitHub-SterneiDrei Säulen: Bewertungen · Checks · NutzungiAktualisiert = neueste Version in der Registry veröffentlichti
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
MCP server for terminal commands, file operations, and process management
Cloudflare MCP servers
Unverändert aus dem Repo des Entwicklers übernommen. PopNx MCP hat den Inhalt weder geprüft noch empfiehlt es ihn. HTML, Bilder und Skripte wurden entfernt. Links führen von dieser Website weg.
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 | Description |
|---|---|---|
StartActiveScan | url, recurse, inScopeOnly, scanPolicyName, contextId | Start an active vulnerability scan |
GetActiveScanStatus | scanId | Check active scan progress (0-100%) |
StopActiveScan | scanId | Stop a running active scan |
| Tool | Parameters | Description |
|---|---|---|
GetPassiveScanStatus | — | Check passive scan progress (records remaining) |
| Tool | Parameters | Description |
|---|---|---|
GetAlertsSummary | baseUrl | Alert counts by risk level |
GetAlerts | baseUrl, start, count, riskId | Detailed alert list with pagination and risk filter |
| Tool | Parameters | Description |
|---|---|---|
GetHtmlReport | — | Generate HTML scan report |
GetJsonReport | — | Generate JSON scan report |
GetXmlReport | — | Generate XML scan report |
| Tool | Parameters | Description |
|---|---|---|
GetContextList | — | List all contexts defined in ZAP |
GetContext | contextName | Get context details (scope patterns, etc.) |
CreateContext | contextName | Create a new context |
RemoveContext | contextName | Delete a context |
IncludeInContext | contextName, regex | Add URL include pattern to context scope |
ExcludeFromContext | contextName, regex | Add URL exclude pattern to context scope |
ImportContext | contextFilePath | Import a context file into ZAP |
ExportContext | contextName, contextFilePath | Export a context to file |
| Tool | Parameters | Description |
|---|---|---|
GetAuthenticationMethod | contextId | Get the authentication method configured for a context |
SetAuthenticationMethod | contextId, authMethodName, authMethodConfigParams | Set authentication method (form-based, JSON-based, script-based, HTTP) |
SetLoggedInIndicator | contextId, loggedInIndicatorRegex | Set regex pattern indicating logged-in state |
SetLoggedOutIndicator | contextId, loggedOutIndicatorRegex | Set regex pattern indicating logged-out state |
| Tool | Parameters | Description |
|---|---|---|
GetUsersList | contextId | List all users for a context |
CreateUser | contextId, name | Create a new user |
RemoveUser | contextId, userId | Remove a user |
SetAuthenticationCredentials | contextId, userId, authCredentialsConfigParams | Set user credentials (username/password) |
SetUserEnabled | contextId, userId, enabled | Enable or disable a user |
| Tool | Parameters | Description |
|---|---|---|
SetForcedUser | contextId, userId | Set the forced user for a context |
SetForcedUserModeEnabled | enabled | Enable or disable forced user mode globally |
GetForcedUserStatus | contextId | Get forced user mode status and current forced user |
| Tool | Parameters | Description |
|---|---|---|
StartAjaxSpider | url, inScope, contextName, subtreeOnly | Start the Ajax Spider for JavaScript-heavy apps |
StartAjaxSpiderAsUser | contextName, userId, url, subtreeOnly | Start the Ajax Spider as a specific user |
GetAjaxSpiderStatus | — | Get Ajax Spider status (running/stopped) |
GetAjaxSpiderResults | — | Get Ajax Spider results summary |
StopAjaxSpider | — | Stop the Ajax Spider |
DockerComposeUp to start ZAPhttp://127.0.0.1:8090)StartSpider to crawl the application, then GetSpiderStatus to monitor progressGetPassiveScanStatus to wait for passive scan completionStartActiveScan on key pages, then GetActiveScanStatus to monitor progressGetAlertsSummary and GetAlerts to retrieve vulnerability findingsGetHtmlReport or GetJsonReport to generate a scan reportDockerComposeDown when doneNote: ZAP settings (contexts, authentication, scan policies) are persisted in the
zap-homeDocker volume. You can stop and restart the container without losing configuration.
This repository includes an intentionally vulnerable web application for trying out ZAP scanning. The app contains common vulnerabilities (XSS, SQL Injection, CSRF, Open Redirect) so ZAP can detect real findings.
# Start ZAP and the vulnerable target app
docker compose -f tests/docker/docker-compose.test.yml up -d --build
docker compose -f tests/docker/docker-compose.test.yml ps
Then configure your MCP client to connect to this ZAP instance:
{
"mcpServers": { "zap": { "command": "zap-mcp", "env": { "ZAP_BASE_URL": "http://localhost:8090", "ZAP_API_KEY": "test-api-key-for-ci" } } } }
The vulnerable app is accessible at
http://targetfrom within the Docker network (used by ZAP), and athttp://localhost:8080from your host machine.
Prompt to agent:
Scan http://target for vulnerabilities. Run a spider crawl, wait for the passive scan to finish, then show me the alert summary and generate an HTML report.
Expected tool flow:
GetVersion → Verify ZAP connectivity
StartSpider → url: "http://target" GetSpiderStatus → Poll until 100% GetPassiveScanStatus → Poll until 0 records remaining GetAlertsSummary → baseUrl: "http://target" GetAlerts → baseUrl: "http://target" GetHtmlReport → Generate report
ZAP will discover pages like /search, /login, /users, /about, /contact, and the passive scan will report issues such as missing security headers and CSRF vulnerabilities.
The /admin page requires login (username: admin, password: password). An authenticated scan lets ZAP access protected pages.
Prompt to agent:
Set up an authenticated scan for http://target. The login form is at /login with fields "username" and "password" (credentials: admin / password). The logged-in indicator is "Welcome, admin". After configuring authentication, spider the site as the authenticated user and run an active scan.
Expected tool flow:
CreateContext → contextName: "target-auth"
IncludeInContext → regex: "http://target.*" SetAuthenticationMethod → contextId, authMethodName: "formBasedAuthentication", authMethodConfigParams: "loginUrl=http://target/login&loginRequestData=username%3D%7B%25username%25%7D%26password%3D%7B%25password%25%7D" SetLoggedInIndicator → loggedInIndicatorRegex: "Welcome, admin" CreateUser → contextId, name: "admin" SetAuthenticationCredentials → contextId, userId, authCredentialsConfigParams: "username=admin&password=password" SetUserEnabled → contextId, userId, enabled: true SetForcedUser → contextId, userId SetForcedUserModeEnabled → enabled: true StartSpider → url: "http://target", contextName: "target-auth" GetSpiderStatus → Poll until 100% GetPassiveScanStatus → Poll until 0 records remaining StartActiveScan → url: "http://target" GetActiveScanStatus → Poll until 100% GetAlertsSummary → baseUrl: "http://target" GetAlerts → baseUrl: "http://target" SetForcedUserModeEnabled → enabled: false
With authentication configured, ZAP can access /admin and test for vulnerabilities behind the login.
Nur der Anfang wird gezeigt; den Rest findest du im Repo