mcpField
P
Proofpoint Essentials

Proofpoint Essentials

ローカル
github.comセキュリティ06 日前に更新

Proofpoint Essentials について

MSP がマルチテナントのメールセキュリティを管理するための Proofpoint Essentials MCP サーバーです。組織、ドメイン、ユーザー、ライセンス、機能、パッケージ、メールフローを扱い、破壊的操作には確認を求めます。

主な機能

  1. 01組織とドメインの管理
  2. 02ユーザーの作成と管理
  3. 03ライセンスと機能の確認
  4. 04サブスクリプションパッケージの更新
  5. 05メールフロー指標の取得
  6. 06ドメインのリージョン特定

活用シーン

  1. 01顧客組織の設定確認
  2. 02顧客ドメインとユーザーの管理
  3. 03送受信メールフローの確認
  4. 04ライセンスとパッケージの確認

MCP 対応

Proofpoint Essentials API の操作を MCP ツールとして公開し、呼び出しごとに組織とドメインの情報を受け取ります。破壊的操作には明示的な確認が必要です。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"wyre-ai-proofpoint-essentials": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"PROOFPOINT_ESSENTIALS_USERNAME",
"-e",
"PROOFPOINT_ESSENTIALS_PASSWORD",
"-e",
"PROOFPOINT_ESSENTIALS_REGION",
"-e",
"MCP_TRANSPORT",
"-e",
"AUTH_MODE",
"-e",
"LOG_LEVEL",
"ghcr.io/wyre-ai/proofpoint-essentials-mcp:v1.0.3"
],
"env": {
"PROOFPOINT_ESSENTIALS_USERNAME": "<PROOFPOINT_ESSENTIALS_USERNAME>",
"PROOFPOINT_ESSENTIALS_PASSWORD": "<PROOFPOINT_ESSENTIALS_PASSWORD>",
"PROOFPOINT_ESSENTIALS_REGION": "<PROOFPOINT_ESSENTIALS_REGION>",
"MCP_TRANSPORT": "<MCP_TRANSPORT>",
"AUTH_MODE": "<AUTH_MODE>",
"LOG_LEVEL": "<LOG_LEVEL>"
}
}
}
}
起動コマンドdocker run -i --rm -e PROOFPOINT_ESSENTIALS_USERNAME -e PROOFPOINT_ESSENTIALS_PASSWORD -e PROOFPOINT_ESSENTIALS_REGION -e MCP_TRANSPORT -e AUTH_MODE -e LOG_LEVEL ghcr.io/wyre-ai/proofpoint-essentials-mcp:v1.0.3
設定が必要な環境変数
PROOFPOINT_ESSENTIALS_USERNAMEProofpoint Essentials org-administrator username (used for the X-User header)
PROOFPOINT_ESSENTIALS_PASSWORDシークレットProofpoint Essentials org-administrator password (used for the X-Password header)
PROOFPOINT_ESSENTIALS_REGIONRegion subdomain, e.g. 'us1' or 'eu1'. Defaults to 'us1'.
MCP_TRANSPORTTransport mode. 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/proofpoint-essentials-mcp:v1.0.3

ツール

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

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

詳細

Proofpoint Essentials MCP サーバー

License Node.js

Proofpoint Essentials API 用の Model Context Protocol (MCP) サーバーです。 AI アシスタントが、組織、ドメイン、ユーザー、ライセンス、機能、サブスクリプションパッケージ、メールフローのレポートなど、MSP のマルチテナント環境におけるメールセキュリティを管理できるようにします。

これは Proofpoint TAP とは別の製品/API です(TAP の脅威インテリジェンス、 隔離、URL 防御については proofpoint-mcp を参照してください)。Essentials は Proofpoint の SMB/MSP 向けメールセキュリティ製品であり、独自のベース URL、認証モデル、組織管理機能を備えています。

WYRE AI MCP フリートの一部です — MSP スタック向けの AI 統合ツール群が拡大しています。

インストール

npm install @wyre-ai/proofpoint-essentials-mcp

設定

.env.example をコピーし、以下の変数を設定します。

