email について
@wraps.dev/mcpは、メール送信やアカウント・配信状況の確認を必要とするAIエージェント向けのAmazon SESサーバーです。stdio経由でローカル実行され、AWS認証情報を端末内に保ちます。設定するとWrapsの履歴・イベント用ツールも利用できます。
主な機能
- 01Amazon SES経由のメール送信
- 02ドメイン認証とDKIMの確認
- 03抑制リストとサンドボックス状態の確認
- 04最近の送信と配信イベントの確認
- 05宛先制限による送信範囲の管理
- 06任意の強制モード承認
活用シーン
- 01AIワークフローからトランザクションメールを送る
- 02SESドメインの送信準備状況を確認する
- 03送信前に抑制リストの項目を確認する
- 04配信、バウンス、苦情、開封、クリックを追跡する
MCP 対応
MCPサーバーは、メール送信とSES設定、抑制リスト、状態の確認に使うツールを公開します。Wrapsイベントパイプラインを設定すると、送信履歴と配信イベントのツールも利用できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y @wraps.dev/mcpAWS_REGIONRegion your Wraps stack is deployed in. Optional only if your active AWS profile supplies one — SES identities are per-region.AWS_PROFILEAWS profile to use. Credentials are read locally and never leave the machine.WRAPS_WRITE_ENABLEDSet to true to enable the send_email tool. Read-only by default.WRAPS_FROM_EMAILDefault from address for send_email. Must be a domain verified in your SES account.WRAPS_ALLOWED_RECIPIENTSComma-separated addresses the agent may send to. Restricts send_email when write mode is on.WRAPS_ALLOWED_RECIPIENT_DOMAINSComma-separated domains the agent may send to. Matching is exact; list subdomains explicitly.WRAPS_HISTORY_TABLE_NAMEDynamoDB table holding email history. Defaults to wraps-email-history.ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
7掲載時のツール一覧 · 4 日前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| to | any | はい | 受信者のアドレス、または最大 1000 件のアドレスの配列。 |
| from | string | いいえ | 送信者のアドレス。このアカウントで検証済みの SES ID である必要があります。デフォルトは WRAPS_FROM_EMAIL です。 |
| html | string | いいえ | HTML 本文。`html`、`text` のいずれか、または両方を指定してください。少なくとも一方が必要です。 |
| text | string | いいえ | プレーンテキストの本文です。`html`、`text`、または両方を指定してください。少なくとも一方が必要です。 |
| subject | string | はい | 件名。 |
詳細
@wraps.dev/mcp
Amazon SES 向けの MCP サーバーです。AI エージェントが独自の AWS アカウントからメールを送信したり、ドメインの検証状況と DKIM を確認したり、抑制リストを検索したり、アカウントがまだ SES サンドボックス内にあるかどうかを確認したりできます。
どの SES アカウントでも利用できます。Wraps は送信履歴と配信イベントを追加します。
stdio 経由でローカル実行します。AWS 認証情報がマシンの外部に送信されることはありません。
前提条件
- 環境に設定された AWS 認証情報(プロファイル、SSO、または環境変数)
- 指定するリージョンの SES アカウント
list_recent_sendsとget_email_event_logのみ:npx @wraps.dev/cli email initでデプロイされた Wraps イベントパイプライン
ツール
| ツール | 説明 | Wraps が必要? | 書き込み? |
|---|---|---|---|
send_email | SES アカウント経由でトランザクションメールを送信します | いいえ | はい — WRAPS_WRITE_ENABLED=true が必要です |
verify_domain_status | 送信ドメインの検証状況と DKIM 状況を確認します | いいえ | いいえ |
list_suppressions | SES の抑制リストに登録されたアドレスを一覧表示します(ページネーション対応、明示的な切り捨て通知付き)。または email で特定のアドレスを正確に確認します | いいえ | いいえ |
get_setup_status | アカウントが SES サンドボックス内にあるかどうかを確認し、最初の送信に向けた次の手順を取得します | いいえ | いいえ |
estimate_cost | 送信量に応じた Wraps と AWS の月額費用を見積もります。アカウントの SES 料金プランも含みます。AWS 認証情報は不要です | いいえ | いいえ |
list_recent_sends | メール履歴から最近の送信を一覧表示します | はい | いいえ |
get_email_event_log | メッセージの配信イベントログ全体を取得します(Send、Delivery、Bounce、Complaint、Open、Click) | はい | いいえ |
check_send_status | approvalId で pending_approval 状態の送信結果をポーリングします(強制モードのみ) | はい | いいえ |
セットアップ
Claude Desktop
~/Library/Application Support/Claude/claude_desktop_config.json に追加します。
{
"mcpServers": {
"wraps": {
"command": "npx",
"args": ["-y", "@wraps.dev/mcp"],
"env": {
"AWS_REGION": "us-east-1",
"AWS_PROFILE": "your-aws-profile"
}
}
}
}
Claude Code
プロジェクトのルートにある .mcp.json に追加します。
{
"mcpServers": {
"wraps": {
"command": "npx",
"args": ["-y", "@wraps.dev/mcp"],
"env": {
"AWS_REGION": "us-east-1"
}
}
}
}
AWS_REGION は、Wraps スタックをデプロイしたリージョンに設定してください。SES のアイデンティティはリージョンごとに管理されるため、別のリージョンで検証されたドメインは「見つかりません」と表示されます。Claude Code はシェルの AWS 環境を引き継ぐため、AWS_REGION(またはアクティブな AWS プロファイルのリージョン)がすでに設定されていれば、env ブロック全体を省略できます。どちらからもリージョンが指定されていない場合、サーバーは起動時にエラーになります。
設定
設定はすべて環境変数で行います。
| 変数 | 必須 | デフォルト | 説明 |
|---|---|---|---|
AWS_REGION | はい* | — | Wraps スタックをデプロイした AWS リージョンです。*アクティブな AWS プロファイル(~/.aws/config)でリージョンが指定されていない場合は必須です。サーバーは AWS_REGION、AWS_DEFAULT_REGION、プロファイルの順に解決し、いずれにも指定がない場合は起動時にエラーになります。 |
WRAPS_HISTORY_TABLE_NAME | いいえ | wraps-email-history | メール履歴用の DynamoDB テーブル名 |
WRAPS_ACCOUNT_ID | いいえ | STS 経由で自動検出 | AWS アカウント ID(設定すると STS の呼び出しを省略します) |
WRAPS_WRITE_ENABLED | いいえ | false | send_email を有効にするには true に設定します |
WRAPS_FROM_EMAIL | いいえ | — | send_email のデフォルトの from アドレス |
書き込みモード
send_email はデフォルトで無効です。有効にするには WRAPS_WRITE_ENABLED=true を設定します。from アドレスには、SES アカウントで検証済みのドメインを指定する必要があります。
{
"mcpServers": {
"wraps": {
"command": "npx",
"args": ["-y", "@wraps.dev/mcp"],
"env": {
"AWS_REGION": "us-east-1",
"WRAPS_WRITE_ENABLED": "true",
"WRAPS_FROM_EMAIL": "[email protected]"
}
}
}
}
送信のガードレール
書き込みモードが有効な場合、send_email ツールはデフォルトで、SES で検証済みの任意のアドレスに送信できます。エージェントの送信範囲を制限するには、次の環境変数を使用します。
| 変数 | デフォルト | 説明 |
|---|---|---|
WRAPS_ALLOWED_RECIPIENTS | —(制限なし) | エージェントが送信できる完全一致のアドレスをカンマ区切りで指定します。設定すると、このリストまたは WRAPS_ALLOWED_RECIPIENT_DOMAINS に含まれないアドレスは拒否されます。 |
WRAPS_ALLOWED_RECIPIENT_DOMAINS | —(制限なし) | エージェントが送信できるドメインをカンマ区切りで指定します(例:company.com,partner.org)。WRAPS_ALLOWED_RECIPIENTS と併用でき、どちらかのリストに一致すれば宛先は許可されます。一致判定は完全一致です。example.com では [email protected] は許可されますが、[email protected] のようなサブドメインは許可されません。サブドメインは個別に指定してください。 |
WRAPS_MAX_RECIPIENTS | 50 | send_email の呼び出しごとに指定できる宛先の最大数です。 |
WRAPS_ALLOW_FROM_OVERRIDE | false | true に設定すると、エージェントが WRAPS_FROM_EMAIL とは異なる from アドレスを指定できるようになります。false(デフォルト)の場合、呼び出し元が指定した from が設定済みのアドレスと一致しなければ拒否されます。 |
注:
WRAPS_WRITE_ENABLED=trueを設定し、許可リストを指定せずに実行すると、エージェントは SES アカウント内の任意のアドレスに制限なく送信できます。
不足している入力の確認(エリシテーション)
MCP クライアントがエリシテーションに対応している場合、send_email は、入力が不足していても失敗する代わりに、その入力を求めます。通常の送信について確認を求めることはなく、上記の書き込み、宛先数、許可リストの各チェックを通過した後にのみ入力を求めます。
- 送信者が未指定の場合。 呼び出しに
fromがなく、WRAPS_FROM_EMAILも設定されていない場合、クライアントは送信者アドレスの入力を求めます。 - SES サンドボックスの場合。 アカウントがサンドボックス内にあるため SES が宛先を拒否すると、クライアントは代わりに AWS メールボックスシミュレーター(
[email protected])へメッセージを送信することを提案します。これにより送信が機能することを確認できます。この処理は一度だけ行われ、シミュレーターのアドレスも宛先の許可リストを通過する必要があります。結果には、元の宛先ではなくシミュレーターにメッセージが送信されたことが示されます。
拒否またはキャンセルした場合、あるいはクライアントがエリシテーションに対応していない場合は、以前と同じエラーが返されます。設定は不要です。強制モードではエリシテーションを使用せず、承認はオペレーターが行います。
強制モード(エージェント強制機能)
wraps email agent create でプロビジョニングされたエージェントでは、MCP サーバーは強制モードで動作します。エージェントの AWS 認証情報で呼び出せるのは、お客様側の強制機能 Lambda のみであり、SES を直接呼び出すことはできません。すべてのポリシー(キルスイッチ、宛先許可リスト、時間単位/日単位の上限)はその Lambda が判断するため、上記のローカルガードレールは適用されません。
| 変数 | 必須 | 説明 |
|---|---|---|
WRAPS_AGENT_ID | はい(強制モードの場合) | エージェントの ID です。強制機能関数とともに設定すると、強制モードが有効になります。 |
WRAPS_AGENT_ENFORCER_ARN | はい(強制モードの場合) | お客様の wraps-agent-enforcer Lambda のエージェントごとの修飾済みエイリアス ARN(arn:aws:lambda:<region>:<acct>:function:wraps-agent-enforcer:agent-<agentId>)です。関数名のみ、または修飾されていない ARN を指定すると $LATEST が呼び出されます。この場合、強制機能はエージェントをプラットフォーム呼び出し元とみなし、エージェントからの送信をブロックします。 |
両方が設定されている場合、send_email は SES の代わりに強制機能を呼び出し、ポリシーによる判定結果をエラーではなく構造化された処理結果として返します。
sent— 配信され、messageIdが返されます。pending_approval— オペレーターの承認が必要です。返されたapprovalIdを指定してcheck_send_statusをポーリングしてください。blocked— ポリシー(キルスイッチ、許可リスト、または上限)により拒否されました。reasonが返されます。
エラーとして返されるのは、転送または設定に関する失敗のみです。check_send_status ツールは強制モードでのみ登録されます。
強制モードでは、1 回の送信につき宛先は 1 件のみです。アドレスを文字列で渡すか、要素が 1 つの配列を渡してください。複数の宛先を含む to 配列はエラーとして拒否されます(宛先ごとに 1 通ずつ送信してください)。WRAPS_ALLOWED_RECIPIENTS、WRAPS_ALLOWED_RECIPIENT_DOMAINS、WRAPS_MAX_RECIPIENTS、WRAPS_ALLOW_FROM_OVERRIDE は強制モードでは適用されません。宛先と送信者のポリシーはすべて Lambda によって強制されます。
返信とスレッド化
強制モードの send_email は、会話形式の送信(SDR シーケンス、日程調整のフォローアップなど、人が返信する可能性のある送信)向けに、3 つの任意フィールドを受け付けます。
| フィールド | 用途 |
|---|---|
replyTo | 人からの返信を受け取る単一のアドレスです。指定しない場合、返信はエージェント自身のメールボックスに届きます。これは support@ には適していますが、人に会話を引き継いでもらう場合には適していません。 |
inReplyTo | 返信対象のメッセージの Message-ID です。例:<[email protected]>。 |
references | それまでの会話の Message-ID を空白区切りでつないだものです。フォローアップがスレッド化されずに単独で届くのを防ぐため、inReplyTo と併せて設定してください。 |
replyTo を指定しても、送信者の固定は緩和されません。from は引き続きエージェント自身の検証済み ID に強制されます。replyTo にチームメイトを指定するのは想定された使い方です。強制機能は、複数のアドレスを含む replyTo を拒否し、改行や印字不可文字を含む inReplyTo/references も拒否します。いずれの場合も、理由を含む blocked 処理結果が返され、レート制限の枠は消費されません。
@wraps/core 2026-08-28 以降からビルドされた強制機能 Lambda が必要です。古い強制機能を使用した場合、これらのフィールドはエラーにならず無視されます。
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。