ESET PROTECT について
ESET PROTECT は、ESET Connect を通じてエンドポイント群を監視するセキュリティチームや AI アシスタント向けの読み取り専用 MCP サーバーです。デバイス、検知・EDR、脆弱性、パッチ状況、ユーザーデータを扱います。
主な機能
- 01デバイスとグループの一覧・詳細表示
- 02検知イベントと EDR ルールの調査
- 03デバイスと OS の脆弱性確認
- 04パッチ状況と処理履歴の確認
- 05ユーザーの一覧・詳細表示
活用シーン
- 01状態別の管理対象デバイス確認
- 02エンドポイントまたは EDR 検知の調査
- 03脆弱性のあるデバイスの特定
- 04直近のパッチ適用状況の確認
MCP 対応
デバイス、インシデント、脆弱性、パッチ、ユーザーデータにアクセスする読み取り専用の ESET Connect ツールを MCP クライアントに公開します。stdio と HTTP のトランスポートに対応します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
docker run -i --rm -e ESETPROTECT_CLIENT_ID -e ESETPROTECT_CLIENT_SECRET -e ESETPROTECT_REGION -e MCP_TRANSPORT -e AUTH_MODE -e LOG_LEVEL ghcr.io/wyre-ai/eset-protect-mcp:v1.0.2ESETPROTECT_CLIENT_IDEmail of the dedicated ESET Connect API user, created in ESET Business Account with the Integrations toggle enabled.ESETPROTECT_CLIENT_SECRETシークレットPassword of the ESET Connect API user paired with ESETPROTECT_CLIENT_ID.ESETPROTECT_REGIONESET Connect region: us (default), eu, de, jpn, or ca.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 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ghcr.io/wyre-ai/eset-protect-mcp:v1.0.2stdioツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
ESET PROTECT MCP サーバー
ESET PROTECT の ESET Connect API ゲートウェイ向け MCP サーバーです。AI アシスタントと WYRE Conduit ゲートウェイに、エンドポイント群の可視化(デバイスとグループ)、検知/EDR 調査、脆弱性データ、パッチ状況、ユーザー管理を提供します。
認証
ESET Business Account で専用の API ユーザーを作成します:User Management > create a user with read-only permission > enable the Integrations toggle。このユーザー用のメールアドレスとパスワードが発行されます。
ESET Connect のトークンエンドポイント(POST /oauth/token)は、独自の OpenAPI 仕様で password グラントとして定義されています。フィールドは username/password であり、grant_type=client_credentials を指定した client_id/client_secret ではありません。このサーバーは clientId/clientSecret(WYRE の他の MCP コネクターで使用される認証情報の形式に合わせています)を受け取り、このグラントの username/password として送信します。返された refresh_token を使ったベアラートークンのキャッシュと更新(リフレッシュトークン自体が拒否された場合は、完全な再ログインにフォールバックします)は内部で処理されます。呼び出し側が指定するのは、長期間有効なメールアドレスとパスワードの組み合わせだけです。
設定
| 環境変数 | 説明 |
|---|---|
ESETPROTECT_CLIENT_ID | 専用の ESET Connect API ユーザーのメールアドレスです。 |
ESETPROTECT_CLIENT_SECRET | その API ユーザーのパスワードです。 |
ESETPROTECT_REGION | us(デフォルト)、eu、de、jpn、または ca。ESET Business Account がプロビジョニングされた ESET Connect のリージョンです。 |
MCP_TRANSPORT | stdio(デフォルト)または http です。 |
AUTH_MODE | env(デフォルト。上記の変数を読み込みます)または gateway(Conduit ゲートウェイが挿入する X-EsetProtect-* ヘッダー経由で、リクエストごとに認証情報を受け取ります)です。 |
CONDUIT_S2S_SECRET | 設定すると、HTTP トランスポートではすべての /mcp リクエストに有効な X-Gateway-S2S ヘッダー(Conduit サイドカー認証)が必要になります。 |
LOG_LEVEL | debug | info(デフォルト)| warn | error です。 |
ESET Connect API の各ドメイン(デバイス、インシデント、脆弱性、パッチ、ユーザー管理)は、リージョンごとに独立したサブドメインでホストされます。例:https://us.device-management.eset.systems。認証ホストも同じリージョン別の形式です。例:https://us.business-account.iam.eset.systems。ESETPROTECT_REGION は、それらすべてのプレフィックスを選択します。
ツール
デバイス管理
esetprotect_list_device_groups- デバイスグループを一覧表示します。esetprotect_list_group_devices- グループ内のデバイスを一覧表示します。esetprotect_list_devices- 管理対象デバイスを一覧表示します。表示名、機能の状態、またはミュート状態で絞り込めます。esetprotect_get_device- UUID でデバイスを取得します。esetprotect_batch_get_devices- 1 回の呼び出しで UUID を指定して複数のデバイスを取得します。
インシデント管理(検知、検知グループ、EDR)
esetprotect_list_detections/esetprotect_get_detection- v1 の検知(レガシー機能)。esetprotect_list_detections_v2/esetprotect_get_detection_v2/esetprotect_batch_get_detections- v2 の検知(エンドポイント、クラウドオフィス、EDR)。esetprotect_list_detection_groups/esetprotect_get_detection_group- グループにクラスタリングされた検知。esetprotect_list_edr_rules/esetprotect_get_edr_rule- EDR 検知ルール。esetprotect_list_edr_rule_exclusions/esetprotect_get_edr_rule_exclusion- EDR ルールの除外設定。
脆弱性管理
esetprotect_list_device_os_vulnerabilities- デバイスで見つかった OS の脆弱性。esetprotect_list_device_vulnerabilities- デバイスで見つかった脆弱性(アプリケーション/OS/パッケージの範囲)。esetprotect_list_recent_scans- 最近の脆弱性スキャンの詳細。esetprotect_list_vulnerable_devices- 既知の脆弱性があるデバイス。
パッチ管理
esetprotect_list_recent_application_patching_details- フリート全体で直近に行われたアプリケーションのパッチ適用プロセス。esetprotect_list_device_patches- デバイスのパッチ。パッチの種類で絞り込めます。esetprotect_list_patching_process_details- 指定した期間内のパッチ適用プロセスの詳細な履歴。
ユーザー管理
esetprotect_list_users- ユーザーの一覧。メールアドレス、表示名、保護ステータスなどで絞り込めます。esetprotect_get_user- UUIDでユーザーを取得します。esetprotect_batch_get_users- 1回の呼び出しで複数のユーザーをUUIDで取得します(アトミックに処理され、すべて成功するか、すべて失敗します)。
リクエスト制限
- 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(リクエスト本文/バッチの上限なし)に対処するものです。
対象範囲
これはv1の読み取り専用のフリート/セキュリティ可視化機能です。明示的に対象外としているのは、デバイスの移動/名前変更とバッチインポート、検出および検出グループの解決、EDRルールとルール除外の作成/更新/削除、ならびにあらゆる資産管理グループの作成/削除/移動/名前変更エンドポイントです。これらは読み取り専用の監視コネクターの対象外となる変更/プロビジョニング操作であり、今後の追加機能として対応できます。
インシデント管理APIには、検出および検出グループに加えて、別個の /v2/incidents ケース管理機能(一覧表示/取得/クローズ/再オープン、コメント)もあります。同じ理由により、このv1機能の対象外です。
開発
npm install
npm run build
npm test
npm run lint # tsc --noEmit
Docker
docker build -t eset-protect-mcp .
docker run -p 8080:8080 \
-e ESETPROTECT_CLIENT_ID=... \
-e ESETPROTECT_CLIENT_SECRET=... \
eset-protect-mcp
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。