Sn1per MCP Server: pentest, recon and attack surface scanning について
Sn1per MCP Server は、セキュリティチームが既存の Sn1per を AI アシスタントから操作し、許可されたテストを行うためのサーバーです。設定済みの対象範囲を強制し、操作を記録し、機密情報を既定で伏せた構造化結果を返します。
主な機能
- 01対象範囲を限定した Sn1per スキャンの開始
- 02検出結果、ポート、サブドメイン、技術情報の取得
- 03スキャンワークスペースの検索と状態確認
- 04スキャンやワークスペース操作のローカル監査ログ記録
- 05結果内の機密情報を既定で伏せ字化
活用シーン
- 01設定された範囲内で許可済みの偵察を実施
- 02Sn1per ワークスペースの検出結果とオープンポートを確認
- 03スキャン、キャンセル、削除、エクスポートの要求を監査
MCP 対応
ローカルの stdio MCP サーバーとして、スキャンの開始・管理や Sn1per ワークスペース、検出データの読み取りツールを提供します。ホスト上の既存 Sn1per を操作するもので、単体のスキャナーではありません。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
uvx sn1per-mcpSNIPER_MCP_SCOPEComma-separated domains, IPs and CIDR ranges you are authorized to test (prefix ! to exclude). Scans outside it are refused.SNIPER_MCP_SCOPE_FILEOptional absolute path to a scope file with one or more entries per line and # comments.SNIPER_MCP_AUTHORIZATION_REFシークレットOptional authorization reference, such as a statement-of-work or ticket id, recorded in the audit log.SNIPER_MCP_ALLOW_INTRUSIVESet to true to offer scan modes that run brute force, exploitation or injection testing. Off by default.SNIPER_MCP_ENABLE_DESTRUCTIVESet to true to add the workspace delete and export tools; they ask the human to confirm. Off by default.SNIPER_MCP_REDACTRedaction of secrets in results. On by default; turn off only with a local model when raw values are required.SNIPER_EDITIONOptional override of the auto-detected Sn1per edition.SNIPER_BINOptional absolute path to the sniper CLI. Detected automatically on standard installs.SNIPER_INSTALL_DIROptional Sn1per install directory. Read from the CLI or /usr/share/sniper by default.SNIPER_LOOT_BASEOptional directory that contains the loot workspace tree. Defaults to the install directory's loot folder.SNIPER_SCAN_ENABLEDSet to false for a read-only deployment that never launches scans.ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
10掲載時のツール一覧 · 1 週間前に更新
このツールにパラメーターはありません。
詳細
Sn1per MCP Server
AI アシスタントからセルフホストの Sn1per を操作できます。スコープを設定し、監査ログを記録して、許可されたテストを実施できます。
許可されたセキュリティテストにのみ使用してください。Sn1per MCP Server は、所有するシステム、またはテストの明示的な書面による許可を得たシステムに対して、許可された範囲内でのみ使用してください。
ステータス: ベータ(0.9.x)。ツール名、パラメーター、出力フィールドは、0.x リリースの互換性に関する約束に準拠しています。
概要
Sn1per MCP Server は、普段お使いの AI アシスタントを、ご自身の Linux ホストにインストールされた Sn1per に接続します。Sn1per の隣で stdio 経由でローカル実行され、設定したスコープ外のターゲットへのスキャン要求を拒否します(制限事項を参照)。実行したすべてのスキャン、キャンセル、削除、エクスポート要求をローカルの監査ログに記録し、Sn1per の検出結果、オープンポート、サブドメイン、テクノロジーを、デフォルトで機密情報をマスキングした構造化データとして返します。Sn1per Community Edition 9.x と、SE、Professional、Enterprise で使用される 11.x エンジンに対応しています。検証済みのエディションは、エディション一覧で確認できます。Apache-2.0 ライセンスの無料オープンソースソフトウェアで、許可されたセキュリティテストのみを対象としています。
サーバーはホスト上の Sn1per の隣で実行されます。調査データはホスト内に留まり、ツールの結果がホスト外に送信されるのは、MCP クライアントと、そのクライアントが利用するモデルサービスを経由する場合のみです。ホスト外に送信されるデータについては、データの取り扱いとプライバシーをお読みください。
スキャンを実行するのは Sn1per です。Sn1per MCP Server を使うと、普段お使いの AI アシスタントから Sn1per を操作できます。汎用のツール実行 MCP サーバーは個々のコマンドを公開します。Sn1per MCP Server は Sn1per の一連のスキャンモードを実行し、スコープの適用と監査ログの記録を行いながら、構造化された結果を返します。
これは何ではないか
- 単体で動作するスキャナーではありません。ホストにすでにインストールされている Sn1per を起動し、その結果を読み取ります。
- Sn1per は含まれていません。先に Sn1per をインストールしてください(Sn1per Community Edition、またはライセンスに付属する Professional もしくは Enterprise のインストーラー)。
- 複数ユーザーで共有するホスト向けではありません。専用のシングルユーザー用スキャン VM またはコンテナーで実行してください。
要件
- Sn1per Community Edition 9.x または 11.x エンジン(Sn1per SE、Sn1per Professional、Sn1per Enterprise)がインストールされた Linux ホスト。
- Python 3.11 以降。Ubuntu 22.04 と Kali 2022.x に付属する Python は 3.10 のため、uv で管理する Python が必要です(インストールガイド)。
- Sn1per CLI を実行するための root 権限、またはパスワードなしの sudo ルール。そのルールは、指定したユーザーに完全な root アクセスを与えるのと同等です。設定する前にセキュリティモデルをお読みください。
- ローカル stdio サーバーを実行できる MCP クライアント。Web、モバイル、リモートコネクターのクライアントは 0.9.0 ではサポートされていません(stdio のみ)。
クイックスタート
<user> を、MCP クライアントを実行するユーザーに置き換えてください。環境ファイルが正式な設定となるため、--check ではクライアントが実行する内容がそのまま確認されます。
-
pipx をインストールし、そのユーザーとしてサーバーをインストールします(
sudoで pipx を実行しないでください)。sudo apt install pipx pipx ensurepath # open a new shell, then: pipx install sn1per-mcp==0.9.0 -
モード 0600 で環境ファイル
/home/<user>/.config/sn1per-mcp/envを作成します。mkdir -p /home/<user>/.config/sn1per-mcp install -m 0600 /dev/null /home/<user>/.config/sn1per-mcp/env次の行をファイルに記述し、プレースホルダーを、テストを許可されているターゲットに置き換えてください。プレースホルダーのままでは拒否される(
scope_invalid)ため、置き換えるまでスキャンは実行されません。SNIPER_MCP_SCOPE=<authorized-targets> -
設定を確認します。出力には、sudo ルールに指定する Sn1per CLI の realpath が含まれます。
/home/<user>/.local/bin/sn1per-mcp --env-file /home/<user>/.config/sn1per-mcp/env --check -
その realpath(標準インストールでは
/usr/share/sniper/sniper)を指定して sudoers のドロップインファイルを追加します。クライアントを root として実行する場合は、この手順をスキップしてください。詳細な手順については、docs/install.md を参照してください。sudo visudo -f /etc/sudoers.d/sn1per-mcp<user> ALL=(root) NOPASSWD: /usr/share/sniper/sniper -
Claude Code にサーバーを登録します(その他のクライアントについては、docs/clients.md を参照してください)。
claude mcp add sn1per -s user -- /home/<user>/.local/bin/sn1per-mcp --env-file /home/<user>/.config/sn1per-mcp/env -
新しいクライアントセッションを開始し、「Run sniper_status」と尋ねます。
クライアントの設定
0.9.0 のクライアントテスト(2026-10-12)に合格したクライアントのみを掲載しています。設定パス、承認設定、クライアントごとの注意事項については、docs/clients.md を参照してください。
| クライアント | ステータス | 削除・エクスポートツール(MCP のエリシテーションが必要) |
|---|---|---|
| Claude Code (2.1.284) | 検証済み | はい。対話セッションで使用できます。SDK ホストなしで claude -p を実行すると確認がキャンセルされるため、削除もエクスポートも実行されません |
| Codex CLI (0.125.0) | codex exec のみ検証済み | codex exec では確認が拒否されるため使用できません。対話型の Codex インターフェースはまだテストされていません |
| Web、モバイル、リモートコネクターのクライアント | 0.9.0 では未対応(stdio のみ) | 該当なし |
Claude Code: クイックスタート(手順 5)の 1 行のコマンドを使用します。Codex CLI: config.toml の設定と、そこで export_workspace に必要な承認設定については、docs/clients.md を参照してください。ローカルの stdio サーバーを起動するその他のクライアントは、0.9.0 ではまだテストされていません。
Sn1per が別のマシンにある場合、またはクライアントが macOS や Windows 上にある場合は、docs/remote.md を参照してください。SSH の手順(Linux の OpenSSH クライアントで検証済み。Windows と macOS のクライアントは手順を記載していますが未検証)、WSL2(手順を記載していますが未検証)、Docker の手順(記載済み、未検証)を確認できます。
エディション
サーバーは、ホスト上の Sn1per CLI からエディションとエンジンを検出します。「検証済み」は、2026-10-12 に実施した 0.9.0 の検証で動作を確認したことを意味します。「想定」は、既知の阻害要因はないものの、動作確認はしていないことを意味します。ツールごとの結果、実行したスキャンモード、実行後に行った修正については、モード別の表とエディションごとの注記とともに、docs/editions.md に記載されています。
| エディション | エンジンの方言 | ステータス |
|---|---|---|
Sn1per Community Edition 9.2(リポジトリ master の a5450bc) | 9.x | 2026-10-12 に検証済み。サーバーは root として実行 |
| 以降の Sn1per Community Edition 9.x リリース | 9.x | 想定 |
| Sn1per SE 11.0 および 11.1 | 11.x | 2026-10-12 に検証済み(11.0 は root として、および sudo 経由で一般ユーザーとして、11.1 は root として実行) |
| Sn1per Enterprise、11.3 開発ビルド | 11.x | 2026-10-12 に検証済み。sudo 経由で一般ユーザーとして実行 |
| 11.2 を含むその他の 11.x リリース | 11.x | 想定 |
| Sn1per Professional 2026 | 11.x | SE および Enterprise と同じ 11.x エンジンを使用します。Professional のインストール環境ではまだ実行していません |
| Sn1per Community Edition 9.2 未満 | - | サポート対象外 |
プラットフォーム: Linux のみです。Kali Rolling(amd64)で検証済みです。Ubuntu 24.04:インストールおよび MCP セッションは検証済みです(Ubuntu ではスキャンを実行していません)。Debian 12 および 13、Parrot:想定です。Ubuntu 22.04 および Kali 2022.x:uv で管理された Python、または別途インストールした Python 3.11 以降がある場合に限り想定です。システムの Python 3.10 は拒否されます。BlackArch:想定です。PATH 上に sniper シンボリックリンクが必要です。arm64:想定です。macOS および Windows はサーバーホストとしてサポートされていません。SSH 経由でクライアントホストとして使用してください(docs/remote.md)。
ツール
全パラメーター、結果の例、エラーコードについては、docs/tools.md を参照してください。
| ツール | 機能 | 読み取り専用または状態の変更 | 利用可能条件 |
|---|---|---|---|
sniper_status | 検出したエディション、利用可能なスキャンモード、設定済みのスコープ、スキャンを実行できない理由を報告します | 読み取り専用 | 常時 |
list_workspaces | ホスト上の Sn1per の loot ワークスペースを一覧表示します | 読み取り専用 | 常時 |
scan_status | スキャンの状態と、機密情報を伏せたログ末尾を報告するか、ワークスペース内で実行中のスキャンがあるかどうかを報告します | 読み取り専用 | 常時 |
get_findings | 重大度、タイトル、場所、ホストを含む検出結果を読み取ります | 読み取り専用 | 常時 |
get_ports | プロトコル、サービス、バージョンを含むオープンポートを読み取ります | 読み取り専用 | 常時 |
get_subdomains | 検出されたサブドメインを読み取ります | 読み取り専用 | 常時 |
get_technologies | 検出された Web テクノロジーを読み取ります | 読み取り専用 | 常時 |
grep_loot | 文字列または拡張正規表現を使って、1 つのワークスペース内(またはオペレーターの要求時はすべてのワークスペース内)の loot ファイルを検索します | 読み取り専用 | 常時 |
sniper_scan | root として 1 つのターゲットの Sn1per スキャンを開始し、ジョブハンドルを返します | 状態を変更:ターゲットにトラフィックを送信します | 常時登録されています。スコープを設定するまで、すべてのターゲットを拒否します |
cancel_scan | このサーバーが開始したスキャンを停止します | 状態を変更 | 常時 |
delete_workspace | 人間がワークスペース名を入力した後、root として 1 つのワークスペースとそのスキャンデータを完全に削除します | 状態を変更:取り消し不可 | SNIPER_MCP_ENABLE_DESTRUCTIVE=1 に設定し、MCP エリシテーションに対応するクライアントを使用している場合のみ |
export_workspace | 人間がワークスペース名を入力した後、1 つのワークスペースの tar.gz アーカイブをサーバーの状態ディレクトリに書き込みます | 状態を変更:ファイルを書き込みます | SNIPER_MCP_ENABLE_DESTRUCTIVE=1 に設定し、MCP エリシテーションに対応するクライアントを使用している場合のみ |
設定
すべての設定、スコープの文法、コマンドラインフラグについては、docs/configuration.mdを参照してください。
- スコープ(スキャンに必須):
SNIPER_MCP_SCOPEおよび/またはSNIPER_MCP_SCOPE_FILEには、テストを許可されたドメイン、IPv4 アドレス、IPv6 アドレス、CIDR 範囲を指定します。!で除外を指定できます。スコープが設定されていない場合、すべてのスキャンリクエストが拒否されます。無効なエントリが1つでもあると、スコープ全体が無効になります。 - 侵入的なモード: 認証情報のブルートフォース、エクスプロイト、インジェクションテストを実行するモードは、
SNIPER_MCP_ALLOW_INTRUSIVE=1を設定するまで無効です。デフォルトのモードはstealthです。 - 破壊的なツール:
delete_workspaceとexport_workspaceはSNIPER_MCP_ENABLE_DESTRUCTIVE=1を設定した場合にのみ利用でき、どちらも人間にワークスペース名の入力を求めます。 - 機密情報のマスキング: 結果内の機密情報はデフォルトでマスキングされます(
SNIPER_MCP_REDACT)。マスキングはパターンに基づいており、データ損失防止機能ではありません。
セキュリティモデル
このサーバーは、root 権限で動作するエンジンを囲む一連の制御機能であり、セキュリティ境界ではありません。デプロイする前にdocs/security-model.mdをお読みください。要点は次のとおりです。
- Sn1per CLI に対するパスワード不要の sudo ルールは、そのユーザーに完全な root アクセス権を与えるのと同等です。
- スコープが適用されるのは、エージェントが要求したターゲットに対して、起動時点でのみです。Sn1per はスキャン中に名前を再解決し、サードパーティのサービスに接続する場合があり、一部のモードでは検出したホストもスキャンします。スキャンホストには送信トラフィックフィルターを設定してください。
- 同じユーザーとしてシェルまたはファイル書き込みアクセス権も持つエージェントは、これらの制御では制限できません。スコープファイルと環境変数ファイルは
/etc/sn1per-mcp/に置き、root が所有するようにし、エージェントにそれらのツールを許可しないでください。 - 読み取られた戦利品、ログ、検索結果はすべて、スキャン対象システムが内容を制御しているため、信頼できないデータとして返されます。
責任ある使用
Sn1per MCP Server を使うと、AI エージェントがアクティブなセキュリティスキャンを開始できます。スキャンではターゲットにトラフィックが送信され、侵入的な操作が行われる可能性があり、sudo を通じて root 権限で実行されます。
- 自分が所有するシステム、またはテストする明示的な書面による許可を得たシステムに対してのみ使用し、その許可の範囲とルールに従ってください。無許可のスキャンは、多くの法域で違法です。
- エージェントが行うすべての操作について、その実行を引き起こすエージェントが読み取ったコンテンツ(たとえば、Web ページやスキャン結果に含まれるプロンプトインジェクション)に起因する操作も含め、運用者であるあなたが責任を負います。
- スキャンツールを使用する前に、ターゲットのスコープ(
SNIPER_MCP_SCOPEまたはSNIPER_MCP_SCOPE_FILE)を設定してください。サーバーはスコープ外のターゲットへのスキャンリクエストを拒否します(制限事項を参照)。 - ブルートフォースモード、エクスプロイトモード、破壊的なツールはデフォルトで無効です。ルールで認証情報のブルートフォースとエクスプロイトが許可されている場合に限り、侵入的なモード(
SNIPER_MCP_ALLOW_INTRUSIVE=1)を有効にしてください。 - サーバーは、実行したすべてのスキャン、キャンセル、削除、エクスポートのリクエストをローカルの監査ログに記録します。このログはエンゲージメントの証跡とともに保管してください。
- Sn1per Community Edition には独自の EULA が適用されており、許可のないスキャンも禁止されています。
このソフトウェアは、いかなる種類の保証もなく、Apache License 2.0 の下で提供されます。
データの取り扱いとプライバシー
- MCP サーバー自体はテレメトリを送信しません。唯一のネットワークアクティビティは、ホスト名のターゲットがスコープ内にあるかを確認するために行う DNS ルックアップです。
- Sn1per は、このサーバー経由で起動されたスキャンを含め、スキャンを開始するたびに独自のアップデート確認とライセンス確認を実行します。Sn1per Community Edition はホストマシンの ID を送信します。Sn1per SE、Professional、Enterprise はライセンスキー、マシン ID、使用統計を送信し、アップデートサーバーの応答を root 権限で実行します。Professional のライセンス確認では、実行中のすべてのスキャンが停止されたり、インストールが削除されたりする場合があります。MCP サーバーがこれらの確認を抑止することはありません。エディションごとの詳細については、docs/editions.mdをご覧ください。
- スキャンでは、ターゲットにトラフィックが送信されます。また、モードによっては、サードパーティのサービス(OSINT API、ウェブアーカイブ、証明書および DNS データセット、whois)や、帯域外インタラクションサーバーにもトラフィックが送信されます。
- ツールの結果(調査結果、ホスト名、ポート、検索一致項目。収集したメールアドレスなどの個人データが含まれる場合があります)は、MCP クライアントに返され、そこからクライアントが使用するモデルサービスに送られます。一部のクライアントでは、モデルとの通信をクライアントベンダー独自のバックエンド経由で行い、会話の記録がベンダーのクラウドに保存または同期される場合があります。契約上の取り決めやデータ保護の義務上、これが許可されていることを確認してください。許可されていない場合は、ローカルでホストしたモデルを使用してください。
- サーバーは、ジョブ記録、ジョブログ、エクスポート、監査ログを状態ディレクトリ(デフォルトでは
/home/<user>/.local/state/sn1per-mcp、root の場合は/root/.local/state/sn1per-mcp)に、所有者のみがアクセスできる権限で書き込みます。ディスク上のジョブログとエクスポートは編集・加工されません。状態ディレクトリはエンゲージメントの証拠として扱ってください。
リモート利用、アップグレード、アンインストール、トラブルシューティング
- 別のマシン(macOS、Windows、別の Linux ホスト)上のクライアント、WSL2、Dockerについては、docs/remote.mdをご覧ください。
- アップグレード、ロールバック、アンインストール(sudoers ルールの削除を含む)については、docs/install.mdをご覧ください。
- よくある問題とエラーコードについては、docs/troubleshooting.mdをご覧ください。
サポートとセキュリティ
- 質問やサポートについては、SUPPORT.mdをご覧ください。
- 脆弱性は、GitHub Private Vulnerability Reportingを通じて非公開で報告するか、SECURITY.mdの記載に従って報告してください。脆弱性について公開の issue を作成しないでください。
- Developer Certificate of Origin に基づく貢献を歓迎します。詳しくはCONTRIBUTING.mdをご覧ください。
- このプロジェクトは行動規範に従っています。
ライセンスと商標
Apache License 2.0(LICENSE、NOTICE)は、この MCP サーバーのみを対象とします。Sn1per は対象外です。Sn1per Community Edition は、独自の EULA に基づきソースが公開されています。Sn1per Professional と Sn1per Enterprise は Sn1perSecurity LLC の商用製品であり、別途ライセンスが付与されます。「Sn1per」と Sn1per のロゴは Sn1perSecurity LLC の商標です。詳しくはTRADEMARKS.mdをご覧ください。
更新通知を受け取る
すべてのインストールコマンドでは厳密なバージョンが指定されているため、アップグレードするまで修正は適用されません。PyPI での取り下げは、== でバージョンを固定したインストールには反映されません。新しいリリースやセキュリティ修正の通知を受け取るには、次の手順を行ってください。
- GitHub で Watch、続いて Custom を選択し、このリポジトリの Releases と Security alerts を選択します。
- リリースページとセキュリティアドバイザリーをご確認ください。
Sn1per MCP Server は Sn1perSecurity LLC によって公開されています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。