SaaS Alerts について
SaaS Alertsは、M365とGoogle Workspaceを監視するチーム向けのKaseya SaaS Alertsセキュリティ監視用MCPサーバーです。イベント、顧客、ユーザー、デバイス、請求、レポート、パートナー設定のAPI操作を提供し、書き込みや破壊的操作では確認を求めます。
主な機能
- 017つのAPI領域を扱う30個のツール
- 02セキュリティイベント検索とスクロールページング
- 03顧客とユーザーの管理
- 04デバイス、請求、レポートの操作
- 05書き込みと破壊的操作の確認
活用シーン
- 01重大度や顧客別のセキュリティイベント検索
- 02顧客情報と許可リストの管理
- 03請求詳細と定期レポートの確認
MCP 対応
30個のMCPツールを通じてSaaS Alerts External Partner APIを公開します。MCP elicitationに対応する場合、書き込みや破壊的操作で確認を求めます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
docker run -i --rm -e SAAS_ALERTS_API_KEY -e MCP_TRANSPORT -e AUTH_MODE -e LOG_LEVEL ghcr.io/wyre-ai/saas-alerts-mcp:v1.2.9SAAS_ALERTS_API_KEYシークレットSaaS Alerts API key (sent as the api_key header). Required.MCP_TRANSPORTTransport mode. 'stdio' for local CLI; image defaults to 'http' for gateway hosting.AUTH_MODEシークレット'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/saas-alerts-mcp:v1.2.9stdioツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
saas-alerts-mcp
Kaseya SaaS Alerts 用の Model Context Protocol サーバーです。M365 および Google Workspace のイベントを対象とする SaaS セキュリティ監視プラットフォームです。
WYRE Technology MCP fleet の一部です。
機能
SaaS Alerts External Partner API(v0.20.0)の全機能を、ドメイン別に整理した 30 個の MCP ツールとして公開します。
| ドメイン | ツール |
|---|---|
| events | 重大度、顧客、ユーザー、イベント種別によるセキュリティイベントのクエリ/件数取得、高度な Elasticsearch クエリ、スクロールページネーション、推奨アクション |
| customers | 顧客の一覧表示、取得、作成、更新、削除、IP/国およびアカウントの許可リスト設定 |
| users | MSP ユーザー情報、パートナーユーザー、顧客ユーザー |
| devices | マッピング済み/未マッピング/無視対象デバイスの統合、デバイス組織 |
| billing | 日付別の請求詳細、請求日履歴 |
| reports | スケジュール済みレポートの一覧表示、取得、作成、削除 |
| partner | パートナープロファイル、ブランディング設定 |
書き込み/破壊的なツールの実行には、MCP elicitation によるユーザー確認が必要です(フェイルオープン:クライアントが elicitation に対応していない場合は処理を続行します)。
認証
SaaS Alerts は、HTTP ヘッダー api_key で送信される API キーを使用します。
SaaS Alerts の UI で Settings → API Keys を開き、API キーを生成してください。
.env.example をコピーしてください。そのファイルの CONDUIT_S2S_SECRET は空のままにし、実際の値は絶対にコミットしないでください。
| 変数 | 必須 | 説明 |
|---|---|---|
SAAS_ALERTS_API_KEY | stdio および AUTH_MODE=env の場合 | SaaS Alerts API キーです。ゲートウェイモードでは読み取られません。 |
MCP_TRANSPORT | いいえ | stdio(デフォルト)または http |
AUTH_MODE | いいえ | gateway(Docker イメージおよび Compose のデフォルト)または env。ゲートウェイモードでは、各 /mcp リクエストに X-SaaS-Alerts-API-Key が必要で、SAAS_ALERTS_API_KEY へのフォールバックは行いません。 |
CONDUIT_S2S_SECRET | HTTP の場合は必須 | サービス間シークレットです。空の場合、または既知のプレースホルダー(changeme、secret、your-s2s-secret、その他のサンプル値)の場合、HTTP サーバーはエラーをログに記録して、ゼロ以外の終了コードで終了します。未設定の場合、Compose は起動しません。この値がログに記録されることはありません。 |
MCP_ALLOW_INSECURE_DEV | いいえ | CONDUIT_S2S_SECRET がなくても HTTP を起動する場合に限り、ローカル開発用として 1 に設定します。プロセスは警告をログに記録し、X-Gateway-S2S を必須とせず、127.0.0.1 のみでリッスンします。より広い範囲の MCP_HTTP_HOST(0.0.0.0 を含む)は上書きされます。プレースホルダーのシークレットは引き続き拒否されます。 |
MCP_HTTP_HOST | いいえ | 実際の CONDUIT_S2S_SECRET が設定されている場合のバインドアドレスです。デフォルトは 127.0.0.1 です。コンテナイメージでは 0.0.0.0 が設定されます。実際のシークレットがない場合、リスナーは 127.0.0.1 に強制されます。 |
MCP_HTTP_PORT | いいえ | HTTP ポートです。デフォルトは 8080 です。 |
/health および /healthz は引き続き認証なしでアクセスでき、認証情報を読み取りません。stdio トランスポートでは CONDUIT_S2S_SECRET を使用しません。
X-Gateway-S2S 署名
MCP_TRANSPORT=http かつ実際の CONDUIT_S2S_SECRET が設定されている場合、すべての /mcp リクエストに X-Gateway-S2S を含める必要があります。ヘッダーがない場合、または無効な場合は、ベンダーの認証情報を読み取る前に 401 を返します。
ヘッダー値は t=<unix seconds>,v1=<hex hmac-sha256> です。
tに現在の Unix 時刻を秒単位で設定します。CONDUIT_S2S_SECRETをキーとして、ASCII メッセージt=<unix seconds>に HMAC-SHA256 で署名します。- ダイジェストを 16 進数(小文字の 16 進数 64 文字)にエンコードし、
t=<unix seconds>,v1=<hex>を送信します。
タイムスタンプはサーバー時刻との差が 300 秒以内である必要があります。例:
import { createHmac } from 'node:crypto';
const t = Math.floor(Date.now() / 1000);
const v1 = createHmac('sha256', process.env.CONDUIT_S2S_SECRET).update(`t=${t}`).digest('hex');
const xGatewayS2s = `t=${t},v1=${v1}`;
ローカル/stdio モード
export SAAS_ALERTS_API_KEY=your-api-key
node dist/index.js
HTTP モード
CONDUIT_S2S_SECRET が必要です。空の場合、プロセスはエラーをログに記録して、ゼロ以外の終了コードで終了します。
export CONDUIT_S2S_SECRET="$(openssl rand -hex 32)"
export SAAS_ALERTS_API_KEY=your-api-key
export MCP_TRANSPORT=http
export AUTH_MODE=env
export MCP_HTTP_PORT=8080
node dist/http.js
シークレットなしでのローカル HTTP は、開発時のみ使用できます。MCP_HTTP_HOST が 0.0.0.0 に設定されていても 127.0.0.1 にバインドされ、警告をログに記録します。
MCP_TRANSPORT=http MCP_ALLOW_INSECURE_DEV=1 npm run start:http
WYRE Gateway モード
WYRE MCP Gateway の背後で実行する場合は、AUTH_MODE=gateway(イメージおよび Compose のデフォルト)を設定してください。ゲートウェイは各リクエストに X-Gateway-S2S で署名し、X-SaaS-Alerts-API-Key を介して API キーを挿入します。この認証情報ヘッダーがないリクエストは 401 を返し、環境変数の SAAS_ALERTS_API_KEY は使用しません。
await fetch('http://127.0.0.1:8080/mcp', {
method: 'POST',
headers: {
'content-type': 'application/json',
accept: 'application/json, text/event-stream',
'x-gateway-s2s': xGatewayS2s,
'x-saas-alerts-api-key': apiKey,
},
body: JSON.stringify({ jsonrpc: '2.0', id: 1, method: 'tools/list' }),
});
Docker での実行
イメージはコンテナ内で 0.0.0.0 をリッスンし、デフォルトで AUTH_MODE=gateway に設定されています。ポートをループバックに公開し、S2S シークレットを渡してください。ゲートウェイモードでは、SaaS Alerts API キーは各リクエストで渡され、環境変数からは読み込まれません。
docker build -t saas-alerts-mcp .
docker run \
-e CONDUIT_S2S_SECRET="$CONDUIT_S2S_SECRET" \
-p 127.0.0.1:8080:8080 \
saas-alerts-mcp
Compose は CONDUIT_S2S_SECRET が未設定の場合に起動を拒否し、AUTH_MODE=gateway を設定して 127.0.0.1:8080:8080 を公開します。また、ゲートウェイサービスには SAAS_ALERTS_API_KEY を渡しません。
CONDUIT_S2S_SECRET="$CONDUIT_S2S_SECRET" docker compose up
シングルテナントの HTTP(AUTH_MODE=env)でも S2S シークレットが必要です。その後、SAAS_ALERTS_API_KEY が使用されます。
docker run \
-e CONDUIT_S2S_SECRET="$CONDUIT_S2S_SECRET" \
-e AUTH_MODE=env \
-e SAAS_ALERTS_API_KEY=your-key \
-p 127.0.0.1:8080:8080 \
ghcr.io/wyre-ai/saas-alerts-mcp:latest
開発
npm install
npm run build
npm test
npm run lint
node scripts/lint-destructive-warnings.mjs src
破壊的なツールの確認
データを完全に削除するツール(顧客の削除、スケジュール済みレポートの削除)には、以下が設定されています。
- 説明の接頭辞
⚠ DESTRUCTIVE — IRREVERSIBLE annotations.destructiveHint: true- エリシテーションによる確認ガード(追加の保護として、クライアントがエリシテーションをサポートしていない場合は実行します)
これらのツールを呼び出す前に、必ずユーザーに確認してください。
ライセンス
Apache-2.0 — LICENSE を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。