Skip to main content
Glama

What newly entered bug-bounty scope

new_in_scope
Read-only

Find FRESH attack surface: bounty-eligible assets that entered a public bug-bounty program's scope in the last days (HackerOne, Bugcrowd, Intigriti, YesWeHack, mirrored daily), the least-hunted surface there is.

Raw scope additions are mostly not new (in one week 57 of 80 were re-added after a removal), so each asset is checked against its program's own scope history: you get new_asset (never in this program's scope before) and new_program (the whole program first appeared in the window: a launch or a first public listing) assets; re-added, renamed and redacted ones are only counted in filtered_out. Additions only: removals are not listed. Per asset: in_scope_since, max severity, the host and its cached stack if observe has fingerprinted it (else a stack_note saying to call observe), and for a single GitHub repo its repo_advisories (advisories found under the repo name: a name match, check match.products; recent ones are variant-hunting seeds). Per program: platform, max bounty, safe harbor, and its HackerOne disclosed-report history (top classes, last disclosure; null on other platforms, where we hold none).

Facts, not a ranking: you decide what is worth hunting. Hunt only programs you are enrolled in and follow each program's rules. Then: observe(host) for the stack, program_outcome_prior(program) for what lands there.

Args: days: look-back window, 1-90 (default 7). platform: hackerone | bugcrowd | intigriti | yeswehack. asset_type: url | wildcard | api | source (code repositories) | mobile | other ... program: program handle or name, substring match (e.g. "openai", "cloudflare"). limit: max assets returned (default 50); count says how many qualified.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "new_in_scope"
  }
}

Input Schema

NameRequiredDescriptionDefault
daysNo
limitNo
programNo
platformNo
asset_typeNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare readOnlyHint and openWorldHint, but the description discloses provenance (four platforms, mirrored daily), the deduplication logic separating new_asset/new_program from filtered_out with a concrete 57-of-80 example, and the caveat that repo_advisories are name matches requiring match.products verification. It also flags where data is null on other platforms — substantial behavior beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded and the Args block is scannable, with every field explanation doing real work. It is long, and lines like 'the least-hunted surface there is' plus the 57-of-80 statistic are justification rather than instruction, though they do explain why filtered_out exists.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and zero schema descriptions, the description still specifies the returned per-asset fields (in_scope_since, max severity, host, stack or stack_note, repo_advisories) and per-program fields (platform, max bounty, safe harbor, disclosure history). Nothing needed to call or interpret it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description carries the full burden and does: days is bounded 1-90 with default 7, platform enumerates hackerone|bugcrowd|intigriti|yeswehack, asset_type lists url|wildcard|api|source|mobile|other, program is documented as a substring match with examples, and limit notes `count` reports qualified totals. Every parameter gains meaning absent from the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource — finding bounty-eligible assets that entered scope in the last `days` — and immediately scopes it to four named platforms with daily mirroring. It is impossible to confuse with siblings like search_vulns or observe, and the 'Additions only: removals are not listed' line sharpens the boundary further.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage context is clear ('Find FRESH attack surface', 'you decide what is worth hunting') and it routes the agent onward to observe(host) and program_outcome_prior(program), plus an eligibility constraint ('Hunt only programs you are enrolled in'). It stops short of naming a when-not-to-use case or a competing sibling for broader scope listing, so 4 rather than 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.