mcpField
S
SaaS Alerts

SaaS Alerts

ローカル
github.comセキュリティ0今日更新

SaaS Alerts について

SaaS Alerts は、M365 と Google Workspace を監視する Kaseya SaaS Alerts を利用する MSP やセキュリティチーム向けの MCP サーバーです。ドメイン別の 30 ツールで、イベント、顧客、ユーザー、デバイス、請求、レポート、パートナー情報を扱います。

主な機能

  1. 01ドメイン別に整理された 30 ツール
  2. 02セキュリティイベントの検索と集計
  3. 03顧客と許可リストの管理
  4. 04ユーザーとデバイス情報の確認
  5. 05請求と定期レポートへのアクセス
  6. 06書き込み・削除操作の確認

活用シーン

  1. 01重大度やユーザー別のイベント調査
  2. 02顧客情報とアカウント許可リストの保守
  3. 03デバイスと組織の対応関係の確認
  4. 04定期レポートと請求情報の管理

MCP 対応

SaaS Alerts External Partner API を MCP ツールとしてクライアントに公開します。書き込み操作と破壊的操作には確認を求め、削除ツールは取り消し不能として示されます。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"wyre-technology-saas-alerts": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"SAAS_ALERTS_API_KEY",
"-e",
"MCP_TRANSPORT",
"-e",
"AUTH_MODE",
"-e",
"LOG_LEVEL",
"ghcr.io/wyre-technology/saas-alerts-mcp:v1.2.4"
],
"env": {
"SAAS_ALERTS_API_KEY": "<SAAS_ALERTS_API_KEY>",
"MCP_TRANSPORT": "<MCP_TRANSPORT>",
"AUTH_MODE": "<AUTH_MODE>",
"LOG_LEVEL": "<LOG_LEVEL>"
}
}
}
}
起動コマンドdocker run -i --rm -e SAAS_ALERTS_API_KEY -e MCP_TRANSPORT -e AUTH_MODE -e LOG_LEVEL ghcr.io/wyre-technology/saas-alerts-mcp:v1.2.4
設定が必要な環境変数
SAAS_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 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
ocighcr.io/wyre-technology/saas-alerts-mcp:v1.2.4

ツール

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

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

詳細

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/国およびアカウントの許可リスト設定
usersMSP ユーザー情報、パートナーユーザー、顧客ユーザー
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_KEYstdio および 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_SECRETHTTP の場合は必須サービス間シークレットです。空の場合、または既知のプレースホルダー(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> です。

  1. t に現在の Unix 時刻を秒単位で設定します。
  2. CONDUIT_S2S_SECRET をキーとして、ASCII メッセージ t=<unix seconds> に HMAC-SHA256 で署名します。
  3. ダイジェストを 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 を参照してください。

コメント

MCP は初めてですか?

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

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