MCP ZAP Server について
MCP ZAP Server は、OWASP ZAP のガイド付き操作と高度な機能を AI エージェントに提供する Spring Boot 製 MCP サーバーです。自社運用の Web セキュリティワークフロー向けに、認証、ポリシー、監査機能を備えています。
主な機能
- 01ガイド付きクロールとスキャン
- 02API 定義のインポート
- 03検出結果の確認とレポート生成
- 04高度な ZAP コンテキストとスキャン制御
- 05認証、スコープ、ポリシー
- 06スキャンキュー、履歴、監査
活用シーン
- 01AI エージェントで許可済みサイトをクロールし、パッシブ分析
- 02OpenAPI の内容を取り込み、API セキュリティテスト
- 03検出結果をまとめ、MCP で読み取れるレポートを生成
MCP 対応
Streamable HTTP 経由で、スキャン、インポート、検出結果、レポートの ZAP ツールを MCP クライアントに公開します。API キーまたは JWT 認証、ツールスコープ、実行時ポリシーでアクセスを制御します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
docker run -i --rm -e ZAP_API_URL -e ZAP_API_PORT -e ZAP_API_KEY -e MCP_API_KEY -e MCP_SERVER_TOOLS_SURFACE -e MCP_SECURITY_MODE -e MCP_SECURITY_ENABLED -e MCP_SECURITY_ALLOW_PLACEHOLDER_API_KEY ghcr.io/dtkmn/mcp-zap-server:v0.17.1ZAP_API_URLHostname or URL of a separately running ZAP daemon reachable from this container.ZAP_API_PORTZAP API port.ZAP_API_KEYシークレットAPI key configured on the ZAP daemon.MCP_API_KEYシークレットAPI key clients must send as X-API-Key.MCP_SERVER_TOOLS_SURFACETool surface to expose. Use guided for the safer default workflow, including report readback. Use expert only when clients need raw ZAP tools outside the guided surface.MCP_SECURITY_MODEMCP_SECURITY_ENABLEDMCP_SECURITY_ALLOW_PLACEHOLDER_API_KEYシークレットローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP ZAP サーバー
AI エージェントに、安全でセルフホスト可能な ZAP オペレーターを提供し、ガイド付きの Web セキュリティスキャン、検出結果、レポート、本番環境向けのガードレールを実現します。
Note このプロジェクトは ZAP プロジェクトとは提携しておらず、同プロジェクトから承認も受けていません。独立した実装です。
mcp-zap-server は、ストリーミング可能な HTTP 経由で MCP を通じて ZAP を公開します。これにより、エージェント型ツールは、脆弱な接着スクリプトや安全でないスキャナーアクセスに頼らず、オペレーターが制御するセキュリティワークフローを実行できます。
次のような場合にご利用ください。
- 安全なエージェント型スキャン:スパイダー、アクティブスキャン、パッシブスキャン、API インポート、検出結果、レポートにガイド付きのデフォルト設定を利用できます
- オペレーター制御:API キーまたは JWT 認証、ツールスコープ、ランタイムポリシーバンドル、レート制限、監査イベントを利用できます
- セルフホスト可能なデプロイ:ローカルでの導入には Docker Compose、Kubernetes には Helm を利用できます
- ZAP の専門的な操作:低レベルの ZAP コンテキスト、ユーザー、スキャン、レポート制御が必要な場合に利用できます
ドキュメント全文:danieltse.org/mcp-zap-server
実験的なヘッドレス Apple Silicon パッケージ には、HTTP ワークフロー用の Java と ZAP がバンドルされています。これはメンテナーが作成したローカルプレビューです。 一般公開のダウンロードはできず、提供されるプレビューには署名がありません。 ChatGPT のプライベート接続ガイド では、Secure MCP Tunnel の前提条件とローカルスキャナーへのアクセスについて説明しています。
## クイックスタート
前提条件:
- Docker 20.10+
--waitと--wait-timeoutに対応した Docker Compose v2 以降(docker compose)- Streamable HTTP とカスタムヘッダーに対応した、お使いの MCP クライアント
このソースではイメージ v0.17.1 を選択しています。起動する前に、対応する
GitHub リリースと Linux AMD64/ARM64
イメージが公開されていることを確認してください。それまでは、公開済みの v0.16.0
リリースを使うか、コントリビューター向けセットアップを通じてローカルソースをビルドしてください。既存の
インストールを変更する前に、
0.17.1 アップグレードガイドをお読みください。設定と選択したバージョンは保持されます。アップグレード時は、.env の
IMAGE_TAG を意図的に設定してください。
セットアップを Codex に任せたい場合は、任意の MCP ZAP Connect プラグインを手動でインストールし、 前提条件の確認、Docker スタックの起動、プライベート MCP 接続の設定、ステータスの確認を依頼してください。このスキルは、不足している前提条件をユーザーの承認を得てインストールし、その後に再確認してセットアップを続行できます。スキャンには別途リクエストが必要です。プラグインがなくても、以下のコマンドを利用できます。
Cursor Desktop Free の場合は、Cursor のガイド付きセットアップに従ってください。 利用可能な Cursor の使用枠を使ってローカルの Agent チャットを開き、スキャナーをセットアップしてステータスを確認した後、デモクロールをリクエストし、結果を別途報告するよう依頼してください。
Claude Code のローカルプレビューでは、ローカルの Claude Code セッションで同じスキャナーとセットアップスキルを使用します。
Claude Desktop Free の場合は、ダウンロード、セットアップ、初回スキャンのガイドに従ってください。
macOS MCPB プレビューには、同じ Docker
スクリプトを使うエージェントから呼び出し可能なセットアップツールが追加されており、既存のインストールも再利用します。Desktop .mcpb、対応するガイド、チェックサムファイルが含まれる
スキャナーのリリースを選んでください。これらのアセットが
一覧にない場合は、ローカルビルド手順を使用してください。この拡張機能は Claude Code プラグインとは別のものです。
git clone https://github.com/dtkmn/mcp-zap-server.git
cd mcp-zap-server
./bin/bootstrap-local.sh --start
不足している設定を作成し、既存のキーとワークスペースデータを保持して、
バージョン指定されたリリースイメージを起動します。コンテナーのヘルスチェックと
認証済み MCP チェックが成功すると、準備完了を報告します。パッケージ化されたクライアントでは、厳選されたガイド付きツールに * を使用します。スキャンはリクエストされた場合にのみ実行してください。既存の設定ではアクセス許可が保持されます。デフォルトの制限と、クライアントごとに任意で設定できる制限については、
クイックスタートのアクセス許可をご覧ください。
バージョンの選択、設定、停止/再起動、起動タイムアウト、 復旧については、セルフサービス初回実行ガイドをご利用ください。ソースをビルドする場合は、 コントリビューター向けセットアップをご利用ください。
MCP クライアントを接続します。
- ホスト側クライアント向け MCP エンドポイント:
http://localhost:7456/mcp - 認証:
.envのMCP_API_KEYをX-API-Keyヘッダーで送信します - MCP クライアントのセットアップと認証
このスタックは MCP サーバー、ZAP、デモ用ターゲットを実行します。お好みの MCP クライアントは別途インストールして設定してください。
接続後、まず次のプロンプトを試してください。
Use the guided ZAP tools to crawl http://juice-shop:3000. Wait for the crawl
and passive analysis to finish, show a findings summary, generate an HTML
report, and read it back through MCP. Do not run an active scan.
クロールが完了し、検出結果の概要とクライアントが読み取れるレポートが得られます。このスキャンにはコンテナーの URL http://juice-shop:3000 を使用してください。ホスト側プレビューの http://localhost:3001 はブラウザー用です。検出数は変動します。接続エラーやスキャンエラーは、問題がないことを意味しません。
デフォルトのスタックでは、公開ポートをループバックにバインドします。アクセス設定やスキャン対象の設定を変更する前に、 クイックスタートのセキュリティをご確認ください。エージェントのインストールに関する注意事項では、セットアップのアクセス許可とスタンドアロンの OCI 利用方法について説明しています。
ディスカバリーメタデータ
このソースには、.mcp/server.json に 0.17.1 の MCP Registry メタデータが含まれています。ソース内のメタデータでは、レジストリバージョンもイメージも公開されません。
MCP Registry を確認し、デプロイするイメージと同じ公開バージョンのメタデータを使用してください。
イメージには、レジストリやカタログのツールが想定する MCP サーバー名が含まれています。
公開済みの 0.16.0 バージョンとその不変のダイジェストについては、0.16.0 リリースガイドに引き続き記載されています。
MCP サーバーは ZAP サイドカーと明示的な認証キーを使用する設計のため、Docker Compose が引き続き最も簡単なインストール方法です。OCI パッケージのメタデータは、ZAP がすでに実行中で、MCP コンテナーから到達可能な場合の、上級者向けのスタンドアロンインストールを対象としています。
利用できる機能
- ガイド付きスキャン:スパイダー、アクティブスキャン、パッシブスキャン、API インポート、検出結果、レポート、スキャン履歴のための、目的を最優先にしたツールです。
- ZAP の高度な制御:上級者向けの ZAP コンテキスト、ユーザー、スキャン、レポートのワークフローに対応する、オプションの低レベルツールです。
- 認証:デフォルトでは API キー方式を使用し、更新と失効に対応する JWT 方式もオプションで利用できます。
- ランタイムポリシーバンドル:
zap_policy_dry_runとポリシーモード設定による、ドライランと強制適用に対応します。 - スキャンキューと履歴:アクティブスキャン、従来型スパイダー、AJAX Spider、Client Spider のジョブをキューに登録できます。クレームベースの復旧、永続的な Postgres の状態管理、エビデンスのエクスポートにも対応します。
- 拡張機能の契約:ポリシー、保護、エビデンスメタデータ、拡張機能メタデータの実験的 API と、拡張機能のサンプルパッケージを提供します。
- 運用上のガードレール:リクエスト本文のサイズ制限、レート制限、ワークスペースのクォータ、ツールスコープ認可、構造化ログ、メトリクス、監査イベントに対応します。
- デプロイ方法:ローカルの Docker Compose、公開済み JVM コンテナーイメージ、Kubernetes 用 Helm チャートに対応します。
v0.13.0 では、Client Spider とブラウザー認証プロファイルが、直接およびキュー経由のブラウザークローリングに対応しています。セットアップ、認証付きクローリング、レポートについては、Client Spider ガイドを参照してください。これらの機能は v0.12.0 には含まれていません。
バージョン 0.17.1
0.17.1 リリースおよびアップグレードガイドでは、中立的な記録済み検出結果の応答、明示的な対象拒否の優先、権限を考慮した次のアクション、ローカルクライアントのセットアップ方法について説明しています。
タグ、イメージ、レジストリバージョン、デスクトップ版ダウンロードの公開状況は、GitHub Releasesで個別に確認する必要があります。
対応する配布物が利用可能になるまでは、公開済みイメージが確認できているバージョンを使用してください。
v0.17.0 の GitHub リリースは不完全です。デスクトップ版のアセットがなく、イメージのリリースワークフローも完了していません。利用可能状況の確認については、アップグレードガイドを参照してください。
Version 0.16.0
Version v0.16.0はリリース済みです。
Linux AMD64およびARM64のイメージはGHCRとDocker Hubで公開されており、MCP
Registry 0.16.0はアクティブ/最新です。
リリースとアップグレードガイドには、イメージのダイジェストとインストール時の制約が記載されています。
Automation Frameworkのプランで、プラン全体の所要時間と必須の
エンジン/アドオン機能が検証されるようになりました。また、プランと
アーティファクトに対するファイルシステム上の包含制約が適用され、
レポートの出力ディレクトリとファイル名も検証されます。プランのステータスでは、
スキャンの完了を示す証拠として終了タイムスタンプを扱わず、
Successfulをpending、no、unknownとして報告します。スキャナーを考慮したCI比較では、
計測されたエンジン/アドオンのインベントリが一致していることが必須となり、
ターゲットを限定したレポートには、指定されたオリジンからのルートアラートの証拠が保持されます。
ローカルのDockerクイックスタートでは、明示的にバージョン指定したリリースイメージと 認証済みの準備状態チェックを使用します。Apple SiliconパッケージとプライベートなChatGPT 接続は任意のプレビュー機能です。インストールとネットワーク要件については、それぞれのガイドを参照してください。
Version 0.15.0
最新の公開バージョンとその公開日は、GitHub Releasesを 参照してください。バージョンごとのドキュメントには、そのバージョンの動作が記載されており、イメージの 提供開始を告知するものではありません。対応するリリースワークフローが成功し、 バージョン指定のイメージがレジストリで利用可能になってからデプロイしてください。
Version v0.15.0では、クライアントから提供されるコンテンツのオプションのOpenAPIインポートと、
ページ分割されたレポートの完全な取得機能が導入されました。ターゲットを限定したレポートでは、
無関係な共有セッションのデータが除外されます。HTTPクロールの深度は子の数とは独立して設定でき、
ZAPの起動が遅れた場合やエンジンが置き換えられた場合には、ヘルスチェックによって必須のアウトバウンド設定が再適用されます。
コンテンツのインポートを有効にする場合や既存のデプロイをアップグレードする場合は、
ストレージと設定の要件を確認してください。
また、CloudFormation EKSスターターと、 JWT認証、永続レポートストレージ、ネットワークポリシーを使用してHelmチャートをデプロイする手順も含まれています。
Version 0.14.0
**Version v0.14.0**では、APIキー設定、JWTの失効と更新、Automation Frameworkのプラン、
OpenAPIのターゲットオーバーライド、HTTPメトリクス、Helmのイングレスポリシーが強化されました。
また、Gateway CoreとSpring WebFluxアダプター
0.11.0を採用し、共通のガバナンス監査とアクティブなツールの検証も追加されました。
デプロイ前にアップグレードノートをお読みください。従来のAPIキー用プロパティは削除され、
JWTバックエンドの障害時はフェイルクローズとなり、受け付けられる自動化入力と監査フィールドも
変更されています。アップグレードには公開済みのリリースイメージを使用してください。
セキュリティのデフォルト設定
デフォルトでは、意図的に保守的な設定を採用しています。
api-keyモードが実行時の基本デフォルトです。noneモードは、ローカルの開発/テストで明示的に使用する場合に限ります。- Docker Compose は、公開ポートをデフォルトでループバックにバインドします。
- Java 25 JVM イメージでは、シェルやパッケージマネージャーを含まない、ダイジェストで固定された distroless ランタイムを使用します。アプリケーションコンテナにツールをインストールするのではなく、ログ、メトリクス、外部の診断用コンテナを通じてデバッグしてください。
- URL 検証では、デフォルトで localhost、プライベートネットワーク、リンクローカルの宛先をブロックします。
- ターゲット認証は任意で、プロファイルはデフォルトで空のリストです。有効にすると、ガイド付き認証では、承認済みの単一のオリジンに、サーバー側の正確な認証情報参照とログイン設定を紐付けます。呼び出し元が指定するのは
profileIdとtargetUrlのみです。 - 公開認証交換エンドポイントにはレート制限が適用されます。
- MCP リクエスト本文には、早期に適用される厳格なサイズ上限があります。
Kubernetes を使用しない、AWS での初めてのプライベートデプロイには、AWS EC2 と Docker Composeとスタンドアロンのサンプルを使用してください。
Kubernetes では、EKS インフラストラクチャスターターを使用して、既存の VPC 内に専用の評価クラスターを作成し、既存の Helm チャートを使ってデプロイしてください。ネットワーク設定、JWT 認証、永続ストレージ、デプロイの確認については、ウォークスルーに従ってください。
本番環境や共有環境へのデプロイでは、次のドキュメントを確認してください。
アーキテクチャ
flowchart LR
Client["Your MCP Client"] -->|"MCP over Streamable HTTP"| MCP["MCP ZAP Server"]
MCP -->|"ZAP API"| ZAP["ZAP"]
ZAP -->|"scan"| Target["Authorized target app"]
MCP -->|"reports / findings / history"| Evidence["Evidence + reports"]
複数レプリカでのキューイング、永続的な Postgres の状態管理、クレームの復旧、イングレスのアフィニティについては、この README ではなく運用ドキュメントを参照してください。
拡張モデル
拡張 API は、ポリシー、保護、エビデンス、メタデータの統合に関する選定済みのコントラクトを公開します。
mcp-zap-extension-apiは、ゲートウェイの実行時内部機能を含めずに、選定済みのポリシー、保護、エビデンス、メタデータのコントラクトをパッケージ化します。- 拡張機能の仕組みでは、コアと拡張機能の境界について説明します。
- 独自の拡張機能を構築するでは、対象となるスタンドアロンリポジトリの構成を紹介します。
- 拡張 API のリリースポリシーでは、公開段階と互換性の判定基準について説明します。
- スタンドアロンの拡張機能サンプルでは、別プロジェクトから API アーティファクトに依存する方法を紹介します。
拡張機能によって、実行時の複数エンジン対応が追加されることはありません。追加のスキャナーエンジンには、それぞれ独自のアダプターと明確な機能境界が必要です。
ドキュメント一覧
まずはこちらをご覧ください:
スキャン:
- MCP クライアントのスキャンから証跡まで
- スキャン実行モード
- シード済み API ゲートのプレイブック
- API スキーマのインポート
- AJAX スパイダー
- クライアントスパイダー(v0.13.0)
- 検出結果とレポート
運用:
オープンソースコアと拡張モデル
mcp-zap-server は、Apache-2.0 ライセンスのオープンソースコアです。セルフホスト型の MCP および ZAP ワークフローで、単独でも役立つことを目指しています。
プライベートまたはエンタープライズ向けの機能は、このコアを基盤とする別個の拡張機能として構築できます。これらの拡張機能は OSS プロジェクトの実行に必須ではなく、エンタープライズ向けの実装コードはこのリポジトリに含まれていません。
この境界は意図的に設けられています:
- このリポジトリは、引き続き公開 OSS 配布物です
- 拡張ポイントは文書化し、実用上可能な範囲で安定して維持する必要があります
- プライベート拡張機能によって、OSS コアのセキュリティ、ライセンス、または使いやすさが損なわれてはなりません
- このリポジトリのセキュリティスキャンとオープンソースプログラムの利用資格は、この公開プロジェクトのみに適用されます
貢献とサポート
このプロジェクトによって時間を節約できたり、セキュリティワークフローの一部として活用できたりした場合は、メンテナーをスポンサーして、継続的なメンテナンスを支援できます。
Agentic Lab は、公開コアを本番環境に導入するチーム向けに、有料のオプションサポートを提供しています。商用サポートは、Apache-2.0 ライセンスの OSS 配布物とは別個のものです。公開コアは、プライベート拡張機能や有料サービスがなくても引き続き利用できる必要があります。
ライセンス
Apache License 2.0。Copyright 2025-2026 Daniel Tse。LICENSE を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。