変数必須説明
PROOFPOINT_ESSENTIALS_USERNAMEstdio および AUTH_MODE=env の場合組織管理者のユーザー名(X-User ヘッダーとして送信)
PROOFPOINT_ESSENTIALS_PASSWORDstdio および AUTH_MODE=env の場合組織管理者のパスワード(X-Password ヘッダーとして送信)
PROOFPOINT_ESSENTIALS_REGIONいいえリージョンのサブドメイン。例:us1 または eu1(デフォルト:us1)
MCP_TRANSPORTいいえstdio(デフォルト)または http
AUTH_MODEいいえgateway(Docker イメージおよび Compose のデフォルト)または env。gateway モードでは、各 /mcp リクエストに X-Proofpoint-Essentials-Username と X-Proofpoint-Essentials-Password が必要です(X-Proofpoint-Essentials-Region は任意)。PROOFPOINT_ESSENTIALS_* へのフォールバックは行いません。env は S2S 認証が成功した後にのみ、これらの変数を使用します。
CONDUIT_S2S_SECRETHTTP では必須サービス間シークレット。空の場合、または既知のプレースホルダー(changeme、secret、placeholder、your-s2s-secret、replace-with-a-real-secret、および src/index.ts にある同じリスト)の場合、HTTP サーバーはエラーをログに記録し、ゼロ以外の終了コードで終了します。未設定の場合、Compose は起動しません。実際の値をコミットしないでください。プロセスがこの値をログに記録することはありません。
MCP_ALLOW_INSECURE_DEVいいえローカル開発で CONDUIT_S2S_SECRET なしに HTTP を起動する場合にのみ、正確に 1 を設定します。プロセスは警告をログに記録し、X-Gateway-S2S を省略して、127.0.0.1 のみで待ち受けます。より広い範囲を指定する MCP_HTTP_HOST は上書きされます。既知のプレースホルダーシークレットは引き続き拒否されます。
MCP_HTTP_HOSTいいえMCP_TRANSPORT=http の場合のバインドアドレス。デフォルトは 127.0.0.1 です。CONDUIT_S2S_SECRET が設定されている場合は、0.0.0.0 を含め、この値が適用されます。コンテナーイメージでは 0.0.0.0 が設定されます。シークレットがない場合、リスナーは 127.0.0.1 のみで待ち受けます。
MCP_HTTP_PORTいいえHTTP ポート。デフォルトは 8080 です。

この API で認証できるのは組織管理者アカウントのみです。エンドユーザーアカウントは認証できません。

/health と /healthz は認証なしで利用でき、認証情報を読み取りません。stdio トランスポートでは CONDUIT_S2S_SECRET を使用しません。

HTTP 認証

MCP_TRANSPORT=http で CONDUIT_S2S_SECRET が設定されている場合、すべての /mcp リクエストに X-Gateway-S2S を含める必要があります。ヘッダーがないか無効な場合、ベンダーの認証情報を読み取る前に 401 を返します。

このヘッダーはシークレットのコピーではなく、HMAC による証明です。

t=<unix seconds>,v1=<hex hmac-sha256>

<hex hmac-sha256> は、ASCII 文字列 t=<unix seconds>(同じ t= プレフィックスと同じ 10 進数のタイムスタンプ)の HMAC-SHA256 です。CONDUIT_S2S_SECRET をキーとして使用し、小文字の 16 進数でエンコードします。タイムスタンプはサーバーの時計との差が 300 秒以内である必要があります。

import { createHmac } from "node:crypto";

const secret = process.env.CONDUIT_S2S_SECRET;
const t = Math.floor(Date.now() / 1000);
const v1 = createHmac("sha256", secret).update(`t=${t}`).digest("hex");
const xGatewayS2s = `t=${t},v1=${v1}`;

AUTH_MODE=gateway の場合、/mcp には X-Proofpoint-Essentials-Username と X-Proofpoint-Essentials-Password も必要です。各リクエストでは、これらのヘッダーのみを認証情報の取得元として使用します。

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-proofpoint-essentials-username": "[email protected]",
    "x-proofpoint-essentials-password": "org-admin-password",
    "x-proofpoint-essentials-region": "us1",
  },
  body: JSON.stringify({ jsonrpc: "2.0", id: 1, method: "tools/list" }),
});

