mcpField
M
Mailprotector

Mailprotector

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

Mailprotector について

Mailprotector は、AI アシスタント経由でメールセキュリティを管理する MSP 向け MCP サーバーです。一般的な管理ツールに加え、カテゴリ別ルーターで追加の API 操作を利用でき、削除には確認フローがあります。

主な機能

  1. 01顧客、ドメイン、ユーザーの管理
  2. 02隔離メッセージとログの確認
  3. 03許可・ブロックルールの作成
  4. 04ルーターによる追加操作の実行
  5. 05削除時の確認

活用シーン

  1. 01顧客、ドメイン、ユーザー情報の保守
  2. 02隔離メッセージの確認と解放
  3. 03メールの許可・ブロックルールの管理

MCP 対応

顧客、ドメイン、ユーザー、隔離メッセージ、ルール、ログ、設定向けの Mailprotector ツールを MCP クライアントに公開します。ルーターから追加の API 操作も利用できます。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"wyre-ai-mailprotector": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"MAILPROTECTOR_API_KEY",
"-e",
"MAILPROTECTOR_RESELLER_ID",
"-e",
"MAILPROTECTOR_BASE_URL",
"-e",
"MCP_TRANSPORT",
"-e",
"AUTH_MODE",
"-e",
"LOG_LEVEL",
"ghcr.io/wyre-ai/mailprotector-mcp:v1.0.4"
],
"env": {
"MAILPROTECTOR_API_KEY": "<MAILPROTECTOR_API_KEY>",
"MAILPROTECTOR_RESELLER_ID": "<MAILPROTECTOR_RESELLER_ID>",
"MAILPROTECTOR_BASE_URL": "<MAILPROTECTOR_BASE_URL>",
"MCP_TRANSPORT": "<MCP_TRANSPORT>",
"AUTH_MODE": "<AUTH_MODE>",
"LOG_LEVEL": "<LOG_LEVEL>"
}
}
}
}
起動コマンドdocker run -i --rm -e MAILPROTECTOR_API_KEY -e MAILPROTECTOR_RESELLER_ID -e MAILPROTECTOR_BASE_URL -e MCP_TRANSPORT -e AUTH_MODE -e LOG_LEVEL ghcr.io/wyre-ai/mailprotector-mcp:v1.0.4
設定が必要な環境変数
MAILPROTECTOR_API_KEYシークレットMailprotector API key (per manager-role, from the web console profile page)
MAILPROTECTOR_RESELLER_IDThe MSP's reseller id in Mailprotector (the default scope for scoped tools)
MAILPROTECTOR_BASE_URLAPI host override
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. The image defaults to 'gateway'.
LOG_LEVELLog verbosity: debug, info, warn, error

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

パッケージ
ocighcr.io/wyre-ai/mailprotector-mcp:v1.0.4

ツール

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

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

詳細

mailprotector-mcp

Mailprotector 向けの MCP サーバーです。MSP 向けにメールセキュリティを管理します(CloudFilter、Bracket、SafeSend、XtraMail)。顧客、ドメイン、ユーザー、隔離、許可/ブロックルール、ログ、設定、およびルーター経由で利用できる API の全エンドポイントに対応しています。

分割された v2 SDK(@modelcontextprotocol/server / /node / /client ^2.0.0-beta.5)を使用し、MCP 2026-07-28 仕様に基づいて構築されています。2 世代のクライアントに対応しており、createMcpHandler({ legacy: 'stateless' }) の背後にある単一の McpServerFactory が、2025 年世代の initialize ハンドシェイクを行うクライアント(現在の WYRE ゲートウェイ)と、最新の 2026-07-28 エンベロープクライアントの両方に、同一で決定的な 22 種類のツールを提供します。GHCR コンテナのみで提供されます(MCPB バンドルはありません)。

ツール(22 種類の主要ツールとルーター経由の拡張機能)

ルーター:mailprotector_status、mailprotector_list_categories、mailprotector_list_category_tools、mailprotector_execute_tool。

主要な読み取りツール:mailprotector_customers_list/get、mailprotector_domains_list/get、mailprotector_users_list/get/find_by_address、mailprotector_user_groups_list、mailprotector_messages_list、mailprotector_allow_block_rules_list、mailprotector_logs_list、mailprotector_configuration_get。

主要な書き込みツール:mailprotector_customers_create、mailprotector_domains_create、mailprotector_messages_release / release_many(⚠ 影響大)、mailprotector_allow_block_rules_create(⚠ 影響大)、および ⚠ 破壊的 — 取り消し不可の mailprotector_allow_block_rules_delete。

