BeVigil OSINT について
BeVigil OSINT は、インデックス済み Android アプリから抽出されたインフラ情報を調べる MCP サーバーです。セキュリティ研究者向けに、ホスト、サブドメイン、URL、ストレージバケット、ファジング用ワードリストを BeVigil API 経由で検索します。
主な機能
- 01ホストとサブドメインの検索
- 02アプリ内の URL と S3 バケットの取得
- 03ホストを利用するアプリの逆引き
- 04エンドポイントとパラメーターのワードリスト生成
- 05検索結果をまとめたアプリレポート
- 06大量の結果のページネーション
活用シーン
- 01モバイルアプリが参照するインフラの把握
- 02ドメインのステージング用サブドメインの調査
- 03特定ホストを利用するアプリの特定
- 04ファジング用 API パスの準備
MCP 対応
BeVigil OSINT API を基盤に、7 種類の読み取り専用 OSINT ツールを MCP クライアントに提供します。対象はインデックス済み Android アプリで、一覧取得はページネーションに対応します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
7掲載時のツール一覧 · 4 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| limit | integer | いいえ | 返す結果の最大数(デフォルトは 100、最大 500)。 |
| offset | integer | いいえ | ページを返す前にスキップする結果数(デフォルトは 0)。最初のページ以降の結果を取得するには、このパラメーターを使用します。 |
| package_id | string | はい | Android パッケージ ID(例:"com.whatsapp"、"com.instagram.android")。Android アプリの一意の識別子です。 |
詳細
BeVigil MCP Server
AI アシスタントから企業のモバイル攻撃対象領域をマッピングできます。
BeVigil は数百万の Android アプリをスキャンし、その内部に隠されたインフラストラクチャを抽出してきました。バックエンドホスト、ステージング用サブドメイン、S3 バケット、API パス、DNS や検索エンジンには決して現れないクエリパラメーターなどです。このサーバーはそのデータを 7 つの MCP ツールで利用できるようにするため、curl の呼び出しをつなぎ合わせる代わりに、平易な言葉で質問できます。
バグバウンティハンター、ペンテスター、レッドチーム担当者、アプリケーションセキュリティエンジニアが偵察を行うために構築されています。
Claude Code、Claude Desktop、Codex、Cursor、VS Code でテスト済みです。
クイックスタート(2 分)
1. 無料の API キーを取得する
bevigil.com/osint-api で登録します。無料アカウントでは 25 クレジットを取得できます。仕事用メールアドレスで登録すると 200 クレジットになります。検索 1 回につき 1 クレジットを消費します。
2. サーバーを追加する
クローンもビルドも不要です。npx が取得して実行します。
Claude Code
claude mcp add bevigil -e BEVIGIL_API_KEY=your_key_here -- npx -y bevigil-mcp-server
claude mcp list を実行して登録されたことを確認します。
Claude Desktop
claude_desktop_config.json を編集します(Settings → Developer → Edit Config)。
{
"mcpServers": {
"bevigil": {
"command": "npx",
"args": ["-y", "bevigil-mcp-server"],
"env": { "BEVIGIL_API_KEY": "your_key_here" }
}
}
}
Claude Desktop を再起動します。
Codex
codex mcp add bevigil --env BEVIGIL_API_KEY=your_key_here -- npx -y bevigil-mcp-server
codex mcp list を実行して登録されたことを確認します。
Cursor
~/.cursor/mcp.json(グローバル)または .cursor/mcp.json(プロジェクト)に追加します。
{
"mcpServers": {
"bevigil": {
"command": "npx",
"args": ["-y", "bevigil-mcp-server"],
"env": { "BEVIGIL_API_KEY": "your_key_here" }
}
}
}
VS Code (Copilot)
VS Code の MCP 設定に追加します。
{
"mcp": {
"servers": {
"bevigil": {
"command": "npx",
"args": ["-y", "bevigil-mcp-server"],
"env": { "BEVIGIL_API_KEY": "your_key_here" }
}
}
}
}
3. 最初の質問をする
BeVigil で com.whatsapp を調査し、公開されているインフラストラクチャを要約してください。
次のような結果が得られます。アプリのコードから実際のホスト名が抽出されています。
# Investigation Report: com.whatsapp
Source: BeVigil OSINT API
## Hosts / Domains (155 found)
• osaka.nyc3.cdn.digitaloceanspaces.com
• s3.getstickerpack.com
• logger.instagram.com
• dev503.prn2.facebook.com
...
これで完了です。チャット画面から OSINT を実行できます。
質問できること
企業のモバイルフットプリントを偵察する
api.acme.comと通信する Android アプリはどれですか? その後、それぞれからホストを抽出してください。
ステージング環境や内部エンドポイントを見つける
BeVigil から
acme.comのサブドメインを取得し、dev、staging、internal のように見えるものをすべて示してください。
公開されたストレージを探す
com.acme.mobileが参照している S3 バケットは何ですか?
ターゲット固有のファジング用ワードリストを作成する
com.acme.mobileの BeVigil ワードリストを取得し、API パスをpaths.txtに保存してください。
単一のドメインを起点に調査する
acme.comを参照するアプリを見つけ、特に興味深い 3 つを調査して、共有しているバックエンドを教えてください。
最後の例はエージェントの真価が発揮される場面です。手作業なら 12 回の API 呼び出しと相関分析が必要になります。
ツール
| ツール | 入力 | 戻り値 |
|---|---|---|
bevigil_get_hosts | パッケージ ID | アプリのコード内で見つかったホスト名 |
bevigil_get_subdomains | ドメイン | インデックス済みアプリ全体で確認されたサブドメイン |
bevigil_get_urls | ドメイン | アプリが参照する完全な URL |
bevigil_get_s3_buckets | パッケージ ID | アプリ内で参照されている S3 バケット |
bevigil_get_app_packages | ホスト名 | 逆引き検索。そのホストを使用するアプリ |
bevigil_get_wordlist | パッケージ ID | ファジング用のパス、エンドポイント、パラメーター |
bevigil_investigate_app | パッケージ ID | ホスト + S3 + パラメーター + ワードリストをまとめたレポート |
ページネーション
リストを返すすべてのツールでは、limit と offset を任意で指定できます(デフォルトは100、最大500)。結果が途中で切り詰められた場合は、レスポンスにその旨と、続きの取得に使う正確なオフセットが示されます。
Hosts for com.whatsapp (155 found)
Source: BeVigil OSINT (package: com.whatsapp)
Showing 1-100 of 155.
For the next page, call this tool again with offset=100.
クレジット
レスポンスはキャッシュされません。追加ページを含むすべてのツール呼び出しで、API リクエストを1回行い、クレジットを1消費します。bevigil_investigate_app は1回の実行で4回呼び出すため、クレジットを4消費します。クレジットがなくなると、何も表示されないままになるのではなく、明確なメッセージが表示されます。
まだインデックスに登録されていないアプリ
BeVigil が回答できるのは、すでにスキャン済みのアプリのみです。パッケージがインデックスにない場合、ツールは対処方法を案内します。
"com.acme.mobile" is not in BeVigil's index, so there is no data to return.
To add it, upload the APK at https://bevigil.com/scanApp. BeVigil scans the app
and indexes the assets it finds, after which this tool will return them.
これは、「アプリはインデックスに登録されているが、S3 バケットがない」場合とは意図的に区別されています。対処できるのは、最初のケースのみです。
設定リファレンス
API キー
推奨:クイックスタートに示すように、MCP クライアントの設定にキーを設定してください。キーは環境変数としてサーバーに渡されます。シェルで使用する場合:
export BEVIGIL_API_KEY=your_api_key_here
パッケージのルートにある .env ファイルも使用できます。MCP クライアントは任意の場所からサーバーを起動するため、作業ディレクトリではなく、インストールされたパッケージを基準にファイルが解決される点にご注意ください。実際の環境変数は常に .env より優先されます。また、.env は gitignore 対象です。決してコミットしないでください。
ソースから実行する
ローカルで開発する場合、または特定のコミットに固定する場合:
git clone https://github.com/santhosh-005/bevigil-mcp-server.git
cd bevigil-mcp-server
npm install
npm run build
次に、npx の代わりにビルド済みのエントリーポイントをクライアントに指定します。
claude mcp add bevigil -e BEVIGIL_API_KEY=your_key_here -- node /absolute/path/to/bevigil-mcp-server/build/index.js
要件: Node.js 20.12 以降、BeVigil API キー、MCP 互換クライアント。
仕組み
MCP Client → BeVigil MCP Server → osint.bevigil.com
· Zod input validation
· pagination + truncation
· error normalisation
このサーバーは、薄く堅牢なレイヤーです。入力を検証し、レスポンスを妥当なコンテキスト予算内に収め、API が「何もありません」を表すさまざまな応答を、一貫性があり対処可能なメッセージに変換します。
知っておくとよい設計上の判断:
- タスクに沿った7つのツール。エンドポイントをそのままラップするのではなく、各ツールが調査担当者の実際のニーズに対応します。
- ページネーション対応の結果と次のオフセットのヒントにより、コンテキストウィンドウを埋め尽くすことなく、大量の結果にもアクセスできます。
- 調査ワークフローで並行検索を実行します。
- 部分的な失敗への対応により、検索に失敗してもレポート全体が損なわれることはありません。
- 検出結果は観測データとしてラベル付けされ、脆弱性であると断定されることはありません。バケット名は手掛かりであり、検出結果ではありません。
制限事項
- モバイルアプリのデータのみ — Android アプリのコードに含まれる情報を反映したものであり、DNS 列挙やインターネット全体のスキャンではありません。通常のツールに代わるものではなく、併用してください。
- インデックスに登録されたアプリのみが対象 — BeVigil がスキャンしたアプリのみです。インデックスにないアプリは、bevigil.com/scanApp から送信できます。
- アプリ検索機能なし — 事前にパッケージ ID またはドメインが必要です。名前からアプリを検索するエンドポイントはありません。
- アプリのメタデータは限定的 — ホスト名の逆引きではアプリ名とバージョンが返されます。それ以外の場合は、セキュリティ関連のアセットのみが返されます。
- データの鮮度 — 結果は各アプリの BeVigil による最新のスキャンを反映しているため、最新とは限りません。
- クレジット制 — 上記のクレジットを参照してください。
セキュリティ
- API キーは環境変数(またはパッケージルートの
.env)から読み込まれます。ハードコードされることも、ログに記録されることもありません - エラーメッセージから認証情報が漏れることはなく、そのことを確認するテストもあります
- サーバーが通信するのは既知の BeVigil エンドポイントのみです。任意の URL を取得することはありません
- パスパラメーターは URL エンコードされるため、不正に細工されたパッケージ ID で意図したエンドポイントから抜け出すことはできません
- すべてのツール入力は Zod スキーマで検証されます
- リクエストタイムアウトにより、接続がハングするのを防ぎます
- コンテキストのオーバーフローを防ぐため、ページサイズには上限(最大 500)があります
- プリコミットフックと CI ジョブの両方で、認証情報がリポジトリに混入していないことを確認します
- すべてのツールには読み取り専用かつ非破壊的であることが注記されています。このサーバーが公開する機能でデータを変更することはできません
- テレメトリー、分析、クエリの保存はありません。詳しくは PRIVACY.md をご覧ください
責任を持ってご利用ください。 このツールは公開 OSINT データベースにクエリを送信します。結果の利用はご自身の責任です。テストが許可されているシステムのみをテストしてください。
開発
npm install
npm test # typecheck + full suite
npm run lint # typecheck only
npm run build
テストには Node の組み込みランナーとモック API レスポンスを使用するため、実際の API 呼び出しやクレジットの消費はありません。API クライアント(認証ヘッダー、すべての HTTP エラー経路、タイムアウト、不正なレスポンスとエンベロープ形式のレスポンス、エラーからキーが漏れないことの確認)と、調査ワークフローの部分的な失敗時の動作を含む、7 つすべてのツールハンドラーを網羅するテストがあります。また、登録コントラクトテストでは、すべてのツールに入力スキーマが宣言され、4 つすべての MCP 動作ヒントが設定されていることを確認します。
認証情報のコミットを防ぐプリコミットフックを有効にするには:
git config core.hooksPath .githooks
このフックは、.env ファイルをステージングするコミットや、.env.example にプレースホルダー以外の値を設定するコミットを拒否します。また、インストールされている場合は、ステージングされた変更に対して gitleaks を実行します。
プロジェクト構成
├── src/
│ ├── index.ts # MCP server entry point
│ ├── bevigil-client.ts # API client (auth, errors, timeouts, envelopes)
│ ├── types.ts # Shared types, pagination, output helpers
│ └── tools/ # One file per MCP tool
├── tests/
│ ├── bevigil-client.test.ts
│ ├── tools.test.ts
│ └── fixtures/responses.ts
├── .github/workflows/ci.yml # Typecheck, build, test, secret scan
├── .githooks/pre-commit # Blocks committing credentials
└── server.json # MCP Registry metadata
コントリビュート
Issue や PR を歓迎します。バグ報告、新しい BeVigil エンドポイント、上記に記載されていない MCP ホスト向けのクライアント設定など、どれも役立ちます。
ライセンス
MIT — LICENSE をご覧ください。プライバシーポリシー:PRIVACY.md。
CloudSEK とは提携しておらず、同社からの推奨も受けていません。BeVigil は CloudSEK の製品です。これは同社の公開 OSINT API 用の独立したオープンソースクライアントです。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。