Resend MCPサーバーの使い方 — リモートとローカルの選び方
Resend公式のMCPサーバーをClaude Code・Claude Desktop・claude.aiに接続する手順です。OAuthのリモート版とAPIキーのローカル版、どちらを選ぶべきかも扱います。
Resend MCPサーバーとは
Resend MCPをClaude Codeにつなぐなら、claude mcp add --transport http resend https://mcp.resend.com/mcpを実行し、/mcpでresendを選びます。開いたブラウザでResendにログインしてアクセスを許可すれば完了です。ブラウザを開けない環境では、APIキーで動くローカル版を使います。
Resendは開発者向けのメール配信API・プラットフォームです。認証済みの送信ドメインからトランザクションメールやブロードキャストを送る用途で使われています。ResendはこのプラットフォームをMCP(Model Context Protocol)経由でAIエージェントに公開しており、Claudeを含むMCPクライアントから自然言語でメール送信やドメイン管理を操作できます。サンドボックス付きの別サービスなら、Mailtrap MCPの使い方も選べます。
提供形態は2つです。Resend自身がホストするリモートMCPサーバーと、npmパッケージとして配布されるローカルMCPサーバーがあります。使えるツールはほぼ共通です(Inboxesはベータ機能で、リモート版のみです)。ローカル版はnpmに公開されており、2026年10月14日にv2.26.1が公開されています。選ぶ基準になるのは、実行環境がブラウザ操作可能かどうかです。
リモート版とローカル版、どちらを使うか
claude.aiやClaude Desktopのようにブラウザ操作ができる対話環境では、インストール不要なリモート版が向いています。CI・サーバー・ヘッドレスエージェントのようにブラウザログインができない環境では、APIキー認証のローカル版か、リモート版へAPIキーをBearerトークンとして渡す接続方法を選びます。
| 観点 | リモート版 | ローカル版(npx) |
|---|---|---|
| 実体 | リモート版https://mcp.resend.com/mcp(Resendがホスト) | ローカル版(npx)npmパッケージresend-mcpをローカルプロセスとして起動 |
| 認証 | リモート版OAuth(ブラウザでログイン) | ローカル版(npx)環境変数RESEND_API_KEY(stdio)またはBearerトークン(HTTP) |
| 向いている環境 | リモート版claude.ai・Claude Desktop・Claude Codeの対話セッション | ローカル版(npx)CI・サーバー・ヘッドレスエージェント |
| インストール作業 | リモート版不要 | ローカル版(npx)npx -y resend-mcpでオンデマンド起動 |
| 前提条件 | リモート版Resendアカウント | ローカル版(npx)APIキーの発行と送信ドメインの認証 |
Claude Codeでリモート版に接続する
Claude CodeからResendのリモートMCPサーバーに接続するには、claude mcp addコマンドでHTTPトランスポートのサーバーを追加します。
claude mcp add --transport http resend https://mcp.resend.com/mcpリモート版の接続は3段階
- 1
サーバーを追加する
上のコマンドで
resendをHTTPトランスポートとして登録します。この時点ではまだ認証されていません。 - 2
/mcpでresendを選ぶ
Claude Code内で
/mcpを実行し、一覧からresendを選びます。 - 3
ブラウザでサインインして許可する
ResendへのログインとアクセスのOAuth承認が終わると、ツールが使えるようになります。
CIやサーバーなどブラウザ操作ができない環境では、APIキーをBearerトークンとして--headerに渡します。
claude mcp add --transport http resend https://mcp.resend.com/mcp \
--header "Authorization: Bearer re_xxxxxxxxx"--transportや--header、接続範囲を指定する--scopeの詳しい構文はClaude Code MCP設定ガイドにまとめています。既定ではlocalスコープに保存されます。チームで共有したい場合は--scope projectを付けますが、APIキーを付けたまま実行するとキーが共有ファイルに書き込まれます。対処は後述の「チームで共有するときAPIキーを置く場所」で扱います。
claude.aiとClaude Desktopで接続する
claude.aiやClaude Desktopでリモート版に接続する方法は2通りあります。1つは、コネクタディレクトリからワンクリックで追加する方法です。ディレクトリ経由のインストールでは、MCPサーバーと後述のResend Skillが一括でセットされます。
もう1つは手動での追加です。設定 > コネクタ > カスタムコネクタを追加から、次のURLを入力します。
https://mcp.resend.com/mcpこちらはMCPサーバー本体だけを追加する方法で、Resend Skillは含まれません。Skillもまとめて使いたい場合は、次のセクションで扱うプラグイン経由のインストールが近道です。
ローカルMCPサーバーをnpxで動かす
ローカル版を使う前提条件は2つです。ResendのAPIキーを発行しておくことと、送信ドメインを事前に認証しておくことです。
既定のトランスポートはstdioです。claude mcp addに--区切りでコマンドを渡し、-eで環境変数を指定します。
claude mcp add resend -e RESEND_API_KEY=re_xxxxxxxxx -- npx -y resend-mcpリバースプロキシ越しに配置するなど、HTTPトランスポートで動かしたい場合はサーバーを個別に起動してから接続します。
npx -y resend-mcp --http --port 3000claude mcp add resend --transport http http://127.0.0.1:3000/mcp \
--header "Authorization: Bearer re_xxxxxxxxx"主なオプションと環境変数は次の通りです。オプションはresend-mcpのREADME(v2.26.1)に基づきます。
| オプション / 環境変数 | 内容 |
|---|---|
--key / RESEND_API_KEY | 内容APIキー(stdioは必須、HTTPはクライアントがBearerトークンで渡すため任意) |
--sender / SENDER_EMAIL_ADDRESS | 内容認証済みドメインの既定送信元アドレス |
--reply-to / REPLY_TO_EMAIL_ADDRESSES | 内容既定の返信先(複数指定可) |
--http | 内容HTTPトランスポートを使う(既定はstdio) |
--port / MCP_PORT | 内容HTTPポート(既定3000) |
--host / MCP_HOST | 内容Hostバリデーションの対象(既定127.0.0.1) |
--allowed-hosts / MCP_ALLOWED_HOSTS | 内容許可するHostのカンマ区切りリスト |
--allowed-file-dirs / MCP_ALLOWED_FILE_DIRS | 内容添付ファイルとCSVインポートで読み込みを許すディレクトリ(カンマ区切り) |
添付ファイルの送信(send-emailのattachments[].filePath)とCSVインポート(create-contact-import)は、ローカルのファイルを読みます。HTTPトランスポートでは、--allowed-file-dirsを指定しない限り無効です。stdioでは未指定でも読めますが、プロンプトインジェクションで想定外のファイルを添付されないよう、フォルダを絞る運用が考えられます。
送信元アドレスを設定しない場合、ツール呼び出しのたびに送信元を聞かれます。頻繁に使うなら--senderかSENDER_EMAIL_ADDRESSで既定値を決めておくと手間が減ります。
Claude Code・Cursor・Codexなど複数のクライアントへまとめて登録したい場合は、npx add-mcpという汎用インストーラーも使えます。
npx add-mcp resend-mcp --name resend --env "RESEND_API_KEY=re_xxxxxxxxx"自分のNode.jsサービスにHTTPトランスポートを組み込みたい場合は、CLIを経由せずresend-mcp/httpからエクスポートされているrunHttp関数を直接呼び出す方法もあります。既定ではローカルホスト宛てのリクエストのみ受け付けるため、リバースプロキシ配下に置くときはhostオプションを0.0.0.0にするか、allowedHostsで許可するホスト名を個別に指定します。
チームで共有するときAPIキーを置く場所
claude mcp addは、スコープによって書き込み先が変わります。v2.1.289でダミーのキーを渡して実行すると、結果は次のとおりでした。
claude mcp add --transport http --scope project resend-key https://mcp.resend.com/mcp \
--header "Authorization: Bearer re_xxxxxxxxx"
Added HTTP MCP server resend-key with URL: https://mcp.resend.com/mcp to project config
Headers: {
"Authorization": "[REDACTED]"
}
File modified: <プロジェクト>/.mcp.json画面ではヘッダーが[REDACTED]と伏せられますが、書き出された.mcp.jsonには"Authorization": "Bearer re_xxxxxxxxx"が平文で入っています。
スコープで変わるキーの保存先
local(既定)
stdioで-e RESEND_API_KEY=...を渡した場合、キーはユーザー設定の.claude.jsonにある、そのプロジェクトのエントリへ保存されます。リポジトリの外なので、コミットに混ざりません。
project
.mcp.jsonはプロジェクトの直下に作られます。コミットするとチーム全員に共有されるため、キーを書いたままだと履歴にも残ります。
共有したいのはサーバーの定義で、キーそのものではありません。次の方法があります。
- OAuth版を使う。キーが不要なので、
.mcp.jsonにはURLだけが入ります(resend-remoteとして追加した定義はtypeとurlの2項目でした) - キーを使うなら、
.mcp.jsonに環境変数の参照を書き、各メンバーが自分の環境変数に値を持つ
.mcp.jsonでは${VAR}と${VAR:-default}の展開が使え、headers・env・url・command・argsが対象です。
{
"mcpServers": {
"resend": {
"type": "http",
"url": "https://mcp.resend.com/mcp",
"headers": {
"Authorization": "Bearer ${RESEND_API_KEY}"
}
}
}
}展開されない変数には注意が必要です。Claude Codeは、ANTHROPIC_API_KEYやクラウドの認証情報のような名前を、リモートサーバー向けのurlとheadersでは空として扱います。API_KEYのようにこの範囲に入らない名前は、書いたとおり展開されます。
変数が未設定で既定値もないときは、設定自体は読み込まれ、${VAR}の文字列がそのまま残ります。このときclaude mcp listと/mcpに警告が出ます。
.mcp.jsonのサーバーは、対話セッションで初めて使うときに承認を求められます。承認の選択を消したいときはclaude mcp reset-project-choicesを実行します。
Resend Skillとプラグインでまとめて導入する
Resendはメール送信のベストプラクティスをまとめた「Resend Skill」も公開しています。単体のMCPツール呼び出しに加えて、単発送信・バッチ送信(1リクエストで最大100件)・冪等キーによる重複送信防止・指数バックオフ付きの自動リトライを、Skillのガイド付きで実行できます。Node.js・Python・Ruby・GoなどSDK横断で使える設計です。
導入経路は用途によって使い分けます。
| 経路 | コマンド / 操作 | 内容 |
|---|---|---|
| コネクタディレクトリ | コマンド / 操作claude.aiのコネクタディレクトリからワンクリック | 内容MCPサーバーとResend Skillを一括追加(claude.ai / Claude Desktop向け) |
| 公式プラグイン | コマンド / 操作claude plugin install resend@claude-plugins-official | 内容Claude Code向け。MCPサーバーとResend Skillをまとめて導入 |
| skills CLI | コマンド / 操作npx skills add resend/resend-skills | 内容Claude Code・CursorなどAgent Plugins準拠のクライアント横断で、Skillを個別選択してインストール |
resend/resend-skillsリポジトリには、メール送信用のresend本体のほか、受信メールの安全な処理を扱うagent-email-inbox、ターミナルからResendを操作するresend-cli、Reactコンポーネントでメールを組み立てるreact-email、配信品質のガイドラインをまとめたemail-best-practicesの計5つのSkillが含まれます。npx skills addを実行すると、インストールするSkillを選ぶプロンプトが表示されます。
MCPサーバーで扱えるツールとできること
Resend MCPサーバーは、単なるメール送信だけでなくResendプラットフォームのほぼ全域を自然言語から操作できるよう設計されています。npm v2.26.1のREADMEに基づく主な分野は次の通りです。
| 分野 | できること |
|---|---|
| Emails | できること送信・一覧・取得・キャンセル・更新・共有・バッチ送信、配信・エンゲージメント指標の取得 |
| Received Emails | できること受信メールの一覧・閲覧、添付ファイルのダウンロード |
| Templates | できることテンプレートの作成・一覧・取得・更新・公開・複製・削除 |
| Contacts | できること連絡先の作成・一覧・更新・削除、セグメント所属やトピック購読の管理、CSVインポート |
| Broadcasts | できることブロードキャストの作成・送信・キャンセル・複製・更新・削除、クリックリンクや受信者イベントの一覧 |
| Automations | できることオートメーションの作成・一覧・更新・複製・削除、実行履歴の確認 |
| Events | できること連絡先向けイベントの送信、イベント定義の作成・更新・削除 |
| Domains | できること送信ドメインの作成・一覧・更新・削除・認証、トラッキングやTLSの設定 |
| Segments / Topics | できることオーディエンスセグメントや購読トピックの作成・一覧・更新・削除 |
| Suppressions | できること配信停止リストの一覧・追加・削除(個別・一括) |
| API Keys / Webhooks | できることAPIキーの発行・一覧・削除、Webhookの作成・更新・配信履歴の確認・再送 |
| Logs | できることAPIリクエストログの一覧・調査(リクエスト・レスポンス本文を含む) |
| Contact Properties | できること連絡先のカスタム属性の作成・一覧・取得・更新・削除 |
| Usage | できることメール・連絡先・セグメントなどの利用量とAPIレート制限の取得 |
| Editor | できることResendダッシュボードのビジュアルエディターへの接続と、ブロードキャストやテンプレートの下書き内容の読み取り |
| Inboxes(ベータ) | できることリモート版のみ。受信箱の作成、スレッド・ラベル・下書きの管理、返信や転送。利用にはResendへの申請が必要 |
公式ドキュメントが挙げる実際の使い方の例としては、Paper(Resendのデザインツール)で作った下書きをテンプレートやブロードキャストに変換する、CSVから連絡先を一括インポートしてセグメントへ振り分ける、連絡先の作成やカスタムイベントをきっかけにオートメーションを組む、受信メールを読んでトリアージし返信する、送信予約メールを変更・キャンセルする、失敗したAPIリクエストをログから調査する、といった作業があります。
よくあるつまずき
リバースプロキシ配下で403 Invalid Hostになる
HTTPトランスポートはDNSリバインディング対策として、既定で127.0.0.1宛てのリクエストしか受け付けません。プロキシやロードバランサーの背後に置く場合は--host 0.0.0.0で無効化するか、--allowed-hostsで許可するHostを個別に指定します。
送信元アドレスを毎回聞かれる
SENDER_EMAIL_ADDRESS(または--sender)を設定していないと、メール送信のたびに送信元アドレスを尋ねられます。固定の送信元を使うなら、先に環境変数へ設定しておきます。
Resendのログイン画面が開かない・完結しない
ログインはResendのアカウントで行い、/mcpからresendを選んだときにブラウザが開きます。サーバーやCIのようにブラウザを開けない環境でリモート版のOAuth手順をそのまま試すと、完結しません。この場合はAPIキーをBearerトークンとして渡す接続方法に切り替えます。
-eの直後にサーバー名を書くとエラーになる
-e(--env)は複数のキー・値を受け取るオプションです。-eの直後にサーバー名を置くと、v2.1.289では次のエラーで止まります。
claude mcp add -e RESEND_API_KEY=re_xxxxxxxxx resend -- npx -y resend-mcp
Invalid environment variable format: resend, environment variables should be added as: -e KEY1=value1 -e KEY2=value2claude mcp add --helpの書式はclaude mcp add [options] <name> <commandOrUrl> [args...]で、ヘルプの例もサーバー名を先に置いています。ヘッダー用の-H(--header)も同じく複数の値を受け取ります。
まとめ
接続したあとは、claude mcp listで✔ Connectedと出ているかを見ます。.mcp.jsonのサーバーが⏸ Pending approvalなら、対話セッションでclaudeを起動して承認します。
同じようにMCPで外部サービスをClaudeにつなぐ例には、Azure MCPサーバーでAzureリソースを操作するやCloudflare MCPサーバー一覧があります。claude mcp addのオプション全体はClaude Code MCP設定ガイドにまとまっています。
参照した一次ソース
この記事の記述は、次の一次ソースと照合しています。更新時に参照先が変わった場合は一覧も更新します。