ルーターのカテゴリ(mailprotector_execute_tool 経由で実行する 52 種類の操作): resellers(CRUD)、customers(更新/削除)、domains(更新/削除/移動/エイリアス)、user_groups(CRUD + サービス)、users(作成/一括作成/更新/削除/パスワードリセット/エイリアス)、managers(CRUD + 通知先)、configuration(更新)、statements、email_routing(domain|user_group の宛先/送信元)、user_syncs(CRUD + スケジュール + フィルター)、notifications(ユーザー通知先)、results(find_by_code)。ルーター経由の削除操作はすべて⚠ 破壊的で、確認が必須です。スキーマを確認するには mailprotector_list_category_tools を使用してください。

スコープ指定ツール

Mailprotector の階層は Provider → Reseller → Customer → Domain → User Group → User で、多くの操作が複数のスコープで利用できます。スコープ指定ツールは scope(reseller | customer | domain | user_group | user。使用可能な値はツールごとに異なります)と scope_id を受け取ります。scope が "reseller" の場合、scope_id の既定値はバインドされたリセラーです。

削除の確認(MRTR エリシテーション)

すべての削除は SDK v2 の MRTR シームを通じて実行されます。ハンドラーは input_required を返し、対話型クライアントには確認プロンプトが表示され、拒否すると削除はキャンセルされます。エリシテーション機能を宣言していない呼び出し元(WYRE Conduit ゲートウェイなどのステートレスな 2025 年世代の呼び出し元を含む)では、連携契約に従って削除を続行します。ここでのエリシテーションは追加機能としてのみ提供され、ゲートウェイは独自のサーバー側のツールごとの分類ゲートによって、破壊的なツールへのアクセスを制御します。

認証情報

環境変数(env モード)ゲートウェイヘッダー(AUTH_MODE=gateway)備考
MAILPROTECTOR_API_KEYX-Mailprotector-Api-Keymanager-role ごとに、ウェブコンソールのプロフィールページから取得します。Authorization: Bearer として送信されます。
MAILPROTECTOR_RESELLER_IDX-Mailprotector-Reseller-IdMSP の reseller id — スコープ付きツールのデフォルトスコープです。
MAILPROTECTOR_BASE_URL(任意)—デフォルトは https://emailservice.io です。

.env.example をコピーしてください。ゲートウェイの Compose サービスは MAILPROTECTOR_API_KEY または MAILPROTECTOR_RESELLER_ID を読み込みません。

変数必須説明
MCP_TRANSPORTいいえstdio(デフォルト)または http です。コンテナーイメージでは http が設定されています。
AUTH_MODEいいえgateway(Docker イメージと Compose)または env です。ゲートウェイモードでは、各 /mcp リクエストに X-Mailprotector-Api-Key と X-Mailprotector-Reseller-Id が必要で、MAILPROTECTOR_* にフォールバックすることはありません。env は S2S 認証の成功後にのみ、これらの変数を使用します。未設定の場合は env です(stdio およびシングルテナント HTTP)。
CONDUIT_S2S_SECRETHTTP では必須サービス間シークレットです。これが空、または既知のプレースホルダー(changeme、secret、replace-me、replace-with-a-real-secret、your-s2s-secret、その他のサンプル値)の場合、HTTP サーバーはエラーをログに記録してゼロ以外の終了コードで終了します。openssl rand -hex 32 で生成してください。Compose はこの値がないと起動しません。この値がログに記録されることはありません。
MCP_ALLOW_INSECURE_DEVいいえCONDUIT_S2S_SECRET がなくても HTTP を起動する場合に限り、ローカル開発用として厳密に 1 を設定します。プロセスは警告をログに記録し、X-Gateway-S2S を必須にせず、127.0.0.1 のみでバインドします。ループバック以外の MCP_HTTP_HOST を指定すると起動を拒否します。既知のプレースホルダーシークレットを指定した場合も起動を拒否します。
MCP_HTTP_HOSTいいえ実際の CONDUIT_S2S_SECRET が設定されている場合のバインドアドレスです。未設定の場合は、従来どおりコンテナー内で 0.0.0.0 にバインドします。イメージと Compose では、コンテナー内の値として 0.0.0.0 が設定されています。
MCP_HTTP_PORTいいえHTTP ポートです。デフォルトは 8080 です。

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

