mcpField
S
SpamTitan

SpamTitan

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

SpamTitan について

SpamTitan は、SpamTitan のメールセキュリティを管理するチーム向けの MCP サーバーです。隔離メール、許可・ブロックリスト、フィルタリング統計を扱え、MCP Apps 対応ホストではメール詳細を読み取り専用カードで表示できます。

主な機能

  1. 01許可リストとブロックリストの管理
  2. 02メール隔離の確認と管理
  3. 03フィルタリング統計とレポートの表示
  4. 04隔離メールのインタラクティブカード表示

活用シーン

  1. 01隔離メールの確認
  2. 02メールの許可・ブロックリストの更新
  3. 03メールフィルタリング統計の確認
  4. 04MCP Apps 対応ホストでメールを調査

MCP 対応

SpamTitan の隔離、リスト管理、統計機能を MCP クライアントに提供します。隔離メールのツールは MCP Apps 対応ホストで読み取り専用のカードを表示できます。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"wyre-technology-spamtitan": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"SPAMTITAN_API_URL",
"-e",
"SPAMTITAN_API_KEY",
"-e",
"MCP_TRANSPORT",
"-e",
"AUTH_MODE",
"-e",
"LOG_LEVEL",
"ghcr.io/wyre-technology/spamtitan-mcp:v1.3.2"
],
"env": {
"SPAMTITAN_API_URL": "<SPAMTITAN_API_URL>",
"SPAMTITAN_API_KEY": "<SPAMTITAN_API_KEY>",
"MCP_TRANSPORT": "<MCP_TRANSPORT>",
"AUTH_MODE": "<AUTH_MODE>",
"LOG_LEVEL": "<LOG_LEVEL>"
}
}
}
}
起動コマンドdocker run -i --rm -e SPAMTITAN_API_URL -e SPAMTITAN_API_KEY -e MCP_TRANSPORT -e AUTH_MODE -e LOG_LEVEL ghcr.io/wyre-technology/spamtitan-mcp:v1.3.2
設定が必要な環境変数
SPAMTITAN_API_URLSpamTitan API base URL (e.g. https://spamtitan.example.com/api)
SPAMTITAN_API_KEYシークレットSpamTitan API key for authentication
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 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
ocighcr.io/wyre-technology/spamtitan-mcp:v1.3.2

ツール

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

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

詳細

SpamTitan MCP サーバー

License Node.js

SpamTitan のメールセキュリティ向け Model Context Protocol(MCP)サーバーです。AI アシスタントが隔離メールを管理し、許可リストとブロックリストを維持し、メールフィルタリングの統計情報を確認できるようにします。

これは、Claude(または MCP 対応の任意の AI)を SpamTitan 環境に接続する Model Context Protocol(MCP) サーバーです。

MSP Claude Plugins エコシステムの一部 — MSP スタック向けの AI 連携機能を拡充するスイートです。MSP が MSP のために構築しています。

インストール

npm install @wyre-ai/spamtitan-mcp

設定

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

変数必須説明
SPAMTITAN_API_KEYstdio および AUTH_MODE=env の場合SpamTitan API キー
SPAMTITAN_BASE_URLいいえパスプレフィックスを含む SpamTitan インスタンスの URL(例:https://mail.example.com/spamtitan/)。デフォルトは https://api-spamtitan.titanhq.com です。ゲートウェイモードでは、リクエストごとの X-SpamTitan-Base-URL ヘッダーが優先されます。
MCP_TRANSPORTいいえstdio(デフォルト)または http
AUTH_MODEいいえgateway(Docker イメージおよび Compose)または env。ゲートウェイモードでは、各 /mcp リクエストに X-SpamTitan-API-Key が必要で、SPAMTITAN_API_KEY へのフォールバックは行いません。env は S2S 認証の成功後にのみこの変数を使用します。未設定の場合は env になります(stdio およびシングルテナント HTTP)。
CONDUIT_S2S_SECRETHTTP の場合は必須サービス間共有シークレット。この値が空、または既知のプレースホルダー(changeme、secret、replace-me、your-s2s-secret、replace-with-a-real-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 を使用しません。

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-SpamTitan-API-Key: $SPAMTITAN_API_KEY" \
  -H "X-SpamTitan-Base-URL: $SPAMTITAN_BASE_URL" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

AUTH_MODE=gateway の場合、/mcp には X-SpamTitan-API-Key も必要です。このヘッダーのみがリクエストの API キーとして使用されます。X-SpamTitan-Base-URL は任意で、指定するとテナントのインスタンスを選択します。AUTH_MODE=env でも署名付きの X-Gateway-S2S ヘッダーは必要です。その後、環境変数の SPAMTITAN_API_KEY と SPAMTITAN_BASE_URL が使用されます。

使用方法

Claude Desktop で実行する

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

{
  "mcpServers": {
    "spamtitan-mcp": {
      "command": "npx",
      "args": ["@wyre-ai/spamtitan-mcp"],
      "env": {
        "SPAMTITAN_API_KEY": "your-spamtitan-api-key"
      }
    }
  }
}
Claude Code(CLI)で実行する
claude mcp add spamtitan-mcp \
  -e SPAMTITAN_API_KEY=your-value \
  -- npx -y @wyre-ai/spamtitan-mcp
Docker

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

docker build -t spamtitan-mcp .
docker run \
  -e CONDUIT_S2S_SECRET="$CONDUIT_S2S_SECRET" \
  -p 127.0.0.1:8080:8080 \
  spamtitan-mcp

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

CONDUIT_S2S_SECRET="$CONDUIT_S2S_SECRET" docker compose up

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

docker run \
  -e CONDUIT_S2S_SECRET="$CONDUIT_S2S_SECRET" \
  -e AUTH_MODE=env \
  -e SPAMTITAN_API_KEY=your-value \
  -e SPAMTITAN_BASE_URL=https://mail.example.com/spamtitan/ \
  -p 127.0.0.1:8080:8080 \
  spamtitan-mcp

シークレットなしのローカル HTTP は、開発専用です。127.0.0.1 にバインドし、警告をログに記録します。ループバック以外の MCP_HTTP_HOST(イメージのデフォルトである 0.0.0.0 を含む)を指定すると、起動時に終了します。

MCP_TRANSPORT=http MCP_HTTP_HOST=127.0.0.1 MCP_ALLOW_INSECURE_DEV=1 npm start

利用可能なドメイン

リスト

許可リストとブロックリストを管理します

隔離

メールの隔離を確認、管理します

統計

メールフィルタリングの統計情報とレポート

機能

  • 隔離されたメッセージのインタラクティブカード(MCP Apps、SEP-1865) — spamtitan_get_message は MCP Apps ホスト(Claude Desktop/web)で読み取り専用のインタラクティブカードとして表示されます。他のホストでは、プレーンな JSON の動作に変更はありません。カードはデフォルトで中立的なデザインで、window.__BRAND__ の注入または MCP_BRAND_* 環境変数(MCP_BRAND_NAME、MCP_BRAND_LOGO_URL、MCP_BRAND_PRIMARY_COLOR、MCP_BRAND_ACCENT_COLOR、MCP_BRAND_BG、MCP_BRAND_TEXT)でブランド設定できます。再ビルドは不要です。ui/ の編集後に npm run build:ui を実行してカードバンドルを再ビルドしてください。

開発

# Clone the repository
git clone https://github.com/WYRE-AI/spamtitan-mcp.git
cd spamtitan-mcp

# Install dependencies
npm install

# Build
npm run build

# Run tests
npm test

# HTTP refuses to start until CONDUIT_S2S_SECRET is a real secret
MCP_TRANSPORT=http CONDUIT_S2S_SECRET="$CONDUIT_S2S_SECRET" npm start

# Local HTTP only, without a service-to-service secret (binds 127.0.0.1)
MCP_TRANSPORT=http MCP_HTTP_HOST=127.0.0.1 MCP_ALLOW_INSECURE_DEV=1 npm start

貢献

貢献を歓迎します!CONTRIBUTING.md がある場合はご確認ください。または、変更について話し合うために issue を作成してください。

ライセンス

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

コメント

MCP は初めてですか?

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

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