使用方法

Claude Desktop での実行

Claude Desktop の claude_desktop_config.json に追加します。

{
  "mcpServers": {
    "proofpoint-essentials-mcp": {
      "command": "npx",
      "args": ["@wyre-ai/proofpoint-essentials-mcp"],
      "env": {
        "PROOFPOINT_ESSENTIALS_USERNAME": "your-username",
        "PROOFPOINT_ESSENTIALS_PASSWORD": "your-password"
      }
    }
  }
}
Claude Code(CLI)での実行
claude mcp add proofpoint-essentials-mcp \
  -e PROOFPOINT_ESSENTIALS_USERNAME=your-value \
  -e PROOFPOINT_ESSENTIALS_PASSWORD=your-value \
  -- npx -y @wyre-ai/proofpoint-essentials-mcp
Docker

イメージはコンテナ内の 0.0.0.0(MCP_HTTP_HOST)でリッスンし、デフォルトで AUTH_MODE=gateway を使用します。ポートをループバックアドレスに公開し、S2S シークレットを渡してください。ゲートウェイモードでは、Proofpoint Essentials の認証情報は各リクエストで X-Proofpoint-Essentials-* ヘッダーとして渡されます。イメージは環境変数から認証情報を読み込みません。

docker build --platform linux/amd64 --build-arg GITHUB_TOKEN=$(gh auth token) -t proofpoint-essentials-mcp .
docker run \
  -e CONDUIT_S2S_SECRET="$CONDUIT_S2S_SECRET" \
  -p 127.0.0.1:8080:8080 \
  proofpoint-essentials-mcp

Compose は CONDUIT_S2S_SECRET が未設定の場合に起動を拒否し、AUTH_MODE=gateway を設定して 127.0.0.1:8080:8080 を公開します。また、PROOFPOINT_ESSENTIALS_* 変数は渡しません。

CONDUIT_S2S_SECRET="$CONDUIT_S2S_SECRET" docker compose up

シングルテナント HTTP(AUTH_MODE=env)でも S2S シークレットが必要です。その後、PROOFPOINT_ESSENTIALS_USERNAME と PROOFPOINT_ESSENTIALS_PASSWORD を使用します。

docker run \
  -e CONDUIT_S2S_SECRET="$CONDUIT_S2S_SECRET" \
  -e AUTH_MODE=env \
  -e PROOFPOINT_ESSENTIALS_USERNAME=your-value \
  -e PROOFPOINT_ESSENTIALS_PASSWORD=your-value \
  -e PROOFPOINT_ESSENTIALS_REGION=us1 \
  -p 127.0.0.1:8080:8080 \
  proofpoint-essentials-mcp

シークレットを使用しないローカル HTTP は、開発用途に限られます。127.0.0.1 にバインドされ、警告がログに記録されます。ループバック以外の MCP_HTTP_HOST は 127.0.0.1 に上書きされます。

MCP_TRANSPORT=http MCP_ALLOW_INSECURE_DEV=1 npm start

利用可能なツール

Proofpoint Essentials は MSP 向けのマルチテナント API です。組織/ドメイン/ユーザーを対象とするすべてのツールでは、呼び出しごとに対象顧客組織のドメインを引数として指定します(認証情報は単一の組織に限定されません)。

組織
  • proofpoint_essentials_org_get — 組織データとそのドメインを取得します
  • proofpoint_essentials_org_set_active — 組織を有効化/無効化します ⚠ 影響大
  • proofpoint_essentials_org_delete — 組織を削除します ⚠ 破壊的操作、取り消し不可
ドメイン
  • proofpoint_essentials_domains_list
  • proofpoint_essentials_domains_create — パラメーター:orgDomain、空でない domains: string[]。各名前は Domain オブジェクト {name} として送信されます。戻り値は { summary: { requested, returned, succeeded, failed, unconfirmed }, results } です。返された項目がすべて成功し、未確認の項目(不足項目を含む)がない場合に限り、結果には項目ごとの生データが含まれます。requested は送信した件数です(返された件数がこれを上回る場合のみ、返された件数に引き上げられます)。応答にない項目は未確認として数えられます。失敗した項目があると isError が設定されます。失敗または未確認の項目がある場合、results は不要なフィールドを省いた項目ごとのリスト { index, outcome, status, code, message } になります。成功した項目は作成済みのため、再試行しないでください。
  • proofpoint_essentials_domains_update ⚠ 影響大
  • proofpoint_essentials_domains_delete ⚠ 破壊的操作、取り消し不可
