mcpField
B
Bitdefender GravityZone

Bitdefender GravityZone

ローカル
github.comセキュリティ01 週間前に更新

Bitdefender GravityZone について

Bitdefender GravityZone は、GravityZone を利用するチーム向けの読み取り専用 MCP サーバーです。限定した API 呼び出しで、端末インベントリ、ポリシー、ブロックリスト、レポートを確認できます。

主な機能

  1. 01端末・ネットワークインベントリ
  2. 02端末詳細とスキャンタスク状態
  3. 03セキュリティポリシーの参照
  4. 04マルウェアハッシュのブロックリスト
  5. 05定期・即時レポートの参照

活用シーン

  1. 01管理対象端末の詳細と状態の確認
  2. 02セキュリティポリシーとブロック済みハッシュの確認
  3. 03レポートの準備状況とダウンロードリンクの確認

MCP 対応

GravityZone の Network、Policies、Incidents、Reports API向けに、読み取り専用ツールを10個 MCP クライアントへ公開します。アカウントの API キーと Control Center Access URLを使用します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"wyre-ai-bitdefender": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"BITDEFENDER_API_KEY",
"-e",
"BITDEFENDER_ACCESS_URL",
"-e",
"MCP_TRANSPORT",
"-e",
"AUTH_MODE",
"-e",
"LOG_LEVEL",
"ghcr.io/wyre-ai/bitdefender-mcp:v1.0.1"
],
"env": {
"BITDEFENDER_API_KEY": "<BITDEFENDER_API_KEY>",
"BITDEFENDER_ACCESS_URL": "<BITDEFENDER_ACCESS_URL>",
"MCP_TRANSPORT": "<MCP_TRANSPORT>",
"AUTH_MODE": "<AUTH_MODE>",
"LOG_LEVEL": "<LOG_LEVEL>"
}
}
}
}
起動コマンドdocker run -i --rm -e BITDEFENDER_API_KEY -e BITDEFENDER_ACCESS_URL -e MCP_TRANSPORT -e AUTH_MODE -e LOG_LEVEL ghcr.io/wyre-ai/bitdefender-mcp:v1.0.1
設定が必要な環境変数
BITDEFENDER_API_KEYシークレットBitdefender GravityZone API key, generated in Control Center -> My Account -> API keys, with the Network/Policies/Reports/Incidents APIs selected.
BITDEFENDER_ACCESS_URLThe Control Center Access URL (My Account -> Control Center API), e.g. https://cloud.gravityzone.bitdefender.com.
MCP_TRANSPORTTransport mode for the server. Set to 'stdio' for local CLI use; the image defaults to 'http' for gateway hosting.
AUTH_MODEシークレットCredential source: 'env' reads vars locally, 'gateway' expects header injection from the WYRE MCP Gateway.
LOG_LEVELLog verbosity: debug, info, warn, error

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
ocighcr.io/wyre-ai/bitdefender-mcp:v1.0.1

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Bitdefender GravityZone MCP サーバー

AI アシスタントと WYRE Conduit ゲートウェイ向けの、Bitdefender GravityZone Control Center API 用 MCP サーバーです。エンドポイント/ネットワークのインベントリ、セキュリティポリシー、アカウント全体のマルウェアハッシュのブロックリスト、スケジュールレポート/即時レポートに対応しています。

このカタログでの新しい呼び出し形式: GravityZone の API は REST ではなく JSON-RPC 2.0 です。Conduit の他のすべてのサイドカー(Cork、CyberQP、Slide、UniFi、Cisco Duo)は、従来型の REST API を呼び出します。以下の認証とJSON-RPC 形式をご覧ください。

認証

GravityZone は HTTP Basic Authentication(RFC 2617)で認証します。API キーをユーザー名として、パスワードを空にして送信します(Authorization: Basic base64(apiKey + ":"))。このカタログでは新しい形式です。ここにある他の静的キーコネクター(Cork、CyberQP、Slide、UniFi)は、カスタムの X-Vendor-Api-Key ヘッダーを送信し、サイドカーがそれを Bearer トークンに変換します。一方、GravityZone には Bearer トークンの仕組み自体がありません。

API キーは Control Center の My Account -> API keys で生成します。各キーには、生成時に API 領域(Network、Policies、Reports、Incidents、Companies、Licensing、Accounts、Packages、Integrations、Push、Quarantine)のチェックリストを指定します。このコネクターのキーでは、Network、Policies、Reports、Incidents の領域を選択する必要があります。他の 7 領域は呼び出さないため、有効にする必要はありません。

このコネクターでは、アカウントの Control Center Access URL も必要です(同じ My Account ページの Control Center API に表示されています)。GravityZone Cloud、EU リージョン、セルフホスト型/オンプレミスの各 Control Center では API ホストが異なります。そのため、このカタログの多くのベンダーとは異なり、ハードコードできる固定のベース URL はありません。

