Resend Email
公式エディタから直接Resend APIを使ってメールを送信します。
Resend Email MCPで何ができますか?
- トランザクションメールの送信 — アシスタントに依頼して、添付ファイル、CC/BCC、カスタムヘッダー付きのHTMLまたはプレーンテキストメールを作成・送信します(
https://mcp.resend.com/mcp経由)。 - メールテンプレートの管理 — アシスタントに依頼して、再利用可能なキャンペーン用に
{{{VARIABLE}}}プレースホルダーを使ったテンプレートの作成、更新、公開、複製を行います。 - 配信とエンゲージメントの追跡 — アシスタントに依頼して、送信済みメールの一覧表示や配信メトリクスの取得、または送信予定のスケジュール済みメールのキャンセルを行います。
- 受信メールの処理 — アシスタントに依頼して、受信メッセージの読み取りや、Resend受信トレイから添付ファイルを直接ダウンロードします。
- 連絡先とオーディエンスの管理 — アシスタントに指示して、連絡先の作成、更新、セグメント化、およびカスタムプロパティ付きのCSVリストのインポートを行います。
- API使用状況の監視 — アカウントレベルの割り当て量とレート制限情報をリクエストして、メールインフラストラクチャを把握します。
ホスト型 MCP サーバー
npx add-mcp 'https://mcp.resend.com/mcp'Claude Code、Codex、Cursor などにインストールできます
ドキュメント
Resend MCP サーバー
AIエージェントをResendプラットフォームに接続します。Claude、Cursor、Claude CodeなどのあらゆるMCPクライアントから、メールの送受信、連絡先、ブロードキャスト、ドメインなどの管理を直接行えます。
ResendがホストするリモートMCPサーバーとローカルMCPサーバー(このパッケージ)の両方を提供しています。
リモートMCPサーバー
ResendはMCPサーバーを次の場所でホストしています:
https://mcp.resend.com/mcp
リモートサーバー(Streamable HTTP)をサポートする任意のMCPクライアントを接続できます。インストールするものはなく、ローカルプロセスを実行する必要もないため、ClaudeのようなWebベースのクライアントやホスト型エージェントプラットフォームに最適なオプションです。
接続すると、クライアントはブラウザウィンドウを開いてResendにログインし、OAuthを使用してアクセスを承認します。
Claude Code
claude mcp add --transport http resend https://mcp.resend.com/mcp
次に、Claude Codeで /mcp を実行し、resend を選択してOAuthログインを完了します。
Claude
Claude(Webまたはデスクトップ)で、設定 > コネクタ > カスタムコネクタを追加 を開き、次を入力します:
https://mcp.resend.com/mcp
Cursor
コマンドパレットを開き、「Cursor Settings」>「MCP」>「Add new global MCP server」を選択します。
{
"mcpServers": {
"resend": {
"url": "https://mcp.resend.com/mcp"
}
}
}
Codex
codex mcp add resend --url https://mcp.resend.com/mcp
Copilot
VS CodeでGitHub Copilotを使用するには、settings.json に次を追加します:
{
"mcp": {
"servers": {
"resend": {
"type": "http",
"url": "https://mcp.resend.com/mcp"
}
}
}
}
Windsurf
{
"mcpServers": {
"resend": {
"serverUrl": "https://mcp.resend.com/mcp"
}
}
}
Warp
Warpの設定で、エージェント > MCPサーバー に移動し、+追加 をクリックして新しいサーバーを追加します。
{
"resend": {
"serverUrl": "https://mcp.resend.com/mcp"
}
}
APIキーでの認証
ブラウザログインができない環境(サーバー、CI、ヘッドレスエージェント)でクライアントを実行する場合は、OAuthの代わりにResend APIキーをBearerトークンとして渡します。
Claude Code:
claude mcp add --transport http resend https://mcp.resend.com/mcp --header "Authorization: Bearer re_xxxxxxxxx"
JSON設定(Cursor、Windsurfなど)には、Authorization ヘッダーを追加します:
{
"mcpServers": {
"resend": {
"url": "https://mcp.resend.com/mcp",
"headers": {
"Authorization": "Bearer re_xxxxxxxxx"
}
}
}
}
ローカルMCPサーバー
ホスト型サーバーは、NPMでresend-mcpとして利用可能な同じオープンソースコードを実行しています。サーバーを自分で実行したい場合は、npx を使用してサポートされている任意のMCPクライアントに統合できます。次のものが必要です:
ローカルサーバーは、stdio(デフォルト)とHTTPの2つのトランスポートモードをサポートしています。
好みのモードとクライアントを選択して開始してください。re_xxxxxxxxx を実際のAPIキーに置き換えることを忘れないでください。
Stdioトランスポート(デフォルト)
クイックセットアップ
検出されたすべてのエージェント/エディタにインストール:
npx add-mcp resend-mcp --name resend --env "RESEND_API_KEY=re_xxxxxxxxx"
Claude Code
claude mcp add resend -e RESEND_API_KEY=re_xxxxxxxxx -- npx -y resend-mcp
Codex
codex mcp add resend \
--env RESEND_API_KEY=re_xxxxxxxxx \
-- npx -y resend-mcp
Cursor
コマンドパレットを開き、「Cursor Settings」>「MCP」>「Add new global MCP server」を選択します。
{
"mcpServers": {
"resend": {
"command": "npx",
"args": ["-y", "resend-mcp"],
"env": {
"RESEND_API_KEY": "re_xxxxxxxxx"
}
}
}
}
Claude Desktop
Claude Desktopの設定 >「開発者」タブ >「設定を編集」を開きます。
{
"mcpServers": {
"resend": {
"command": "npx",
"args": ["-y", "resend-mcp"],
"env": {
"RESEND_API_KEY": "re_xxxxxxxxx"
}
}
}
}
Copilot
VS CodeでGitHub Copilotを使用するには、settings.json に次を追加します:
{
"mcp": {
"servers": {
"resend": {
"command": "npx",
"args": ["-y", "resend-mcp"],
"env": {
"RESEND_API_KEY": "re_xxxxxxxxx"
}
}
}
}
}
Gemini CLI
{
"mcpServers": {
"resend": {
"command": "npx",
"args": ["-y", "resend-mcp"],
"env": {
"RESEND_API_KEY": "re_xxxxxxxxx"
}
}
}
}
OpenCode
opencode.json 設定に追加:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"resend": {
"type": "local",
"command": ["npx", "-y", "resend-mcp"],
"enabled": true,
"environment": {
"RESEND_API_KEY": "re_xxxxxxxxx"
}
}
}
}
Windsurf
{
"mcpServers": {
"resend": {
"command": "npx",
"args": ["-y", "resend-mcp"],
"env": {
"RESEND_API_KEY": "re_xxxxxxxxx"
}
}
}
}
Devin
Devinで、設定 > 接続 > MCPサーバー を開き、カスタムMCPを追加 をクリックします。完全な手順についてはDevinガイドを参照してください。
{
"mcpServers": {
"resend": {
"command": "npx",
"args": ["-y", "resend-mcp"],
"env": {
"RESEND_API_KEY": "re_xxxxxxxxx",
"SENDER_EMAIL_ADDRESS": "onboarding@resend.dev"
}
}
}
}
HTTPトランスポート
Resendのホスト型リモートMCPサーバーの代わりに、独自のトンネルやリバースプロキシの背後など、リモートまたはWebベースの統合のためにHTTPでサーバーを実行します。HTTPモードでは、各クライアントはAuthorization ヘッダーでResend APIキーをBearerトークンとして渡して認証します。
サーバーを起動:
npx -y resend-mcp --http --port 3000
サーバーはhttp://127.0.0.1:3000 でリッスンし、Streamable HTTPを使用して/mcp でMCPエンドポイントを公開します。
Claude Code
claude mcp add resend --transport http http://127.0.0.1:3000/mcp --header "Authorization: Bearer re_xxxxxxxxx"
Cursor
コマンドパレットを開き、「Cursor Settings」>「MCP」>「Add new global MCP server」を選択します。
{
"mcpServers": {
"resend": {
"url": "http://127.0.0.1:3000/mcp",
"headers": {
"Authorization": "Bearer re_xxxxxxxxx"
}
}
}
}
MCP_PORT 環境変数でポートを設定することもできます:
MCP_PORT=3000 npx -y resend-mcp --http
ライブラリとしての使用
HTTPトランスポートはエクスポートされているため、CLI経由で実行する代わりに別のサービスに埋め込むことができます。接続する各クライアントは、Bearerトークンとして渡される独自のResend APIキーで認証します。
import { runHttp } from 'resend-mcp/http';
// Options are optional — pass `senderEmailAddress` / `replierEmailAddresses`
// to set defaults. Binds the port and returns the Node http.Server, exposing
// the MCP endpoint at POST/GET/DELETE /mcp and a GET /health check.
const server = await runHttp({}, 3000);
デフォルトでは、サーバーはlocalhostのみのHost 検証(DNSリバインディング保護)を適用します。リバースプロキシやロードバランサーの背後にデプロイする場合、サーバーがリクエストごとのBearer APIキーで保護されているため、host を 0.0.0.0 に設定して、プロキシの転送されたHost とロードバランサーのヘルスチェックが403 Invalid Host で拒否されないようにします:
const server = await runHttp({}, 3000, { host: '0.0.0.0' });
// or pin specific hostnames instead of disabling validation:
const server = await runHttp({}, 3000, { allowedHosts: ['mcp.example.com'] });
CLI経由では、これは--host / --allowed-hosts(またはMCP_HOST / MCP_ALLOWED_HOSTS)にマッピングされます。
オプション
ローカルサーバーを設定するための追加引数を渡すことができます:
--key:Resend APIキー(stdioモードのみ。HTTPモードはクライアントからのBearerトークンを使用するため)--sender:検証済みドメインからのデフォルトの送信者メールアドレス--reply-to:デフォルトの返信先メールアドレス(複数回指定可能)--http:stdioの代わりにHTTPトランスポートを使用(デフォルト:stdio)--port:--http使用時のHTTPポート(デフォルト:3000、またはMCP_PORT環境変数)--host:--http使用時のDNSリバインディング保護用ホスト(デフォルト:127.0.0.1、またはMCP_HOST)。プロキシ/ロードバランサーの背後でHost検証を無効にするには0.0.0.0に設定します。--allowed-hosts:--http(またはMCP_ALLOWED_HOSTS)使用時のカンマ区切りのHost許可リスト
環境変数:
RESEND_API_KEY:Resend APIキー(stdioでは必須、HTTPではクライアントがBearerトークンで渡すため任意)SENDER_EMAIL_ADDRESS:検証済みドメインからのデフォルトの送信者メールアドレス(任意)REPLY_TO_EMAIL_ADDRESSES:カンマ区切りの返信先メールアドレス(任意)MCP_PORT:--http使用時のHTTPポート(任意)MCP_HOST:--http使用時のDNSリバインディング保護用ホスト(任意)MCP_ALLOWED_HOSTS:--http使用時のカンマ区切りのHost許可リスト(任意)
[!NOTE] 送信者メールアドレスを指定しない場合、MCPサーバーはツールを呼び出すたびに送信者メールアドレスの入力を求めます。
MCPサーバーツール
ResendのMCPサーバーは、単一の統合を通じてAIエージェントにResendプラットフォーム全体へのネイティブアクセスを提供します。自然言語を使用してメールインフラストラクチャのすべての側面を管理できます。
- メール:メールの送信、一覧表示、取得、キャンセル、更新、共有、一括送信。配信およびエンゲージメント指標の取得。HTML、プレーンテキスト、添付ファイル(ローカルファイル、URL、base64)、CC/BCC、返信先、スケジュール、タグ、カスタムヘッダー、トピックベースの送信、冪等性キーをサポート。
- 受信メール:受信メールの一覧表示と読み取り。受信メールの添付ファイルの一覧表示とダウンロード。
- テンプレート:メールテンプレートの作成、一覧表示、取得、更新、公開、複製、削除。テンプレートコンテンツの作成と
{{{VARIABLE}}}プレースホルダーをサポート。 - 連絡先:連絡先の作成、一覧表示、取得、更新、削除。セグメントメンバーシップ、トピック購読、CSV連絡先インポートの管理。カスタム連絡先プロパティをサポート。
- ブロードキャスト:ブロードキャストキャンペーンの作成、送信、キャンセル、複製、一覧表示、取得、更新、削除。ブロードキャストのクリックされたリンクと、イベントタイプ(送信、配信、開封、クリック、バウンス、苦情、購読解除、抑制)ごとの受信者を一覧表示。スケジュール、パーソナライゼーションプレースホルダー、プレビューテキストをサポート。
- オートメーション:オートメーションの作成、一覧表示、取得、更新、複製、削除。オートメーションの実行を確認。
- イベント:連絡先のオートメーションをトリガーするイベントを送信。イベント定義の作成、更新、削除。
- ドメイン:送信者ドメインの作成、一覧表示、取得、更新、削除、検証。トラッキング、TLS、送受信機能の設定。ドメインクレームの作成と検証。
- セグメント:オーディエンスセグメントの作成、一覧表示、取得、更新、削除。
- 抑制:抑制リストエントリの一覧表示、取得、追加、削除(個別または一括)。ハードバウンスとスパム苦情は自動的に抑制されます。連絡禁止リクエストを尊重するためにアドレスを手動で追加します。
- トピック:購読トピックの作成、一覧表示、取得、更新、削除。
- 連絡先プロパティ:カスタム連絡先属性の作成、一覧表示、取得、更新、削除。
- APIキー:APIキーの作成、一覧表示、更新、削除。
- Webhook:イベント通知用のWebhookの作成、一覧表示、取得、更新、削除、およびその配信履歴の確認 — Webhookに送信されたイベント、1つのイベントのペイロード、配信試行。イベントを再生して別の配信をキューに入れ、Webhookの署名シークレットをローテーション。
- ログ:APIリクエストログの一覧表示と確認(完全なリクエストおよびレスポンス本文を含む)。
- 使用状況:アカウントレベルの使用状況とクォータ情報の取得:メール、連絡先、セグメント、ブロードキャスト、AIクレジット、オートメーション実行、ドメイン、APIレート制限。
- エディタ:Resendダッシュボードのビジュアルエディタへの接続(および切断)、ブロードキャストとテンプレートの共同作業中のドラフトコンテンツの読み取り。
ローカル開発
- このプロジェクトをクローンしてビルド:
git clone https://github.com/resend/resend-mcp.git
pnpm install
pnpm run build
- ローカルビルドを使用するには、
npxコマンドをローカルビルドへのパスに置き換えます:
Claude Code(stdio):
claude mcp add resend -e RESEND_API_KEY=re_xxxxxxxxx -- node ABSOLUTE_PATH_TO_PROJECT/dist/index.js
Claude Code(HTTP):
claude mcp add resend --transport http http://127.0.0.1:3000/mcp --header "Authorization: Bearer re_xxxxxxxxx"
Cursor / Claude Desktop(stdio):
{
"mcpServers": {
"resend": {
"command": "node",
"args": ["ABSOLUTE_PATH_TO_PROJECT/dist/index.js"],
"env": {
"RESEND_API_KEY": "re_xxxxxxxxx"
}
}
}
}
Cursor(HTTP):
{
"mcpServers": {
"resend": {
"url": "http://127.0.0.1:3000/mcp",
"headers": {
"Authorization": "Bearer re_xxxxxxxxx"
}
}
}
}
MCPクライアントでのライブテスト
開発中は、別の場所でコードを編集しながら、実際のMCPクライアントセッションで変更をテストできます。
考え方:tsc --watch を実行して dist/ を継続的に再ビルドし、別のディレクトリからビルドされた dist/index.js を別のMCPクライアントに向けます。コード変更を反映したい場合は、MCPクライアントセッションを再起動します(MCPサーバーはホットリロードしない長期実行のstdioプロセスです)。
Claude Codeでの例:
-
TypeScriptウォッチャーを実行して、保存時に自動再ビルド:
pnpm tsc --watch -
別のディレクトリで、ビルド出力を指す
.mcp.jsonを作成:mkdir -p /tmp/mcp-test// /tmp/mcp-test/.mcp.json { "mcpServers": { "resend-dev": { "command": "node", "args": ["/absolute/path/to/resend-mcp/dist/index.js"], "env": { "RESEND_API_KEY": "re_xxxxxxxxx" } } } } -
そのディレクトリからClaude Codeを起動し、MCPツールを使用します。コード変更後、新しいClaude Codeセッションを開始して新しいビルドを反映します。
同じ原則が任意のMCPクライアントに適用されます — テスト環境を開発環境から分離し、dist/index.js への絶対パスを使用し、再ビルド後にMCPサーバーに再接続します。
MCPインスペクタでのテスト
注: 最初にプロジェクトをビルドしていることを確認してください(上記のローカル開発セクションを参照)。
Stdioトランスポートの使用
-
APIキーを設定:
export RESEND_API_KEY=re_your_key_here -
インスペクタを起動:
pnpm inspector -
ブラウザ(インスペクタUI)で:
- stdio を選択(プロセスを起動)。
- コマンド:
node - 引数:
dist/index.js(またはdist/index.jsへのフルパス) - 環境変数:
RESEND_API_KEY=re_your_key_here(同じターミナルで既にエクスポートしている場合は空白のままにできます)。 - 接続 をクリックし、「ツールを一覧表示」を使用してサーバーが動作していることを確認します。
HTTPトランスポートの使用
-
1つのターミナルでHTTPサーバーを起動:
node dist/index.js --http --port 3000 -
別のターミナルでインスペクタを起動:
pnpm inspector -
ブラウザ(インスペクタUI)で:
- Streamable HTTP を選択(URLに接続)。
- URL:
http://127.0.0.1:3000/mcp - カスタムヘッダーを追加:
Authorization: Bearer re_your_key_hereでトグルを有効化。 - 接続 をクリックし、「ツールを一覧表示」を使用してサーバーが動作していることを確認します。