nuclei-mcp

nuclei-mcp

A scoped Nuclei MCP server that only scans targets from HackerOne scope snapshots, enforcing exact, wildcard, and fuzzy matches before running scans.

Category
Visit Server

README

nuclei-mcp

A scoped Nuclei MCP server that refuses to scan anything not found in your HackerOne scope snapshots. Works as a companion to h1-scope-watcher.


Architecture

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)

The two containers share the same host directory mounted as a volume. h1-scope-watcher keeps the JSON files up to date; nuclei-mcp only reads them.


Scope Gate — How It Works

Every call to nuclei_scan or check_scope runs this logic before touching the network:

  1. Load all *.json files from /data/snapshots
  2. Try exact hostname match (e.g. api.life360.com → matches api.life360.com)
  3. Try wildcard match (e.g. sub.tile.com → matches *.tile.com)
  4. Try fuzzy keyword match (e.g. life360 → finds api.life360.com, api-cloudfront.life360.com)
  5. Check eligible_for_bounty == true AND eligible_for_submission == true
  6. Block if any check fails — no exception, no override

Quick Start

1. Build the image

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

2. Add to your Claude/Copilot MCP config

Open claude_desktop_config.json (or equivalent) mcp-config.json (copilot) and add:

{
  "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"
      ]
    }
  }
}

Key point: Both containers mount the exact same host path (D:/projects/H1-Scope-Watcher/snapshots) so they share the scope data without any extra networking or IPC.

H1-Scope-Watcher

MCP Tools

nuclei_scan

Run a Nuclei scan — scope-gated.

Parameter Type Default Description
target string Domain, URL, or fuzzy name (e.g. "life360")
templates string "" Comma-separated template paths / tags
severity string "" "critical,high" etc. (empty = all)
rate_limit int 150 Requests per second
extra_flags string "" Any extra raw nuclei flags

Example prompts:

  • "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

Preview the scope gate result without scanning.

Parameter Type Description
target string Domain, URL, or fuzzy name

Example prompts:

  • "Is tile.com in scope?"
  • "Check if snipeit.corp.tile.com is bounty eligible" → will show BLOCKED

list_programs

Show all assets from all snapshot files, grouped by eligibility.


Environment Variables

Variable Default Description
SNAPSHOTS_DIR /data/snapshots Path to H1 scope JSON files
NUCLEI_BIN nuclei Nuclei binary path
SCAN_TIMEOUT_SECONDS 300 Per-scan timeout

Scope Behaviour Reference

From tile.com program example:

Asset Type Bounty Allowed to scan?
tile.com URL ✅ Yes
thetileapp.com URL ✅ Yes
production.tile-api.com URL ✅ Yes
*.tile.com WILDCARD ⛔ Blocked
snipeit.corp.tile.com URL ⛔ Blocked
ci-android.tile.com URL ⛔ Blocked

Legal

Only scan targets you own or have explicit written permission to test. This tool does not grant any authorisation — your HackerOne programme agreement is the authorisation document.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured