wass-mcp について
WASS-MCP は、許可を得た Web アプリケーションのセキュリティテスト向け MCP サーバーです。複数のスキャナーを統合し、並列の一括スキャンと実行履歴の保存に対応します。
主な機能
- 01Nikto による Web サーバースキャン
- 02Nuclei テンプレートによる脆弱性検査
- 03Wapiti による Web アプリスキャン
- 04Shcheck によるセキュリティヘッダー分析
- 05並列スキャンと結果の統合
- 06スキャン実行履歴の永続保存
活用シーン
- 01許可を得た Web サーバーの脆弱性検査
- 02サイトの HTTP セキュリティヘッダー確認
- 03複数スキャナーを並列実行して統合レポートを確認
- 04過去のスキャン結果の参照や管理
MCP 対応
WASS-MCP は Streamable HTTP 経由で MCP クライアントにスキャンと履歴管理のツールを提供します。個別スキャナーのほか、並列実行する full_scan ツールも利用できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
WASS-MCP
Web アプリケーションのセキュリティスキャン用 Model Context Protocol(MCP)サーバーです。
機能
- MCP プロトコルのサポート - MCP クライアント(Claude など)との完全な互換性
- Nikto との統合 - Web サーバーの脆弱性スキャン
- Nuclei との統合 - テンプレートベースの脆弱性スキャン
- Wapiti との統合 - Web アプリケーションの脆弱性スキャン
- Shcheck との統合 - セキュリティヘッダーの分析
- 実行履歴 - スキャン結果の永続的な保存
- ステートレス設計 - セッションエラーを起こさずにサーバーの再起動に対応
- RESTful HTTP トランスポート - ストリーミング可能な HTTP ベースの MCP プロトコル
使用方法
docker run -p 127.0.0.1:8989:8989 tb0hdan/wass-mcp
MCP クライアントの設定
WASS-MCP サーバーを Claude MCP クライアントに追加するコマンドの例:
claude mcp add wass-mcp --transport http http://127.0.0.1:8989
または Gemini:
gemini mcp add wass-mcp --transport http http://127.0.0.1:8989
利用可能なツール
nikto
Nikto を使用して Web サーバーの脆弱性スキャンを実行します。
パラメーター:
| 名前 | 型 | 必須 | 説明 |
|---|---|---|---|
host | string | はい | 対象のホスト名または IP アドレス |
port | integer | いいえ | 対象ポート(デフォルト:80) |
vhost | string | いいえ | 仮想ホストヘッダー |
max_lines | integer | いいえ | 出力行数の上限 |
offset | integer | いいえ | 出力行のオフセット |
例:
{
"host": "192.168.1.100",
"port": 443
}
nuclei
Nuclei を使用してテンプレートベースの脆弱性スキャンを実行します。
パラメーター:
| 名前 | 型 | 必須 | 説明 |
|---|---|---|---|
host | string | はい | 対象のホスト名または IP アドレス |
port | integer | いいえ | 対象ポート(デフォルト:80) |
vhost | string | いいえ | 仮想ホストヘッダー |
max_lines | integer | いいえ | 出力行数の上限 |
offset | integer | いいえ | 出力行のオフセット |
検出される脆弱性:
- コミュニティテンプレートによる CVE の検出
- 設定ミス
- 公開されたパネル/ダッシュボード
- デフォルトの認証情報
- テクノロジーの検出
- セキュリティヘッダーの分析
- 8000 件を超えるコミュニティテンプレートによるその他多数の検出
例:
{
"host": "192.168.1.100",
"port": 443
}
wapiti
Wapiti を使用して包括的な Web アプリケーションの脆弱性スキャンを実行します。
パラメーター:
| 名前 | 型 | 必須 | 説明 |
|---|---|---|---|
host | string | はい | 対象のホスト名または IP アドレス |
port | integer | いいえ | 対象ポート(デフォルト:80) |
vhost | string | いいえ | 仮想ホストヘッダー |
max_lines | integer | いいえ | 出力行数の上限 |
offset | integer | いいえ | 出力行のオフセット |
検出される脆弱性:
- SQL インジェクション/ブラインド SQL インジェクション
- クロスサイトスクリプティング(XSS)
- ファイルインクルージョン/パストラバーサル
- コマンド実行
- CRLF インジェクション
- サーバーサイドリクエストフォージェリ(SSRF)
- オープンリダイレクト
- HTTP セキュリティヘッダー
- コンテンツセキュリティポリシーの問題
例:
{
"host": "192.168.1.100",
"port": 8080
}
shcheck_py
shcheck.py を使用して HTTP セキュリティヘッダーを分析します。
パラメーター:
| 名前 | 型 | 必須 | 説明 |
|---|---|---|---|
host | string | はい | 対象のホスト名または IP アドレス |
port | integer | いいえ | 対象ポート(デフォルト:80) |
vhost | string | いいえ | 仮想ホストヘッダー |
max_lines | integer | いいえ | 出力行数の上限 |
offset | integer | いいえ | 出力行のオフセット |
分析するヘッダー:
- Content-Security-Policy
- Strict-Transport-Security
- X-Frame-Options
- X-Content-Type-Options
- Referrer-Policy
- Permissions-Policy
- その他のセキュリティ関連ヘッダー
例:
{
"host": "example.com",
"port": 443
}
full_scan
利用可能なすべてのスキャナーを並列で実行し、包括的なセキュリティスキャンを実施します。
パラメーター:
| 名前 | 型 | 必須 | 説明 |
|---|---|---|---|
host | string | はい | 対象のホスト名または IP アドレス |
port | integer | いいえ | 対象ポート(デフォルト:80) |
vhost | string | いいえ | 仮想ホストヘッダー |
max_lines | integer | いいえ | 出力行の最大数 |
offset | integer | いいえ | 出力行のオフセット |
機能:
- nikto、nuclei、wapiti、shcheck の各スキャナーを並列で実行します
- 結果を統合レポートにまとめます
- 各スキャナーの所要時間とステータスを含めます
- スキャナーバイナリが見つからない場合も適切に処理します
例:
{
"host": "192.168.1.100",
"port": 8080
}
history
ツールの実行履歴を表示および管理します。
パラメーター:
| 名前 | 型 | 必須 | 説明 |
|---|---|---|---|
action | string | はい | 次のいずれか:list、get、delete、clear |
id | integer | get/delete の場合 | 実行 ID |
limit | integer | いいえ | ページあたりの結果数(デフォルト:10) |
offset | integer | いいえ | ページネーションのオフセット |
アクション:
list- ページネーション付きで実行履歴を一覧表示しますget- 特定の実行の詳細をすべて取得しますdelete- ID を指定して特定の実行を削除しますclear- すべての実行履歴を削除します
API エンドポイント
| エンドポイント | 説明 |
|---|---|
POST /mcp | MCP プロトコルのエンドポイント |
GET / | サービス情報(JSON) |
GET /debug/pprof/* | プロファイリング用エンドポイント |
開発と高度な使用方法
ソースからのビルド要件
- Go 1.25+
- Nikto(
apt install niktoまたは同等の方法) - Nuclei(
go install github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest) - Wapiti(
apt install wapitiまたは同等の方法) - Shcheck(
pip install shcheckまたは GitHub から入手) - SQLite3
# Clone the repository
git clone https://github.com/tb0hdan/wass-mcp.git
cd wass-mcp
# Build
make build
# Run
./build/wass-mcp
サーバーの起動
# Default (localhost:8989)
./build/wass-mcp
# Custom bind address
./build/wass-mcp --bind 0.0.0.0:8080
# Custom database path
./build/wass-mcp --db /var/lib/wass-mcp/data.db
# Debug mode
./build/wass-mcp --debug
設定オプション
| フラグ | デフォルト | 説明 |
|---|---|---|
--bind | localhost:8989 | HTTP サーバーのバインドアドレス |
--db | ./wass-mcp.db | SQLite データベースのファイルパス |
--debug | false | デバッグログを有効にします |
--version | - | バージョンを表示して終了します |
リント
make lint
テスト
make test
プロジェクト構成
wass-mcp/
├── cmd/wass-mcp/ # Application entry point
├── pkg/
│ ├── server/ # MCP server wrapper
│ ├── storage/ # Database layer (SQLite/GORM)
│ ├── models/ # Data models
│ ├── tools/ # MCP tool implementations
│ │ ├── nikto/ # Nikto web server scanner
│ │ ├── wapiti/ # Wapiti web app scanner
│ │ ├── nuclei/ # Nuclei template scanner
│ │ ├── shcheck/ # Security headers checker
│ │ ├── fullscan/ # Parallel full scan
│ │ └── history/ # History management
│ └── types/ # Shared types and constants
├── docs/ # Documentation
└── build/ # Build output and coverage reports
セキュリティに関する注意
このツールは許可を得たセキュリティテストのみを目的としています。システムをスキャンする前に、適切な許可を得ていることを確認してください。許可のないスキャンは、地域によっては違法となる場合があります。
プロジェクトのメモ
プロジェクトのメモ、設計上の決定事項、アーキテクチャの概要については、プロジェクトのメモドキュメントを参照してください。
ライセンス
BSD 3-Clause License - Copyright (c) 2026, Bohdan Turkynevych。詳細についてはLICENSEを参照してください。
コントリビューション
- リポジトリをフォークします
- フィーチャーブランチを作成します(
git checkout -b feature/new-tool) - 変更をコミットします(
git commit -am 'Add new scanning tool') - ブランチにプッシュします(
git push origin feature/new-tool) - プルリクエストを作成します
謝辞
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。