ゲートウェイモードでは、リクエストごとに X-Bitdefender-Api-Key ヘッダーと X-Bitdefender-Access-Url ヘッダーで渡します。ローカル/stdio モードでは、BITDEFENDER_API_KEY と BITDEFENDER_ACCESS_URL から一度だけ読み込みます。

JSON-RPC 形式

GravityZone は、製品領域ごとに個別の JSON-RPC 2.0 エンドポイントを公開しており、各エンドポイントは <accessUrl>/v1.0/jsonrpc/<area> にあります(例:/v1.0/jsonrpc/network、/v1.0/jsonrpc/policies)。領域に対するすべての呼び出しは、内容にかかわらず、同じ URL に同一のエンベロープを付けた HTTP POST です。

{ "id": "<uuid>", "jsonrpc": "2.0", "method": "getEndpointsList", "params": { "parentId": "..." } }

操作はすべて本文内(method + params)で指定し、URL や HTTP メソッドでは指定しません。このカタログの他の REST サイドカーとは異なり、読み取り専用の境界を判断するための GET/POST/PATCH/DELETE の区別はありません。そのため、このコネクターでは HTTP メソッドの制限ではなく、ドキュメントに記載された getXxx/listXxx メソッド名のみを呼び出すことで、読み取り専用の範囲を適用します(以下の範囲と client.ts の jsonRpcCall() を参照)。

呼び出しに成功すると、{ "id", "jsonrpc", "result": ... } が返されます。失敗には 2 つの形式があり、このコネクターの client.ts はどちらも区別します。

  • HTTP 層の失敗 - 401(キーが不正または未指定)、403(キーでこの API 領域が有効になっていない。上記を参照)、405(POST 以外)、429(レート制限)。
  • JSON-RPC 層の失敗 - 本文に error メンバーが含まれる HTTP 200({code, message, data.details}。例:-32602 Invalid params)。

レート制限:API キーあたり毎秒 10 リクエスト。これを超えると、GravityZone は 429 を返します。

設定

