skills/bountylens/SKILL.md
Use BountyLens sessions, findings, leads, tested endpoints, reports, watchlist, stats, and program intelligence without per-agent MCP config.
npx skillsauth add ghostonbutterbread/bug-bounty-harness bountylensInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Use when a task needs to read or write BountyLens hunt sessions, findings, leads, tested endpoints, notes, report drafts, program records, watchlist, recommendations, or hunter stats.
Do not require agents to add @bountylens/mcp to their MCP config. The package is a stdio MCP wrapper around the BountyLens REST API, so agents should use the direct API helper in this skill unless Ryushe explicitly asks for MCP-client wiring.
Token source:
~/.env
Expected variables:
BOUNTYLENS_API_KEY=bl_...
BOUNTYLENS_URL=https://bountylens.com
BOUNTYLENS_URL is optional and defaults to https://bountylens.com.
BOUNTYLENS_API_KEY or raw ~/.env contents.~/.env; use scripts/bountylens_api.py, which parses key/value lines without executing the file.submitted unless Ryushe explicitly says it was submitted or asks you to set that status.python3 skills/bountylens/scripts/bountylens_api.py --check
python3 skills/bountylens/scripts/bountylens_api.py GET /sessions --query status=active
python3 skills/bountylens/scripts/bountylens_api.py GET /watchlist
python3 skills/bountylens/scripts/bountylens_api.py GET /programs --query q=shopify
python3 skills/bountylens/scripts/bountylens_api.py POST /sessions/123/entries \
--data-json '{"type":"lead","title":"Interesting redirect behavior","endpoint":"https://example.com/path","method":"GET","description":"Observed redirect parameter behavior; needs validation."}'
jq, then POST to:
/sessions/{session_id}/reports
Sessions:
GET /sessions
POST /sessions
GET /sessions/{session_id}
PUT /sessions/{session_id}
DELETE /sessions/{session_id}
Entries:
GET /sessions/{session_id}/entries
POST /sessions/{session_id}/entries
POST /sessions/{session_id}/entries/bulk
PUT /sessions/{session_id}/entries/{entry_id}
DELETE /sessions/{session_id}/entries/{entry_id}
Reports:
GET /sessions/{session_id}/reports
POST /sessions/{session_id}/reports
PUT /sessions/{session_id}/reports/{report_id}
DELETE /sessions/{session_id}/reports/{report_id}
Programs and intelligence:
GET /programs?q={query}
GET /programs/{handle}
GET /recommend
GET /watchlist
GET /stats
Only use this path when a task specifically needs a real MCP server process, for example manual integration testing with an MCP client:
npx -y @bountylens/mcp
The process expects BOUNTYLENS_API_KEY and optionally BOUNTYLENS_URL in its environment. Prefer passing those from the current process environment or a secret-aware launcher. Do not add the server to global Claude/Codex/OpenClaw MCP config just to make BountyLens available to agents.
BOUNTYLENS_API_KEY is missing from the environment and ~/.env.submitted status change was not explicitly approved by Ryushe in the current task.testing
Systematic live request mutation: flip booleans, field ops, headers, content-type, parser differentials, replay vs intercept, null/empty testing. Inherits live-testing-policy scope/rate/ownership rules.
development
Test password reset, forgot-password, reset-token, email reset, and account recovery flows for account takeover risks.
tools
Targeted param/field discovery using tech stack clues, naming conventions, and controlled-rate ffuf — then feeds findings into request-exploration for mutation. Not brute-force; informed and scoped.
testing
Ghost-only workflow for creating approved bug bounty test accounts and saving credential references.