Resend Email

公式

エディタから直接Resend APIを使ってメールを送信します。

Resend Email MCPで何ができますか?

  • メールの送信と管理 — アシスタントに、添付ファイル、CC/BCC、スケジュール設定、カスタムヘッダーを備えたメールの送信、一覧表示、取得、キャンセル、一括送信を依頼できます(send_email を使用)。
  • 連絡先とオーディエンスの管理 — 連絡先の作成、更新、削除、セグメントメンバーシップやトピック購読の管理、CSVからの連絡先インポートを create_contact で行えます。
  • ブロードキャストの作成と送信 — パーソナライズプレースホルダーとプレビューテキストを備えたブロードキャストキャンペーンの作成、スケジュール設定、送信、キャンセルを create_broadcast で行えます。
  • 受信メールの処理 — 受信メールの一覧表示と閲覧、受信メッセージからの添付ファイルのダウンロードを list_received_emails で行えます。
  • テンプレートとドメインの管理 — 変数付きのメールテンプレートの作成、更新、公開、複製、送信者ドメインの検証や設定を create_templateverify_domain で行えます。
  • 監視と自動化 — APIリクエストログの確認、ウェブフックの管理、連絡先へのイベント送信による自動化のトリガーを list_logssend_event で行えます。

ドキュメント

Resend MCP サーバー

smithery badge npm version

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 またはデスクトップ)で、Settings > Connectors > Add custom connector を開き、次を入力します:

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 の設定で、Agents > MCP servers に移動し、+Add をクリックして新しいサーバーを追加します。

{
  "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 の設定 >「Developer」タブ >「Edit Config」を開きます。

{
  "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 で、Settings > Connections > MCP Servers を開き、Add a custom 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 経由で実行する代わりに別のサービスに埋め込むことができます。接続する各クライアントは、独自の Resend API キーを Bearer トークンとして渡して認証します。

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 キーで保護されている場合)は、host0.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 使用時のカンマ区切りの Host 許可リスト(または MCP_ALLOWED_HOSTS

環境変数:

  • 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 の作成、一覧表示、取得、更新、削除。
  • ログ: API リクエストログの一覧表示と検査(完全なリクエスト本文とレスポンス本文を含む)。
  • エディタ: Resend ダッシュボードのビジュアルエディタへの接続(および切断)、ブロードキャストとテンプレートの共同作業中のドラフトコンテンツの読み取り。

ローカル開発

  1. このプロジェクトをクローンしてビルド:
git clone https://github.com/resend/resend-mcp.git
pnpm install
pnpm run build
  1. ローカルビルドを使用するには、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 での例:

  1. TypeScript ウォッチャーを実行して、保存時に自動再ビルド:

    pnpm tsc --watch
    
  2. 別のディレクトリに、ビルド出力を指す .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"
          }
        }
      }
    }
    
  3. そのディレクトリから Claude Code を起動し、MCP ツールを使用します。コード変更後、新しい Claude Code セッションを開始して新しいビルドを反映します。

同じ原則が任意の MCP クライアントに適用されます — テスト環境を開発環境から分離し、dist/index.js への絶対パスを使用し、再ビルド後に MCP サーバーに再接続します。

MCP Inspector でのテスト

注: 先にプロジェクトをビルドしていることを確認してください(上記の ローカル開発 セクションを参照)。

Stdio トランスポートの使用

  1. API キーを設定:

    export RESEND_API_KEY=re_your_key_here
    
  2. Inspector を起動:

    pnpm inspector
    
  3. ブラウザ(Inspector UI)で:

    • stdio(プロセスを起動)を選択。
    • コマンド: node
    • 引数: dist/index.js(または dist/index.js へのフルパス)
    • 環境変数: RESEND_API_KEY=re_your_key_here(同じターミナルでエクスポート済みの場合は空白のまま)
    • Connect をクリックし、「List tools」を使用してサーバーが動作していることを確認。

HTTP トランスポートの使用

  1. 一方のターミナルで HTTP サーバーを起動:

    node dist/index.js --http --port 3000
    
  2. もう一方のターミナルで Inspector を起動:

    pnpm inspector
    
  3. ブラウザ(Inspector UI)で:

    • Streamable HTTP(URL に接続)を選択。
    • URL: http://127.0.0.1:3000/mcp
    • カスタムヘッダーを追加: Authorization: Bearer re_your_key_here でトグルを有効化。
    • Connect をクリックし、「List tools」を使用してサーバーが動作していることを確認。