環境変数説明
BITDEFENDER_API_KEYControl Center で生成した API キーです。Network/Policies/Reports/Incidents の各エリアが選択されている必要があります。
BITDEFENDER_ACCESS_URLアカウントの Control Center Access URL です(例:https://cloud.gravityzone.bitdefender.com)。
MCP_TRANSPORTstdio(デフォルト)または http です。
AUTH_MODEenv(デフォルト。上記の 2 つの変数を読み込みます)または gateway(Conduit ゲートウェイによって挿入された X-Bitdefender-Api-Key/X-Bitdefender-Access-Url ヘッダーを通じて、リクエストごとに認証情報を受け取ります)。
CONDUIT_S2S_SECRET設定すると、HTTP トランスポートではすべての /mcp リクエストに有効な X-Gateway-S2S ヘッダー(Conduit サイドカー認証)が必要になります。
LOG_LEVELdebug | info(デフォルト)| warn | error です。
リクエスト制限
  • HTTP リクエスト本文の上限は 256 KiB(262144 バイト)です。X-Gateway-S2S チェックに合格した後、Content-Length が上限を超えている場合は、JSON-RPC エラーとともに 413 が返されます。Content-Length がない本文には、MCP SDK トランスポートによって上限が適用されます。未認証のリクエストには、最初に 401 が返されます。
  • tools/call の引数は 10,000 要素(すべての配列項目と、任意の深さにあるオブジェクトのキーの合計)までに制限されています。上限を超える入力は isError ツール結果を返し、ディスパッチされません。

これらの制限は、CVE-2026-111768/GHSA-46jr-4wx8-v453(検証中のメモリ枯渇)および GHSA-f897-62hf-6gxq(リクエスト本文/バッチの上限がない問題)に対処します。

ツール

ネットワーク - エンドポイント/ネットワークのインベントリー
  • bitdefender_list_endpoints - 管理対象/管理対象外のエンドポイント(名前、FQDN、IP、MAC アドレス、グループ、エージェントのフラグ)を一覧表示します。任意で範囲を指定して絞り込めます。
  • bitdefender_get_endpoint - 1 つの管理対象エンドポイントの詳細(エージェントのバージョン、ライセンスの状態、スキャン/更新の状態)を取得します。
  • bitdefender_list_custom_groups - Network Inventory グループ内の子グループを一覧表示します。
  • bitdefender_list_network_inventory - インベントリー項目(グループ、コンピューター、VM、EC2 インスタンス)を、種類ごとに絞り込んで一覧表示します。
  • bitdefender_list_scan_tasks - 以前に作成したオンデマンドスキャンタスクとその状態を一覧表示します。
ポリシー
  • bitdefender_list_policies - アカウントで利用できるセキュリティポリシーを一覧表示します。
  • bitdefender_get_policy - 1 つのセキュリティポリシーの設定全体を取得します。
インシデント
  • bitdefender_list_blocklist_items - アカウントの Blocklist に登録されているファイルハッシュを一覧表示します。
レポート
  • bitdefender_list_reports - アカウントで設定されているスケジュール済み/即時レポートを一覧表示します。
  • bitdefender_get_report_download_links - ダウンロード可能かどうかを確認し、レポートのダウンロード URL を取得します。

対象範囲

これは意図的に範囲を絞った、読み取り専用の v1 インターフェースです。Network、Policies、Incidents、Reports API の getXxx/listXxx メソッドを、GravityZone の全メソッドからちょうど 10 個実装しています。 Conduit ゲートウェイでは、すべてのツールが isAdmin: true に分類されています。GravityZone はエンドポイント保護製品であり、このコネクターが公開するすべての読み取り機能(エンドポイントの IP/MAC/ホスト名のインベントリー、セキュリティポリシーの設定、マルウェアハッシュのブロックリスト項目、セキュリティ態勢レポート)は、設計上、セキュリティ/個人情報に隣接する情報を扱うためです。ミューテーションを伴う(create/update/delete/move/set/add/remove)メソッドは、見落としではなく意図的に実装していません。

対象外(Network API)—実装しません:

  • createCustomGroup、deleteCustomGroup、moveCustomGroup — グループのプロビジョニング/変更。
  • moveEndpoints、deleteEndpoint — エンドポイントの変更/削除。
  • createScanTask — 実際に管理されているエンドポイントに、実際のオンデマンドスキャンを実行します。bitdefender_list_scan_tasks(読み取り)は対象ですが、これは対象外です。
  • setEndpointLabel — エンドポイントの変更。

対象外(Incidents API)—実装しません:

  • addToBlocklist、removeFromBlocklist — ブロックリストの変更。bitdefender_list_blocklist_items(読み取り)は対象ですが、これらは対象外です。
  • createIsolateEndpointTask、createRestoreEndpointFromIsolationTask — 実際に管理されているエンドポイントをネットワークから隔離/復元する、実際のリモート対応アクションです。

対象外(Reports API)—実装しません:

  • createReport — 新しいスケジュール済み/即時レポートの定義を作成します。
  • deleteReport — レポートの定義を削除します。

完全に対象外(要望がなく、実装していません): Companies、Licensing、Accounts、Packages、Integrations、Push、Quarantine API。特に Quarantine(getQuarantineItemsList と、書き込みメソッドの createRemove/Restore*QuarantineItemTask)は、Bitdefender 独自の API 分類には含まれていますが、このコネクターで要望された範囲(エンドポイント/ネットワークのインベントリー、ポリシー、インシデント、レポート)の対象外です。需要があれば、意図的なフォローアップとして追加できますが、デフォルトでは追加しません。

需要があれば、意図的に範囲を決定したうえでフォローアップとして追加できます。デフォルトでは追加しません。

認証情報の範囲

このカタログで、認証情報がアクセスできる範囲とできない範囲に関する主張に適用している慣例に従い、確信度を 2 段階に分けています。

  • 構造的に検証済み — このコネクターのコードは、ミューテーションを伴う JSON-RPC メソッドを呼び出しません。client.ts/tools/*.ts を確認した結果、Tools に記載した 10 個の getXxx/listXxx メソッドのみが送信され、src/ 内にはパススルーや任意のメソッド呼び出しはありません。このコネクターは構造上、読み取り専用です。
  • ベンダーのドキュメントで確認済みであり、調査結果はその反対を示しています — GravityZone 独自の API キー生成 UI(Control Center -> My Account -> API keys)で制限されるのは、API エリア単位(Network/Policies/Reports/Incidents/…)のアクセスのみです。これは Bitdefender の公式 API Guide の「Getting Started」セクション 1.3「API Keys」で確認できます。そこには「各 API キーにより、アプリケーションは 1 つ以上の API が公開するメソッドを呼び出せます。許可する API は、API キーの生成時に選択します」とあります。メソッド単位または読み取り/書き込み単位の権限フラグについては、記載がありません。 Network エリアを有効にしたキーでは、getEndpointsList(読み取り)だけでなく、moveEndpoints/deleteEndpoint/createScanTask(書き込み)も呼び出せます。同じエリア、同じ権限チェックボックスであり、Bitdefender 側にさらに細かい範囲指定はありません。**このコネクターの読み取り専用の方針は、GravityZone が提供するより限定的な認証情報の範囲ではなく、完全にコネクター自身のコードによって強制されています。**これは、このカタログにある他のセキュリティ製品コネクター(Cork、CyberQP、Cisco Duo)が管理者ティア分類についてすでに説明している方針と同じものですが、ここでは認証情報の範囲に関する質問に特化して記載しています。

開発

npm install
npm run build
npm test
npm run lint   # tsc --noEmit

Docker

docker build -t bitdefender-mcp .
docker run -p 8080:8080 -e BITDEFENDER_API_KEY=... -e BITDEFENDER_ACCESS_URL=... bitdefender-mcp

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。