Skip to main content
Glama

nuclei-mcp

HackerOneスコープスナップショットに含まれていないものは一切スキャンしない、スコープ付きNuclei MCPサーバーです。h1-scope-watcherのコンパニオンとして機能します。


アーキテクチャ

Copilot/Claude (AI agent)
    │
    │  MCP (stdio)
    ▼
nuclei-mcp container
    │  reads scope
    ├──────────────────► /data/snapshots/*.json  ◄─── h1-scope-watcher writes here
    │  runs scan
    └──────────────────► nuclei binary (built-in)

2つのコンテナは、ボリュームとしてマウントされた同じホストディレクトリを共有します。 h1-scope-watcherがJSONファイルを最新の状態に保ち、nuclei-mcpはそれらを読み取るだけです。


Related MCP server: shodan-mcp

スコープゲート — 仕組み

nuclei_scanまたはcheck_scopeへのすべての呼び出しは、ネットワークに触れる前に以下のロジックを実行します:

  1. /data/snapshotsからすべての*.jsonファイルを読み込む

  2. ホスト名の完全一致を試行する(例: api.life360.comapi.life360.comに一致)

  3. ワイルドカード一致を試行する(例: sub.tile.com*.tile.comに一致)

  4. 曖昧キーワード一致を試行する(例: life360api.life360.comapi-cloudfront.life360.comを見つける)

  5. eligible_for_bounty == true かつ eligible_for_submission == true であるかを確認する

  6. いずれかのチェックに失敗した場合はブロックする — 例外やオーバーライドは不可


クイックスタート

1. イメージのビルド

cd nuclei-mcp
docker build -t nuclei-mcp .

2. Claude/Copilot MCP設定への追加

claude_desktop_config.json(または同等のもの)やmcp-config.json(copilot)を開き、以下を追加します:

{
  "mcpServers": {
    "h1-scope-watcher": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-v", "D:/projects/H1-Scope-Watcher/snapshots:/data/snapshots",
        "-e", "SNAPSHOTS_DIR=/data/snapshots",
        "mcp/h1-scope"
      ]
    },
    "nuclei-mcp": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-v", "D:/projects/H1-Scope-Watcher/snapshots:/data/snapshots",
        "-e", "SNAPSHOTS_DIR=/data/snapshots",
        "nuclei-mcp"
      ]
    }
  }
}

重要なポイント: 両方のコンテナは全く同じホストパスD:/projects/H1-Scope-Watcher/snapshots)をマウントしているため、追加のネットワークやIPCなしでスコープデータを共有できます。

H1-Scope-Watcher

MCPツール

nuclei_scan

Nucleiスキャンを実行します(スコープ制限あり)。

パラメータ

デフォルト

説明

target

string

ドメイン、URL、または曖昧な名前(例: "life360"

templates

string

""

カンマ区切りのテンプレートパス / タグ

severity

string

""

"critical,high"など(空の場合はすべて)

rate_limit

int

150

1秒あたりのリクエスト数

extra_flags

string

""

その他の生のnucleiフラグ

プロンプト例:

  • "Run nuclei on life360"

  • "Scan api.tile.com for critical and high findings"

  • "Run nuclei on production.tile-api.com with cve templates only"

check_scope

スキャンせずにスコープゲートの結果をプレビューします。

パラメータ

説明

target

string

ドメイン、URL、または曖昧な名前

プロンプト例:

  • "Is tile.com in scope?"

  • "Check if snipeit.corp.tile.com is bounty eligible" → BLOCKEDと表示されます

list_programs

すべてのスナップショットファイルからすべての資産を表示し、適格性ごとにグループ化します。


環境変数

変数

デフォルト

説明

SNAPSHOTS_DIR

/data/snapshots

H1スコープJSONファイルへのパス

NUCLEI_BIN

nuclei

Nucleiバイナリパス

SCAN_TIMEOUT_SECONDS

300

スキャンごとのタイムアウト


スコープ動作リファレンス

tile.comプログラムの例から:

資産

バウンティ

スキャン許可?

tile.com

URL

✅ はい

thetileapp.com

URL

✅ はい

production.tile-api.com

URL

✅ はい

*.tile.com

WILDCARD

⛔ ブロック済み

snipeit.corp.tile.com

URL

⛔ ブロック済み

ci-android.tile.com

URL

⛔ ブロック済み


法的注意

自身が所有している、またはテストに対する明示的な書面による許可を得ているターゲットのみをスキャンしてください。 このツールは権限を付与するものではありません。HackerOneプログラムの合意書が権限の根拠となる文書です。

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    A comprehensive MCP server for automated bug bounty hunting and security reconnaissance, featuring over 28 specialized tools for subdomain discovery, vulnerability scanning, and traffic analysis. It integrates automated scope validation and professional reporting across multiple platforms like HackerOne and Bugcrowd to streamline security testing.
    5
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    A local Python MCP server for safe, human-led bug bounty recon, providing lightweight helpers for scope checks, headers, robots.txt, sitemap.xml, JavaScript URL collection, endpoint extraction, URL deduplication, evidence notes, and manual test planning.
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    A scope-aware bug-bounty & reconnaissance MCP server that works out of the box on the Python standard library and augments itself with your favourite CLI tools when they're present.
    22
    MIT