Skip to main content
Glama
ROOT-CyberM

Bizone Bug Bounty

by ROOT-CyberM

Bizone Bug Bounty

MCP-сервер для BI.ZONE Bug Bounty: программы, скоуп, правила, выплаты и рейтинг исследователей прямо в ИИ-агенте.

  • Только чтение — в коде нет ни одного не-GET запроса

  • Приватные программы — если подключён cookie аккаунта

  • Ваши отчёты недоступны — агент видит чужие, но не ваши

  • Без браузера и парсинга HTML — работает через публичное API платформы

Установка

Нужен Node.js 18.17+.

git clone https://github.com/ROOT-CyberM/bizone-bug-bounty.git
cd bizone-bug-bounty
npm install

npm install сам соберёт dist/. Проверка:

npm run smoke

Related MCP server: h1-brain

Подключение

Везде нужен абсолютный путь до dist/index.js.

OpenCode

opencode.json:

{
  "mcp": {
    "servers": {
      "bizone-bug-bounty": {
        "type": "local",
        "command": ["node", "/abs/path/bizone-bug-bounty/dist/index.js"],
        "timeout": { "startup": 30000, "catalog": 30000, "execution": 120000 }
      }
    }
  }
}

Claude Code

claude mcp add --transport stdio bizone -- node /abs/path/bizone-bug-bounty/dist/index.js

Claude Desktop и Cursor

claude_desktop_config.json / ~/.cursor/mcp.json:

{
  "mcpServers": {
    "bizone": {
      "command": "node",
      "args": ["/abs/path/bizone-bug-bounty/dist/index.js"]
    }
  }
}

VS Code

.vscode/mcp.json:

{
  "servers": {
    "bizone": {
      "type": "stdio",
      "command": "node",
      "args": ["/abs/path/bizone-bug-bounty/dist/index.js"]
    }
  }
}

Windows-путь в JSON: C:\\Users\\you\\bizone-bug-bounty\\dist\\index.js.

Авторизация (необязательно)

Без cookie видны только публичные программы. С cookie — плюс приватные и приглашённые. Ваши отчёты не показываются в любом режиме.

  1. Войдите на bugbounty.bi.zone.

  2. DevTools → Application → Cookies → https://bugbounty.bi.zone → sessionid → скопируйте значение.

  3. Выберите способ хранения:

Способ

Как

DPAPI (Windows)

powershell -ExecutionPolicy Bypass -File scripts/protect-session.ps1 → путь в BIZONE_SESSIONID_DPAPI_FILE

Переменная

BIZONE_SESSIONID=<значение>

Файл

BIZONE_SESSIONID_FILE=<путь> с правами только владельцу

Для OpenCode добавьте в блок сервера:

"environment": {
  "BIZONE_SESSIONID_DPAPI_FILE": "C:\\Users\\you\\.config\\bizone\\sessionid.dpapi"
}

Ротация: выйти/войти на платформе и повторить шаг 2.

Инструменты

Инструмент

Что даёт

list_programs

Поиск программ: выплаты, отчёты, размер скоупа, доступ (public/private)

get_program

Профиль: таблица выплат по критичности, статистика, правила

get_program_scope

In-scope и out-of-scope активы с критичностью и целью

search_scope

Какие программы покрывают домен или продукт

list_reports

Отчёты других исследователей

get_report

Детали одного отчёта

program_stats

Агрегаты выплат по программе

top_hackers

Рейтинг: глобальный или внутри программы

get_researcher

Профиль: место, репутация, ачивки, выплаты

get_me

Ваш профиль (нужен cookie)

Метрики: rating — сумма баллов (может уменьшаться), signal −10…+7, impact 0…50.

Безопасность

  • Только GET — отправить отчёт или что-то изменить невозможно.

  • Cookie уходит только на https://*.bi.zone; cross-host редиректы блокируются.

  • my_reports отсутствует, свои отчёты отфильтрованы во всех инструментах.

  • Секрет не хранится в конфиге и не попадает в git; get_me маскирует PII.

  • Правила программ помечены как untrusted — защита от промпт-инъекций.

Модель угроз и остаточные риски: SECURITY.md.

Примеры запросов

  • «Какие приватные программы мне доступны?»

  • «Покажи скоуп kaspersky и что вне его»

  • «Сколько платили на sberbank-online за 2025 год?»

  • «Профиль Santry: место, ачивки, на чём заработал»

Разработка