ユーザー
  • proofpoint_essentials_users_list
  • proofpoint_essentials_users_get
  • proofpoint_essentials_users_create — パラメーター:orgDomain、必須の primary_email と、任意の firstname、surname、type、is_active、send_welcome_email、alias_emails を含む空でない users[]。ユーザーは、User オブジェクトの配列をそのまま Proofpoint に送信します。戻り値は { summary: { requested, returned, succeeded, failed, unconfirmed }, results } です。返された項目がすべて成功し、未確認の項目(不足項目を含む)がない場合に限り、結果には項目ごとの生データが含まれます。requested は送信した件数です(返された件数がこれを上回る場合のみ、返された件数に引き上げられます)。応答にない項目は未確認として数えられます。失敗した項目があると isError が設定されます。失敗または未確認の項目がある場合、results は不要なフィールドを省いた項目ごとのリスト { index, outcome, status, code, message } になります。成功した項目は作成済みのため、再試行しないでください。作成時には、応答専用のフィールド(uid、password、creation_date、last_update、last_login)は無視されます。
  • proofpoint_essentials_users_update ⚠ 影響大
  • proofpoint_essentials_users_delete ⚠ 破壊的操作、取り消し不可

作成時のシリアライズと結果の正規化に関する修正には @wyre-ai/node-proofpoint-essentials >= 1.0.2 が必要です。このパッケージはこれに依存しています。

エンドポイントの検出
  • proofpoint_essentials_endpoint_discover — 顧客ドメインをホストしているリージョンを特定します
機能/ライセンス/パッケージ
  • proofpoint_essentials_features_get / proofpoint_essentials_features_update ⚠ 高影響
  • proofpoint_essentials_licensing_get / proofpoint_essentials_licensing_update ⚠ 高影響
  • proofpoint_essentials_package_update ⚠ 高影響
レポート
  • proofpoint_essentials_reporting_get — 受信/送信メールのフローメトリクス
トークン
  • proofpoint_essentials_token_create — Odin ベースの SSO トークンを発行します

破壊的なツールの実行には、明示的な確認が必要です。対話型 MCP クライアントでは エリシテーションを通じて確認を求められます。非対話型の呼び出し元(WYRE ゲートウェイなど)は confirm_destructive_action: true を渡す必要があり、渡さない場合はブロックされます。

開発

git clone https://github.com/WYRE-AI/proofpoint-essentials-mcp.git
cd proofpoint-essentials-mcp
npm install
npm run build
npm test
npm run smoke   # requires a prior `npm run build`

コントリビューション

コントリビューションを歓迎します。CONTRIBUTING.md をご覧いただくか、変更について話し合うために イシューを作成してください。

エラーのマスキング

エラーテキストおよびクリーンアップ済みのバッチ結果メッセージでは、サポート対象のエンコードされた @ 形式(%40、%2540、&#64;、&#x40;、&commat;、リテラルの \u0040、 全角の @)、@ の前後に空白がある形式、引用符で囲まれたローカル部を含め、メールアドレスをマスキングします。ドメインツールのエラーおよびクリーンアップ済みのドメイン作成メッセージでは、ホスト名のみの文字列もマスキングします。ベンダーのエラーボディは statusCode とスカラーの code メタデータに縮小され、その他のベンダーフィールドは省略されます。各エラーテキストまたはクリーンアップ済みの項目ごとのメッセージは、マスキング後に Unicode コードポイント 300 文字を上限とします(集約バッチ JSON は上限の対象外です)。成功が確認された結果では、生データが保持されます。これは対象を絞ったマスキングであり、一般的な PII の削除ではありません。

ライセンス

Apache License, Version 2.0 に基づいてライセンスされています。詳細は LICENSE をご覧ください。

コメント

MCP は初めてですか?

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

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