Bug Bounty Programs について
Bug Bounty Programs は、Bugcrowd、YesWeHack、HackerOne の公開プログラム一覧を検索する MCP サーバーです。セキュリティ研究者向けに、対象範囲や公開されている報奨情報、HackerOne の開始日を照会します。脆弱性情報や研究者プロフィールは扱いません。
主な機能
- 013 プラットフォーム横断検索
- 02報奨額・日付・ワイルドカード範囲で絞り込み
- 03プログラムの対象範囲と報奨情報を取得
- 04新規開始の HackerOne プログラムを検索
活用シーン
- 01プラットフォームや報奨額から公開プログラムを発見
- 02参加候補の対象資産を確認
- 03公開済みの報奨段階を調査
MCP 対応
公開バグ報奨プログラムの検索と詳細取得を行うツールを MCP 経由で提供します。stdio によるローカル実行、または Pipeworx ゲートウェイ経由の接続に対応します。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://gateway.pipeworx.io/bug-bounty-programs/mcpclaude mcp add --transport http pipeworx-io-bug-bounty-programs https://gateway.pipeworx.io/bug-bounty-programs/mcp{"mcpServers":{"pipeworx-io-bug-bounty-programs":{"type":"http","url":"https://gateway.pipeworx.io/bug-bounty-programs/mcp"}}}Cursor で開く{"servers":{"pipeworx-io-bug-bounty-programs":{"type":"http","url":"https://gateway.pipeworx.io/bug-bounty-programs/mcp"}}}VS Code で開く{"mcpServers":{"pipeworx-io-bug-bounty-programs":{"type":"http","url":"https://gateway.pipeworx.io/bug-bounty-programs/mcp"}}}{"mcpServers":{"pipeworx-io-bug-bounty-programs":{"serverUrl":"https://gateway.pipeworx.io/bug-bounty-programs/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
@pipeworx/bug-bounty-programs
Bugcrowd、YesWeHack、HackerOne が公開するディレクトリから取得した、公開バグバウンティプログラムのディレクトリデータです。プログラム名、報奨金の範囲、ステータス、スコープ内のアセットを含みます。脆弱性の内容、リサーチャーのプロフィールやハンドル名は含みません。
Pipeworx の一部です。AI エージェントを 1875 以上の稼働中のデータソースに接続する MCP ゲートウェイです。これは独立した非公式のインテグレーションであり、上流プロバイダーとは提携関係になく、推奨も公開もされていません。
ツール
bounty_programs_search(platform?, query?, min_bounty?, launched_since?, has_wildcard?, limit?)— 1 つまたは 3 つすべてのプラットフォームを対象に、名前、最低報奨金(USD)、開始日(HackerOne のみ。詳細は以下を参照)、およびスコープに*.example.comのようなワイルドカードアセットが含まれるかどうかで検索します(yeswehack/hackerone ではリアルタイムに確認します。bugcrowd ではスコープにログインが必要であり、機能が壊れているわけではないため、エラーの代わりに説明用のnoteを含むcount: 0を返します)。bounty_program(platform, handle)— プラットフォームとハンドル名を指定して、プログラムを 1 件取得します。YesWeHack は深刻度 x アセット価値の完全な報奨金表と実際のスコープを返します。HackerOne は実際のスコープを返しますが、公開スキーマのどこにも公開されていないため、数値の報奨金表は返しません。Bugcrowd はどちらも返さず、その理由を示します。bounty_new_programs(days)— 実際の開始日を基準に、過去 N 日間に開始されたプログラムを取得します。HackerOne のみ対応しています。Bugcrowd/YesWeHack がこの機能に正確に対応できない理由については、以下の「含まれないもの」を参照してください。
認証
認証キーは不要です。以下のすべてのエンドポイントは、アカウント、トークン、API キーなしで応答します。
データソース
https://bugcrowd.com/engagements.json— ページ分割された(?page=N、1ページあたり24件、paginationMeta.totalCount)公開プログラムの一覧です。プログラム名、URL、報奨金の概要、業界、アクセス状況が含まれます。スコープ/対象データはありません — Bugcrowd のスコープ「公開」アクションは、研究者向けサインイン領域である/h/engagements/{handle}/reveal.jsonにリダイレクトします。これは実際のログイン制限であり、バグではありません。そのため、bounty_program/has_wildcardは、空の結果を黙って返すのではなく、その旨を示します。https://api.yeswehack.com/programs(一覧、?page=N)とhttps://api.yeswehack.com/programs/{slug}(詳細) — 3つの中で最も情報が豊富です。詳細では、scopes[](実際のアセット識別子。一部はワイルドカード付き)、out_of_scope、reward_grid_default/low/medium/high/critical/very_lowが返されます。これは実際の重大度とアセット価値ティアごとの報奨金表です(プログラムが実際に使用するティアのみ、null 以外の値を持ち、それ以外はゼロではなくnullです)。このエンドポイントにはローンチ日フィールドはありません。last_update_at(最終変更日時)のみであり、ローンチを意味すると誤解させないよう、ここではlaunched_atとして提示することはありません。https://hackerone.com/graphql(POST、未認証) —query { teams }/query { team(handle) }。イントロスペクションは無効になっています。そのため、以下の各フィールド名は、推測した名前を試し、GraphQL が返す「Xのつもりですか?」というエラーを読み取って見つけたものであり、公開されたスキーマ文書から得たものではありません。teams(first/last, after/before):handle name offers_bounties submission_state launched_at—launched_atは実在することが確認済みのローンチ日です(hackerone.com/security→2013-11-06と照合済み。これはプラットフォーム最初のプログラムです)。last: Nは作成日時が新しいチームを N 件返します。これをbounty_new_programsが遡ってたどります。機能するorder_byの値は見つかりませんでした(order_by: {field: ..., direction: DESC}は構文上受け付けられますが、fieldに試した名前はすべて拒否されました)。そのため、並べ替えは明示的な日付順ではなく、連続した内部 ID に依存します。team(handle).structured_scopes_search(first):ユニオン(DocumentUnion)です —... on StructuredScopeDocument { identifier asset_type eligible_for_bounty eligible_for_submission instruction }を使用します。identifierは実際のスコープアセット(ドメイン/URL)で、ワイルドカードの場合もあります(*.rubyonrails.org、*.cloudflarepartners.comは稼働中のデータで確認済みです)。確認できた範囲では、数値の報奨金額はありません —team.bounty_tableは型として存在しますが、考えられるフィールド名(rewards、severities、low_bounty/high_bounty、min/max、field_namesなど)はすべて「存在しません」と返されました。HackerOne が実際のフィールド名を文書化した場合は、bountyProgram()のhackeroneブランチに追加してください。
ここにないもの:Immunefi
Immunefi は、このパックには意図的に含まれていません。/explore とすべての
/bug-bounty/{slug}/ ページは公開されており、ログインは不要ですが、実際のスコープ一覧と重要度別の報酬表は、安定して文書化された JSON エンドポイントとしてアクセスできない内部 API からクライアント側で読み込まれます。2026-10-08 に確認し、対象外と判断しました。
- サーバーでレンダリングされた HTML:ページ全体(
/bug-bounty/ens/は 200、約 210KB)には報酬表のフィールドが一切なく、0x...形式のコントラクトアドレスが 1 つだけ含まれています。スコープ一覧はハイドレーション後にクライアント側でレンダリングされます。 - Next.js RSC のフライトペイロード(
RSC: 1ヘッダー。Next の旧_next/data/*.jsonに相当する App Router 版):同じ結果で、約 30KB のレスポンスに報酬やスコープに関するキーはありません。 robots.txt/sitemap-dynamic.xml:公開されており認証も不要です。また、プログラムのスラッグ(/bug-bounty/{slug}/が約 166 件)の発見には役立ちますが、サイトマップに含まれるのはlastmod(最終コンテンツ変更日)だけで、公開日は含まれません。- プログラムごとに真に公開されている静的な情報は、Immunefi がページの SEO メタディスクリプションタグに埋め込んでいる「最大 $X の報酬」という行です。これは実際の情報ですが、最上位の金額 1 つだけでは、他の 3 つのプラットフォームの構造化されたスコープおよび報酬表と並べて、プログラムレコードとして提供するには情報が少なすぎます。
Immunefi がこの情報の安定した JSON エンドポイントを公開するか、こちらで見つけた場合は、yeswehack と同じ形式に従って、4 つ目の platform 値として追加します。
ここにないもの:Intigriti
確認していません。このパックの要件として指定されたとおり、Intigriti の公開ディレクトリの閲覧にはリサーチャーアカウント/トークンが必要です。ログインの背後からスクレイピングするのではなく、対象外としました。
クイックスタート
MCP クライアント(Claude Desktop、Cursor、Windsurf など)に追加します。
{
"mcpServers": {
"bug-bounty-programs": {
"url": "https://gateway.pipeworx.io/bug-bounty-programs/mcp"
}
}
}
このエンドポイントが実際に提供するもの
https://gateway.pipeworx.io/bug-bounty-programs/mcp の tools/list は、上の表にあるツールに加えて、共有 Pipeworx メタツールである ask_pipeworx、
discover_tools、search_within、remember/recall など、ゲートウェイ全体で使えるツール一式を返します。そのため、表示されるツール数はこの表より多くなります。現在、単一パックのエンドポイントには、パック固有のツールとともに共有ツールが約 30 個一覧表示されます。接続の initialize レスポンスには、その正確な範囲が記載されており、特定の日における正式な回答となります。
これは意図的な設計であり、偶然の多重化ではありません。メタツールを使うと、このパックでは扱えない質問にも、カタログ全体にルーティングする ask_pipeworx を通じて回答できます。そのため、MCP サーバーをもう 1 つ追加する必要はありません。現時点では、メタツールなしでパックのエンドポイントを接続する方法はありません。追加スキーマのコンテキストコストがルーティングの利点を上回る場合は、複数のパックエンドポイントではなく、フルゲートウェイに一度だけ接続してください。
または、Pipeworx のフルゲートウェイに接続すると、このパックだけでなく、すべてのパックのツールが直接一覧表示されます。
{
"mcpServers": {
"pipeworx": {
"url": "https://gateway.pipeworx.io/mcp"
}
}
}
どちらの URL も同じゲートウェイと同じ 1875 以上のデータソースに接続します。違いは、どのパックのツールが直接一覧表示されるかだけです。どちらからでも、ask_pipeworx を使えばすべてのツールにアクセスできます。
MCP クライアントを使わない場合:HTTP 経由で呼び出す
curl -X POST https://gateway.pipeworx.io/v1/tools/bounty_programs_search \
-H 'Content-Type: application/json' \
-d '{"platform":"yeswehack","min_bounty":1000,"limit":10}'
最初の呼び出しにアカウントは不要です。ツールの詳細を確認するには、GET https://gateway.pipeworx.io/v1/tools/bounty_programs_search を使います。ツールを見つけるには、{"query":"..."} を指定して POST https://gateway.pipeworx.io/v1/tools/search_packs を呼び出します。
スタンドアロン(ゲートウェイアカウント不要)
このパッケージは、ローカルの stdio MCP サーバーとしても実行できます。Pipeworx アカウントも、ゲートウェイを経由する往復通信も不要です。
{
"mcpServers": {
"bug-bounty-programs": {
"command": "npx",
"args": ["-y", "@pipeworx/mcp-bug-bounty-programs"]
}
}
}
または、直接実行して起動を確認します。
npx -y @pipeworx/mcp-bug-bounty-programs
stdin/stdout 経由で MCP を使用し、このパックのツールのみについて initialize/tools/list/tools/call に応答します。上記のゲートウェイ接続で追加される共有メタツールはありません。ソースもツールも同じですが、ask_pipeworx によるルーティングはありません。
ask_pipeworx を使う
ツールを直接呼び出す代わりに、平易な英語で質問できます。この方法は、上記のパックエンドポイントでもフルゲートウェイでも使えます。
ask_pipeworx({ question: "your question about Bug Bounty Programs data" })
ゲートウェイが適切なツールを選び、引数を自動的に入力します。
More
License
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。