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)

Intelsearch_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 sessionscreate_session, list_sessions, get_session, update_session, delete_session

Entriesadd_lead, add_finding, add_tested, add_note, bulk_add_entries, list_entries, update_entry, delete_entry, promote_entry

Reportsdraft_report, list_reports, update_report, delete_report

Stats & attributionget_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.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

asmhunter_mcp-0.1.2.tar.gz (86.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

asmhunter_mcp-0.1.2-py3-none-any.whl (9.7 kB view details)

Uploaded Python 3

File details

Details for the file asmhunter_mcp-0.1.2.tar.gz.

File metadata

  • Download URL: asmhunter_mcp-0.1.2.tar.gz
  • Upload date:
  • Size: 86.0 kB
  • Tags: Source
  • Uploaded using 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}

File hashes

Hashes for asmhunter_mcp-0.1.2.tar.gz
Algorithm Hash digest
SHA256 5d2d3f7d8a8457562e3c2a45ad3680c6174d63d97b83bf31952aed6470f6592c
MD5 81f351525dd8ab765cafb1820a23bf6a
BLAKE2b-256 e7d8b58dd8c8f97f859b0b47efeedb2adb2fb954090794b4aa90838a71ab1905

See more details on using hashes here.

File details

Details for the file asmhunter_mcp-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: asmhunter_mcp-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 9.7 kB
  • Tags: Python 3
  • Uploaded using 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}

File hashes

Hashes for asmhunter_mcp-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 dc358fd542174b63643725224e68516c6e537d88761271bde629dd79970e1e5c
MD5 64ef9f7a297dc475ac679c180568b909
BLAKE2b-256 41fdcb3b5f0f95c9b8d75d3ef22d91cc04f66a1a8d634b6808af666b04e411e5

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.2 This release

2 files

0.1.1

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page