Nmap MCP Server について
nmap によるネットワークスキャンへのアクセスを提供する MCP サーバーです。スキャンの実行、結果の保存と取得、プロンプトによる分析に対応しています。認可されたネットワークを検査するセキュリティ担当者を対象としています。
主な機能
- 01任意のターゲットとオプションでの nmap スキャン実行
- 02スキャン結果の保存と取得
- 03プロンプトによるスキャン結果の分析
- 04スキャン結果のリソース提供
活用シーン
- 01認可された IP アドレス範囲でのサービスバージョン検出
- 02AI アシスタントによる過去のスキャン記録の確認
- 03セキュリティ、サービス、概要の観点でのスキャン結果分析
MCP 対応
このプロジェクトは、run-nmap-scan、get-scan-details、list-all-scans ツール、analyze-scan プロンプト、nmap://scan/{scan_id} リソースを MCP クライアントに公開する MCP サーバーです。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Nmap MCP サーバー
これは、nmap のネットワークスキャン機能を利用できる Model Control Protocol(MCP)サーバーです。
機能
- 指定したターゲットに対して、オプションをカスタマイズして nmap スキャンを実行します
- スキャン結果を保存、取得します
- AI プロンプトを使用してスキャン結果を分析します
インストール
必要条件:
- Python 3.10+
- python-libnmap
- nmap(システムにインストール済みであること)
pip install python-libnmap
nmap がシステムにインストールされていることを確認してください:
# On Debian/Ubuntu
sudo apt-get install nmap
# On Fedora/CentOS
sudo dnf install nmap
使用方法
サーバーの実行
ソースコードからサーバーを直接実行するには:
python -m src.nmap_mcp
パッケージをインストールしてコマンドとして実行するには:
pip install -e .
nmap-mcp
利用可能なツール
-
run-nmap-scan
- 指定したターゲットに対して nmap スキャンを実行します
- パラメーター:
target:ターゲットのホストまたはネットワーク(例:192.168.1.1 または 192.168.1.0/24)options:Nmap オプション(例:-sV -p 1-1000)
-
get-scan-details
- 特定のスキャンの詳細情報を取得します
- パラメーター:
scan_id:取得するスキャンの ID
-
list-all-scans
- 利用可能なすべてのスキャン結果を一覧表示します
- パラメーターは不要です
利用可能なプロンプト
- analyze-scan
- nmap のスキャン結果を分析します
- パラメーター:
scan_id:分析するスキャンの IDfocus:分析対象(security/services/overview)
リソース
スキャン結果は、nmap://scan/{scan_id} URI スキームのリソースとして利用できます。
ワークフローの例
-
スキャンを実行します:
Call tool: run-nmap-scan Parameters: {"target": "192.168.1.0/24", "options": "-sV -p 22,80,443"} -
スキャンの詳細を取得します:
Call tool: get-scan-details Parameters: {"scan_id": "<scan_id from previous step>"} -
すべてのスキャンを一覧表示します:
Call tool: list-all-scans -
スキャン結果を分析します:
Get prompt: analyze-scan Parameters: {"scan_id": "<scan_id>", "focus": "security"}
セキュリティに関する考慮事項
このサーバーは、システム上で nmap コマンドを実行します。所有していないネットワークや、スキャンの許可を得ていないネットワークをスキャンする場合は注意してください。無許可のスキャンは、地域によっては違法となる可能性があります。
トラブルシューティング
nmap が見つからない、または正しく実行されないことに関連するエラーが発生した場合:
- nmap がインストールされ、PATH から利用できることを確認してください
- ログを確認し、どの nmap 実行ファイルが使用されているか調べてください
- サーバーは競合を避けるため、nmap のフルパスを使用しようとします
Docker の使用
MCP サーバーは Docker コンテナーで実行できます:
# Build the Docker image
docker build -t nmap-mcp-server .
# Run the Docker container
docker run -it --rm nmap-mcp-server
Glama MCP ディレクトリとの連携では、Docker コンテナーを使うことで、インストール時の依存関係を気にせず、他のユーザーがこの MCP サーバーを簡単に利用できます。
ライセンス
このプロジェクトは MIT License の下でライセンスされています。詳細は LICENSE ファイルを参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。