Skip to main content

asmhunter-mcp

Local stdio MCP server for ASMHunter — drive your bug-bounty recon, monitoring, triage and reporting from an AI agent (Claude Code, Claude Desktop, Cursor, …).

What it is honestly good at: automating the ~80% grind — discovering fresh scope, spinning up targets, running recon + automated scans, reading back the attack surface and findings, organizing a hunt, and drafting reports. It puts you first on newly-added scope and never lets you miss a change. It does not find the high-value manual bugs for you (IDOR, business logic, auth bypass) — that's still your job; this tool buys you the time to do it.

Tools (34)

Intel — search_programs, get_program, recommend_programs, get_watchlist, get_scope_changes

Scanner (the ASMHunter edge) — list_targets, create_target, list_workflows, trigger_scan (pro+, confirm gate), get_scan_status, get_findings, list_assets

Hunt sessions — create_session, list_sessions, get_session, update_session, delete_session

Entries — add_lead, add_finding, add_tested, add_note, bulk_add_entries, list_entries, update_entry, delete_entry, promote_entry

Reports — draft_report, list_reports, update_report, delete_report

Stats & attribution — get_my_stats, get_value_receipt, list_wins, add_win

Requirements

  • Python 3.12+
  • An ASMHunter pro+ account (Personal Access Tokens and the scanner tools are pro-gated)
  • A Personal Access Token — mint one at asmhunter.app → Settings → API Tokens (asm_live_…)

Install

uv tool install asmhunter-mcp
# or:  pip install asmhunter-mcp

Connect from Claude Code

Add via the CLI:

claude mcp add asmhunter \
  --env ASMHUNTER_TOKEN=asm_live_YOUR_TOKEN_HERE \
  -- uvx asmhunter-mcp

Or add to your MCP config (~/.claude/claude_desktop_config.json or Claude Code MCP settings):

{
  "mcpServers": {
    "asmhunter": {
      "command": "uvx",
      "args": ["asmhunter-mcp"],
      "env": {
        "ASMHUNTER_TOKEN": "asm_live_YOUR_TOKEN_HERE"
      }
    }
  }
}

ASMHUNTER_API_URL defaults to https://asmhunter.app — only set it to override (e.g. a self-hosted or staging instance).

Environment variables

Variable Description Default
ASMHUNTER_TOKEN Personal Access Token (asm_live_…) required
ASMHUNTER_API_URL API base URL https://asmhunter.app

Drive a hunt — example prompt

Once connected, in Claude Code just ask for the loop in plain language:

"Show me programs with recent scope changes. Pick one with genuinely fresh scope, add its new domain as a target, list the available scan workflows and run a recon + subdomain-enum scan (confirm it). When it finishes, summarize the newly-discovered assets and any findings by severity, flag which ones are worth manual testing, and draft a report skeleton for the most promising one."

Claude will chain get_scope_changes → create_target → list_workflows → trigger_scan(confirm=true) → get_scan_status → list_assets / get_findings → add_lead / draft_report. You then do the creative manual testing on the surface it prioritized. Ongoing, keep targets under continuous monitoring and let the alerts (Telegram/email) tell you when something changed.

Run directly

ASMHUNTER_TOKEN=asm_live_... asmhunter-mcp

Architecture

  • client.py — httpx-only async client, no fastmcp dependency (unit-testable standalone; rejects path-traversal in interpolated ids)
  • server.py — FastMCP tool wrappers (thin, no business logic; tiers/quota/RLS enforced server-side)
  • __main__.py — entrypoint (mcp.run())

All tier enforcement, quota checks, and RLS live in the orchestrator — the MCP layer is a pure passthrough except for trigger_scan's local confirm gate.

Metadata

Release files for asmhunter-mcp 0.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for asmhunter-mcp 0.1.2
File Size Uploaded
asmhunter_mcp-0.1.2.tar.gz 86.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for asmhunter-mcp 0.1.2
File Interpreter ABI Platform
asmhunter_mcp-0.1.2-py3-none-any.whl Python 3 none any Details

Total release size: 95.7 kB

Release files / asmhunter_mcp-0.1.2.tar.gz

Download URL asmhunter_mcp-0.1.2.tar.gz
Size 86.0 kB
Tags Source
SHA-256 checksum
How to use checksums
5d2d3f7d8a8457562e3c2a45ad3680c6174d63d97b83bf31952aed6470f6592c
BLAKE2b-256 checksum
How to use checksums
e7d8b58dd8c8f97f859b0b47efeedb2adb2fb954090794b4aa90838a71ab1905
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.21 {"installer":{"name":"uv","version":"0.11.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / asmhunter_mcp-0.1.2-py3-none-any.whl

Download URL asmhunter_mcp-0.1.2-py3-none-any.whl
Size 9.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
dc358fd542174b63643725224e68516c6e537d88761271bde629dd79970e1e5c
BLAKE2b-256 checksum
How to use checksums
41fdcb3b5f0f95c9b8d75d3ef22d91cc04f66a1a8d634b6808af666b04e411e5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.21 {"installer":{"name":"uv","version":"0.11.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

This release

0.1.2 This release

2 release files

0.1.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page