npm run build   # tsc → dist/
npm run smoke   # e2e-проверка публичного и приватного режимов
src/client.ts        API-клиент: кэш, retry, секреты
src/tools/*          инструменты MCP
scripts/smoke.mjs    e2e-тест по stdio

Лицензия

MIT. Проект не аффилирован с BI.ZONE.

Available Tools

10 tools
get_meMy BI.ZONE profileA

Profile of the account configured via BIZONE_SESSIONID / BIZONE_COOKIE: username, reputation, resolved reports, rewards and verification state. Reports themselves are never exposed.

NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does disclose the auth mechanism (BIZONE_SESSIONID / BIZONE_COOKIE) and a meaningful privacy boundary ('reports themselves are never exposed'), which prevents an agent from expecting report data. It stops short of describing behavior when no session is configured or any error/failure mode.

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

Conciseness5/5

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

Two sentences, front-loaded with the resource and its data source, followed by the privacy caveat. No filler or redundancy.

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

Completeness4/5

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

With no output schema and no annotations, the description compensates by enumerating the returned fields (username, reputation, resolved reports, rewards, verification state). The main remaining gap is undefined behavior when the session is missing or invalid.

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

Parameters4/5

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

The tool takes zero parameters, so there is nothing for the description to disambiguate; baseline 4 applies. The mention of session env vars is a useful hint that the caller's context, not an argument, drives the result.

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

Purpose4/5

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

States a specific verb and resource (returns the profile of the session-configured account) and enumerates the fields returned. It implicitly distinguishes itself from get_researcher by scoping to the authenticated account, though it never names that sibling explicitly.

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

Usage Guidelines3/5

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

Usage is only implied: an agent can infer this is the way to identify the current account, but there is no explicit 'use this when...' guidance or pointer to get_researcher for other users. No exclusions or prerequisites are stated beyond the session env vars.

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

get_programGet BI.ZONE program detailsA

Full profile of one bug bounty program: description, site, payout ranges per severity, statistics (reports, resolved, paid, 90-day numbers), average answer time, program rules (markdown) and a scope summary. Accepts a slug, part of the name, or a https://bugbounty.bi.zone/companies//... URL.

NameRequiredDescriptionDefault
programYesProgram slug ('kaspersky'), name fragment, or full bugbounty.bi.zone program URL.
include_rulesNoInclude the program rules text. Default true.
include_scopeNoAlso return the full in/out-of-scope asset list. Default false (use get_program_scope for that).
rules_max_charsNoMaximum characters of rules to return, default 6000.

TDQS

A4/5.0
Behavior4/5

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

No annotations exist, so the description must carry the burden, and it does disclose the returned content in concrete terms (payout ranges, statistics, 90-day numbers, average answer time, rules markdown, scope summary) plus the flexible identifier forms. It omits what happens when a name fragment is ambiguous or matches multiple programs, and gives no indication of cost/rate limits.

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

Conciseness5/5

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

Two sentences, front-loaded with the tool's identity and contents, then identifier flexibility. No filler or repetition.

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

Completeness4/5

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

With no output schema, the description usefully enumerates what is returned, and the schema covers all parameters. The remaining gap is edge-case behavior (ambiguous fragment, not-found handling) for a read tool that has no annotations to fall back on.

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

Parameters3/5

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

Schema coverage is 100%, so all four parameters are already documented in the schema. The description's 'accepts a slug, part of the name, or a ... URL' largely restates the schema's program parameter, adding no syntax or matching-behavior detail beyond it.

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?

States a specific verb+resource ('Full profile of one bug bounty program') and enumerates what the profile contains, so an agent can distinguish it from program_stats and get_program_scope without opening any schema.

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

Usage Guidelines3/5

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

Usage is implied by 'one program' and the field list, but there is no explicit guidance on when to prefer list_programs, program_stats, or get_program_scope, and no exclusions. The only routing hint (use get_program_scope) lives in the schema, not the description.

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

get_program_scopeGet program scope (in / out of scope assets)A

Structured scope of a BI.ZONE program: every in-scope and out-of-scope asset with its severity, target/notes (often a URL or domain), eligibility and archive status. This is the authoritative list to check before testing a target.

NameRequiredDescriptionDefault
programYesProgram slug ('kaspersky'), name fragment, or full bugbounty.bi.zone program URL.
severityNoFilter assets by severity.
in_scope_onlyNoReturn only in-scope assets. Default false (both lists).
include_archivedNoInclude archived scope items. Default false.

TDQS

A3.6/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden; it does disclose the return surface (severity, target/notes, eligibility, archive status) and that the result is exhaustive. However, it says nothing about result size, pagination, auth requirements, or whether archived items are excluded by default beyond what the schema already states.

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

Conciseness5/5

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

Two sentences, zero waste, with the scope of what is returned front-loaded ahead of the advisory usage note. Every clause carries information.

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

Completeness4/5

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

With no output schema, the description appropriately enumerates the returned fields so an agent knows what comes back. It is nearly complete for a read-only listing tool, missing only volume/pagination expectations and permission notes.

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

Parameters3/5

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

Schema description coverage is 100%, so all four parameters (program, severity, in_scope_only, include_archived) are already documented in the schema with defaults. The description adds only the useful note that target/notes is 'often a URL or domain', which is marginal field-level context rather than parameter guidance.

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

Purpose4/5

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

States a specific resource and scope: the complete in-scope/out-of-scope asset list for a BI.ZONE program, plus the fields each asset carries. An agent can distinguish it from get_program (metadata) or search_scope (filtered lookup), though neither sibling is named explicitly.

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

Usage Guidelines3/5

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

'This is the authoritative list to check before testing a target' gives an implied usage context, but there is no explicit guidance on when to prefer search_scope or get_program, and no exclusion criteria. The agent must infer the routing.

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

get_reportGet a single reportA

Details of one BI.ZONE report by id: researcher, program, asset, payout, visibility and dates. Private/internal reports expose only metadata unless the MCP server is configured with a session cookie.

NameRequiredDescriptionDefault
idYesReport id, as returned by list_reports.

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does disclose a genuinely non-obvious access-control behavior: private/internal reports expose only metadata unless the server has a session cookie. It does not cover not-found behavior or error responses, but the disclosure of restricted-visibility handling is substantive and cannot be inferred from structured fields.

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

Conciseness5/5

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

Two sentences, zero waste, with the payload contents front-loaded and the visibility caveat as the closing qualifier. Nothing is repeated from the title or schema.

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

Completeness4/5

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

For a one-parameter read tool with no output schema and no annotations, the description compensates well by enumerating the returnable fields and flagging the metadata-only case. The only gap is failure behavior (nonexistent id, unauthorized access), which an agent would likely want before calling.

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

Parameters3/5

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

There is a single parameter with 100% schema description coverage, including its provenance ('as returned by list_reports') and positive-integer bound, so the schema does the heavy lifting. The description only restates 'by id' and adds no format or resolution guidance beyond it.

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?

States a specific verb and resource ('Details of one BI.ZONE report by id') and enumerates the fields returned (researcher, program, asset, payout, visibility, dates). The 'one ... by id' framing makes it clearly distinct from the list_reports sibling without needing the schema.

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

Usage Guidelines3/5

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

Usage is only implied: the id comes from list_reports (stated in the schema, not the description). The description does add a real access condition — private/internal reports return metadata only unless a session cookie is configured — but it never says when to prefer this over list_reports or what to do when a lookup is not permitted.

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

get_researcherResearcher profile, rank and achievementsA

Full public profile of a BI.ZONE researcher: global rank, reputation, reports and rewards, average signal/impact, achievements (badges) and a breakdown of payouts by program. Accepts a username ('Santry') or a profile URL (https://bugbounty.bi.zone/profile/Santry/hackactivity).

NameRequiredDescriptionDefault
researcherYesResearcher username or full profile URL.
reports_limitNoHow many recent reports to list, default 10.
include_reportsNoInclude a breakdown by program and the most recent reports. Default true.
include_achievementsNoInclude the achievements table. Default true.

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations present, the description carries the full disclosure burden. It does establish that the data is 'public' (implying no special auth) and that this is a retrieval operation, but says nothing about failure modes — invalid username, nonexistent profile — or whether the result is cached/truncated. For a low-risk read this is adequate but not rich.

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?

Two sentences, zero filler: the first front-loads what the profile returns, the second handles the accepted input formats. The enumerated field list is long but each item is meaningful content an agent might select on. Slightly dense but well-structured.

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

Completeness4/5

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

There is no output schema, so the description usefully compensates by enumerating the returned sections (rank, reputation, reports/rewards, achievements, payout breakdown). Combined with the fully-covered input schema, an agent has enough to decide and call correctly; only error behavior and the effect of the include_* flags on the payload are unaddressed.

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

Parameters3/5

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

Schema description coverage is 100%, so all four parameters (researcher, reports_limit, include_reports, include_achievements) are already documented in the schema, including defaults of 10 and true. The description's example values ('Santry', the full URL) add a little concrete guidance but mostly restate the schema. Baseline 3 is correct.

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

Purpose4/5

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

The description uses a specific verb+resource ('Full public profile of a BI.ZONE researcher') and enumerates exactly what the profile contains: rank, reputation, reports, rewards, achievements, payout breakdown. An agent can immediately tell this is a per-researcher lookup rather than a listing tool. It stops short of naming which sibling to use instead when the agent wants its own profile (get_me) or a leaderboard (top_hackers).

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

Usage Guidelines3/5

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

Usage is only implied: the accepted-input sentence ('username or a profile URL') signals this fetches one known researcher, which implicitly rules out search/listing scenarios. There is no explicit 'use this when X, use get_me when Y' routing against the ten sibling tools, so an agent must infer the boundary itself.

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

list_programsList BI.ZONE bug bounty programsA

List and search bug bounty programs (companies) on BI.ZONE Bug Bounty. Returns slug, name, report counts, payouts, active scope size and max critical reward. Use the returned slug with get_program / get_program_scope / list_reports.

NameRequiredDescriptionDefault
sortNoSort order: reports (total reports, default), resolved, rewards (total paid), avg (avg reward), active (scope size), new (registration date), name.
limitNoPage size, default 20.
offsetNoPagination offset, default 0.
searchNoFilter by program name or slug, case-insensitive substring (e.g. 'kaspersky', 'bank').

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description carries the disclosure burden and does reasonably well: it lists concrete return fields (slug, name, report counts, payouts, scope size, max critical reward) and the downstream hand-off. It omits pagination behavior, auth requirements, and rate limits, but the read-only nature is inherent to 'List' and the main behavioral shape is conveyed.

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

Conciseness5/5

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

Two tight sentences with zero filler. The core purpose and returned fields come first, followed by the actionable next step, so the important information is front-loaded.

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

Completeness4/5

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

No output schema exists, and the description compensates by enumerating the key returned fields, which is exactly what an agent needs. Given the tool is a simple read-only list with fully documented params, the only minor gap is pagination/return-shape detail.

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

Parameters3/5

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

Schema description coverage is 100%, with every parameter (sort enum, limit, offset, search) documented in the schema itself including defaults and examples. The description adds no parameter-level detail beyond that, so the baseline 3 applies.

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?

States a specific verb and resource ('List and search bug bounty programs (companies)') and names the platform. It also enumerates the returned fields and names the sibling tools that consume the resulting slug, so an agent can tell it apart from get_program, program_stats, and search_scope without opening schemas.

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

Usage Guidelines3/5

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

It tells the agent what to do *after* calling ('Use the returned `slug` with get_program / get_program_scope / list_reports'), which is useful downstream routing. However, it never states when to choose this tool over siblings like program_stats or search_scope, nor any exclusions or prerequisites, so usage is only implied.

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

list_reportsList BI.ZONE reportsA

Browse bug bounty reports of other researchers: who reported, on which program, when and the payout. Filter by program, researcher, price range and date. Use it to study what gets paid on a program. Reports of the configured account itself are never returned.

NameRequiredDescriptionDefault
sortNoSort order, default newest.
limitNoPage size, default 25.
sinceNoStart date, ISO format (e.g. 2026-01-01).
untilNoEnd date, ISO format (e.g. 2026-12-31).
hackerNoOnly reports by this researcher username.
offsetNoPagination offset, default 0.
programNoOnly reports for this program (slug, name fragment or URL).
max_priceNoMaximum payout in RUB.
min_priceNoMinimum payout in RUB.

TDQS

A4.2/5.0
Behavior4/5

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

Without annotations, the description carries the burden and does disclose a key behavioral constraint: the configured account's own reports are never returned. It also indicates the returned content at a high level (who reported, program, date, payout), though it does not explicitly state read-only status, auth needs, or rate limits.

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

Conciseness5/5

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

The description is front-loaded with the main purpose, then filters, use case, and the important exclusion. Each sentence adds useful information with no filler.

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

Completeness4/5

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

Given nine fully documented parameters and no output schema, the description is largely complete: it explains scope, filters, intended use, returned content at a high level, and the self-report exclusion. Minor gaps remain around pagination behavior and explicit read-only semantics, though the schema covers limit and offset.

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

Parameters3/5

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

Schema description coverage is 100%, so all nine parameters are already documented in the schema. The description mentions filtering by program, researcher, price range, and date, but adds no syntax or format details beyond 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 states a specific verb and resource: browse bug bounty reports of other researchers. It clarifies the scope by saying reports of the configured account itself are never returned, which distinguishes it from account-oriented siblings like get_me and from single-report get_report.

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?

It gives a clear intended use case: studying what gets paid on a program, and mentions available filters. It does not explicitly name alternatives such as get_report or program_stats, nor does it state when not to use this tool.

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

program_statsProgram statistics from reportsA

Aggregated statistics computed from all visible reports of a program: totals and averages of payouts, reports and money per year, per asset severity, plus the top researchers on that program.

NameRequiredDescriptionDefault
yearsNoHow many recent years to show in the yearly breakdown. Default 6.
programYesProgram slug ('kaspersky'), name fragment, or full bugbounty.bi.zone program URL.

TDQS

A3.5/5.0
Behavior3/5

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

No annotations are supplied, so the description bears the full burden. It conveys read-only aggregation over 'visible' reports and reveals the shape of the computed output, but says nothing about permissions, cost/rate limits, caching, or whether 'visible' depends on the caller's access level.

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?

A single dense sentence with the resource front-loaded and the output contents enumerated after the colon; nothing is wasted. It is long but every clause is informative, so it stops just short of maximal efficiency.

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

Completeness4/5

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

With no output schema, the description usefully sketches the return contents (yearly and severity breakdowns, top researchers), which is the main thing an agent needs. Minor gaps: no mention of what 'visible' means or of response size/pagination, but the core is covered.

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

Parameters3/5

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

Schema description coverage is 100%, with both `program` (slug/fragment/URL accepted forms) and `years` (1-20, default 6) fully documented in the schema. The description adds no further parameter semantics beyond hinting at the yearly breakdown, so the baseline of 3 applies.

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

Purpose4/5

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

The description opens with a specific verb+resource ('Aggregated statistics computed from all visible reports of a program') and then itemizes exactly what is aggregated: totals/averages of payouts, reports, money per year, per asset severity, and top researchers. This clearly separates it from siblings like list_reports or top_hackers, though no sibling is named explicitly.

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

Usage Guidelines3/5

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

Usage is only implied: 'all visible reports of a program' suggests this is the roll-up view over a program's report corpus, in contrast to per-report tools. There is no explicit when-to-use/when-not guidance and no named alternative (e.g. 'use get_program for metadata, this for aggregates').

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

search_scopeSearch assets across all programsA

Search every scope asset on BI.ZONE Bug Bounty by domain, product name or description (e.g. 'kaspersky.com', 'vpn', 'mobile app'). Returns which program owns each asset and whether it is in scope. Useful to find every program that covers a given domain.

NameRequiredDescriptionDefault
limitNoPage size, default 50.
queryYesCase-insensitive substring to look for in asset names, notes, domains and program names.
offsetNoPagination offset, default 0.
programNoRestrict the search to a single program (slug, name fragment or URL).
in_scope_onlyNoOnly return in-scope assets. Default true.

TDQS

A3.5/5.0
Behavior3/5

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

No annotations are present, so the description carries the full burden. It does disclose the return shape at a high level ('which program owns each asset and whether it is in scope'), confirming read-only search semantics. However, it says nothing about pagination limits, filtering defaults (in_scope_only defaults true), or result ordering, all of which matter for a 5-param search.

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?

Two sentences, front-loaded with the action and scope, with no filler. The final sentence partly restates the return-ownership point already made, so it is slightly redundant but not wasteful.

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

Completeness4/5

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

With a fully documented schema and no output schema, the description covers what an agent needs: what is searched, what comes back, and the primary use case. The missing pieces (pagination behavior, result ordering) are secondary for a straightforward search tool.

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

Parameters3/5

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

Schema coverage is 100%, so all five parameters are already documented in the schema, including defaults for limit, offset, and in_scope_only. The description's examples ('kaspersky.com', 'vpn', 'mobile app') add only marginal flavor beyond the schema's substring semantics. Baseline 3 is appropriate.

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

Purpose4/5

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

States a specific verb+resource (search scope assets) and scopes it explicitly to all programs, which separates it from the per-program get_program_scope sibling. It also names the match fields (domain, product name, description). It stops short of explicitly naming get_program_scope as the alternative.

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

Usage Guidelines3/5

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

'Useful to find every program that covers a given domain' gives one concrete use case, so usage is implied rather than spelled out. There is no when-not guidance and no explicit routing to get_program_scope for single-program lookups.

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

top_hackersResearcher leaderboardA

BI.ZONE researcher leaderboard. Without program it returns the global ranking (rating, resolved reports, total rewards), optionally filtered by username. Rating is a running sum of accuracy points; signal ranges −10…+7 and impact 0…50. With program it computes the ranking for that program from visible reports (reports count, total and best payout); the authenticated account itself is excluded. Use get_researcher for a full profile.

NameRequiredDescriptionDefault
sortNoGlobal ranking sort key, default reputation.
limitNoPage size, default 25.
offsetNoPagination offset, default 0.
searchNoFilter by researcher username substring (case-insensitive).
programNoCompute the leaderboard for one program instead (slug, name fragment or URL).

TDQS

A4.5/5.0
Behavior4/5

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

No annotations, so the description carries the burden and does well: it discloses the rating formula (running sum of accuracy points, signal −10…+7, impact 0…50), that program-mode excludes the authenticated account, and what fields each mode returns. Auth requirements and pagination semantics beyond schema are not restated, which keeps it short of a 5.

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?

Mode split is front-loaded and sentences are dense with information rather than filler. The rating-formula detail is slightly tangential to invocation but legitimately explains sortable fields.

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

Completeness4/5

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

With no output schema, the description supplies the returned fields for both modes, which is what an agent needs to interpret results. Defaults and paging live in the schema, so the remaining gap is minor.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds real meaning: `program` is not just a filter but switches the entire computation and output shape (reports count, total and best payout), and `search` is implied as username filtering. This is genuine semantic value beyond the schema text.

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?

States a specific verb+resource ('researcher leaderboard') and clearly splits two modes: global ranking without `program`, per-program ranking with it, naming the exact metrics returned in each mode. An agent can distinguish it from `get_researcher` and `program_stats` without opening a schema.

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

Usage Guidelines5/5

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

Explicitly names the condition that switches behavior ('Without `program`… With `program`…') and routes to the alternative tool ('Use `get_researcher` for a full profile'). The when-to-use decision is fully spelled out.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 10 tool updatesv1.2.0
    • First observedget_me
    • First observedget_program
    • First observedget_program_scope
    • First observedget_report
    • First observedget_researcher
    • First observedlist_programs
    • First observedlist_reports
    • First observedprogram_stats
    • First observedsearch_scope
    • First observedtop_hackers

TDQS

A3.9/5.0

Scored across 10 tools

Disambiguation4/5

Most tools have clearly distinct purposes: program lookup, scope lookup, cross-program asset search, report browsing, researcher profiles, and statistics are separated. There is some overlap because get_program includes scope and statistics summaries, while get_program_scope and program_stats expose those areas in dedicated detail.

Naming Consistency4/5

Most tool names follow a predictable verb_noun pattern such as list_programs, get_program, get_report, and search_scope. The main deviations are noun-phrase tools like top_hackers and program_stats, plus the colloquial get_me, but the set remains readable.

Tool Count5/5

Ten tools is well-scoped for a read-only bug bounty intelligence server. Each tool maps to a meaningful resource area such as programs, scopes, reports, researchers, or statistics.

Completeness4/5

The surface covers program discovery, scope checking, report inspection, researcher profiles, leaderboards, and aggregate statistics, with no obvious dead ends for research workflows. Minor gaps remain around write/comment/report-submission operations and richer report interactions, likely intentional for a read-only server.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    A
    quality
    D
    maintenance
    Provides read-only access to HackerOne reports, program scopes, and bounty earnings through the HackerOne API. It enables users to analyze hunting patterns, check asset eligibility, and retrieve report details or triage conversations via natural language.
    9
    82 npm
    41
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    Connects AI assistants to HackerOne bug bounty history, program scopes, and public disclosed reports for searching, analyzing, and generating attack briefings.
    MIT
  • F
    license
    A
    quality
    D
    maintenance
    Enables AI assistants to interact with HackerOne for managing reports, checking program scope, analyzing earnings, and more through natural language commands.
    28
    82 npm
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables interacting with HackerOne through the official REST API for managing reports, earnings, and programs, plus browser automation to read disclosed reports, search hacktivity writeups, and view program policies even behind Cloudflare.
    MIT