ゲートウェイモードで、いずれかの認証情報ヘッダーが欠けている場合(または reseller id が数値でない場合)、MCP ハンドラーの実行前に 401(JSON-RPC エラー -32001)が返されます。env の認証情報にフォールバックすることはありません。

HTTP 認証

MCP_TRANSPORT=http で CONDUIT_S2S_SECRET が設定されている場合、すべての /mcp リクエストに X-Gateway-S2S を含める必要があります。検証は src/s2s-verify.ts の verifyS2sHeader で行われます。ヘッダー値は t=<unix seconds>,v1=<hex> 形式です。<hex> は、CONDUIT_S2S_SECRET をキーとして、リテラル文字列 t=<unix seconds> に対して計算した HMAC-SHA256(小文字の 16 進数 64 文字)です。タイムスタンプはサーバー時刻から 300 秒以内でなければなりません。ヘッダーがない、または無効な場合は、ベンダーの認証情報を読み取る前に HTTP 401 が返されます。

TS=$(date +%s)
SIG=$(printf 't=%s' "$TS" | openssl dgst -sha256 -hmac "$CONDUIT_S2S_SECRET" -hex | awk '{print $NF}')
curl -sS http://127.0.0.1:8080/mcp \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -H "X-Gateway-S2S: t=${TS},v1=${SIG}" \
  -H "X-Mailprotector-Api-Key: $MAILPROTECTOR_API_KEY" \
  -H "X-Mailprotector-Reseller-Id: $MAILPROTECTOR_RESELLER_ID" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

AUTH_MODE=gateway では、/mcp に X-Mailprotector-Api-Key と X-Mailprotector-Reseller-Id も必要です。これらのヘッダーのみが、そのリクエストの認証情報ソースです。AUTH_MODE=env でも署名済みの X-Gateway-S2S ヘッダーが必要です。その後、環境変数の MAILPROTECTOR_API_KEY と MAILPROTECTOR_RESELLER_ID を使用します。

実行

export NODE_AUTH_TOKEN=$(gh auth token)   # GitHub Packages auth for @wyre-ai/* + @wyre-technology/*
npm install
npm run build
node dist/index.js                        # stdio (default; no S2S secret)
# HTTP refuses to start until CONDUIT_S2S_SECRET is a real secret
CONDUIT_S2S_SECRET="$CONDUIT_S2S_SECRET" MCP_TRANSPORT=http node dist/index.js
# Local HTTP only, without a service-to-service secret (always binds 127.0.0.1)
MCP_ALLOW_INSECURE_DEV=1 MCP_TRANSPORT=http node dist/index.js
node scripts/smoke-dual-era.mjs           # proves both protocol eras serve the same tools

Docker(フリートの規定により linux/amd64)。イメージはコンテナー内で 0.0.0.0(MCP_HTTP_HOST)をリッスンし、デフォルトで AUTH_MODE=gateway を使用します。ポートはループバックに公開し、実際の S2S シークレットを渡してください。ゲートウェイモードでは、Mailprotector の認証情報は各リクエストのヘッダーで渡され、環境変数から読み込まれることはありません。

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

CONDUIT_S2S_SECRET が未設定の場合、Compose は起動を拒否します。ゲートウェイサービスでは AUTH_MODE=gateway を設定し、MAILPROTECTOR_API_KEY または MAILPROTECTOR_RESELLER_ID を注入せず、127.0.0.1:8080:8080 を公開します。

CONDUIT_S2S_SECRET="$CONDUIT_S2S_SECRET" docker compose up

シングルテナント HTTP(AUTH_MODE=env)でも S2S シークレットが必要です。その後、MAILPROTECTOR_API_KEY と MAILPROTECTOR_RESELLER_ID を使用します。上記のゲートウェイ Compose サービスとは別のものです。

docker run \
  -e CONDUIT_S2S_SECRET="$CONDUIT_S2S_SECRET" \
  -e AUTH_MODE=env \
  -e MAILPROTECTOR_API_KEY=... \
  -e MAILPROTECTOR_RESELLER_ID=... \
  -p 127.0.0.1:8080:8080 \
  mailprotector-mcp

Wire に関する注意事項(想定されるデュアル時代の動作)

  • レガシー時代の POST レスポンスは SSE 形式(text/event-stream)です — 最後の data: 行を解析してください。
  • レガシー時代の GET/DELETE セッション操作は 405 を返します。ステートレスなサービスにはセッションがありません。

ライセンス

Apache-2.0

コメント

MCP は初めてですか?

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

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