Resend Email

resmi

Kirim email langsung dari editor Anda menggunakan API Resend.

Apa yang bisa Anda lakukan dengan Resend Email MCP?

  • Kirim dan kelola email — Minta asisten Anda untuk mengirim, mencantumkan, mendapatkan, membatalkan, atau mengirim email massal dengan lampiran, CC/BCC, penjadwalan, dan header khusus melalui send_email.
  • Kelola kontak dan audiens — Buat, perbarui, atau hapus kontak, kelola keanggotaan segmen dan langganan topik, serta impor kontak dari CSV menggunakan create_contact.
  • Bangun dan kirim siaran — Buat, jadwalkan, kirim, atau batalkan kampanye siaran dengan placeholder personalisasi dan teks pratinjau melalui create_broadcast.
  • Tangani email masuk — Cantumkan dan baca email yang diterima, serta unduh lampiran dari pesan masuk menggunakan list_received_emails.
  • Kelola template dan domain — Buat, perbarui, terbitkan, atau duplikat template email dengan variabel, serta verifikasi atau konfigurasi domain pengirim melalui create_template dan verify_domain.
  • Pantau dan otomatisasi — Tinjau log permintaan API, kelola webhook, dan picu otomatisasi dengan mengirim peristiwa untuk kontak menggunakan list_logs dan send_event.

Dokumentasi

Server MCP Resend

smithery badge npm version

Hubungkan agen AI Anda ke platform Resend. Kirim dan terima email, kelola kontak, siaran, domain, dan lainnya, langsung dari klien MCP apa pun seperti Claude, Cursor, atau Claude Code.

Kami menawarkan server MCP jarak jauh yang dihosting oleh Resend dan server MCP lokal (paket ini).

Server MCP Jarak Jauh

Resend menghosting server MCP di:

https://mcp.resend.com/mcp

Hubungkan klien MCP apa pun yang mendukung server jarak jauh (Streamable HTTP). Tidak ada yang perlu diinstal dan tidak ada proses lokal yang dijalankan, menjadikannya pilihan terbaik untuk klien berbasis web seperti Claude dan platform agen yang dihosting.

Saat Anda terhubung, klien Anda membuka jendela browser untuk masuk ke Resend dan menyetujui akses menggunakan OAuth.

Claude Code

claude mcp add --transport http resend https://mcp.resend.com/mcp

Kemudian jalankan /mcp di Claude Code dan pilih resend untuk menyelesaikan login OAuth.

Claude

Di Claude (web atau desktop), buka Pengaturan > Konektor > Tambahkan konektor kustom dan masukkan:

https://mcp.resend.com/mcp

Cursor

Buka palet perintah dan pilih "Pengaturan Cursor" > "MCP" > "Tambahkan server MCP global baru".

{
  "mcpServers": {
    "resend": {
      "url": "https://mcp.resend.com/mcp"
    }
  }
}

Codex

codex mcp add resend --url https://mcp.resend.com/mcp

Copilot

Untuk menggunakan GitHub Copilot di VS Code, tambahkan berikut ke settings.json Anda:

{
  "mcp": {
    "servers": {
      "resend": {
        "type": "http",
        "url": "https://mcp.resend.com/mcp"
      }
    }
  }
}

Windsurf

{
  "mcpServers": {
    "resend": {
      "serverUrl": "https://mcp.resend.com/mcp"
    }
  }
}

Warp

Di Pengaturan Warp, navigasikan ke Agen > Server MCP, dan klik +Tambahkan untuk menambahkan server baru.

{
  "resend": {
    "serverUrl": "https://mcp.resend.com/mcp"
  }
}

Autentikasi dengan kunci API

Jika klien Anda berjalan di tempat yang tidak memungkinkan login browser (server, CI, atau agen tanpa kepala), berikan kunci API Resend sebagai token Bearer alih-alih menggunakan OAuth.

Claude Code:

claude mcp add --transport http resend https://mcp.resend.com/mcp --header "Authorization: Bearer re_xxxxxxxxx"

Konfigurasi JSON (Cursor, Windsurf, dan lainnya), tambahkan header Authorization:

{
  "mcpServers": {
    "resend": {
      "url": "https://mcp.resend.com/mcp",
      "headers": {
        "Authorization": "Bearer re_xxxxxxxxx"
      }
    }
  }
}

Server MCP Lokal

Server yang dihosting menjalankan kode sumber terbuka yang sama yang tersedia di NPM sebagai resend-mcp. Jika Anda lebih suka menjalankan server sendiri, Anda dapat mengintegrasikannya ke klien MCP yang didukung menggunakan npx. Anda perlu:

Server lokal mendukung dua mode transportasi: stdio (default) dan HTTP.

Pilih mode dan klien yang Anda sukai di bawah untuk memulai. Ingat untuk mengganti re_xxxxxxxxx dengan kunci API Anda yang sebenarnya.

Transportasi Stdio (Default)

Pengaturan Cepat

Instal untuk semua agen/editor yang terdeteksi/dipilih:

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

Buka palet perintah dan pilih "Pengaturan Cursor" > "MCP" > "Tambahkan server MCP global baru".

{
  "mcpServers": {
    "resend": {
      "command": "npx",
      "args": ["-y", "resend-mcp"],
      "env": {
        "RESEND_API_KEY": "re_xxxxxxxxx"
      }
    }
  }
}

Claude Desktop

Buka pengaturan Claude Desktop > tab "Pengembang" > "Edit Konfigurasi".

{
  "mcpServers": {
    "resend": {
      "command": "npx",
      "args": ["-y", "resend-mcp"],
      "env": {
        "RESEND_API_KEY": "re_xxxxxxxxx"
      }
    }
  }
}

Copilot

Untuk menggunakan GitHub Copilot di VS Code, tambahkan berikut ke settings.json Anda:

{
  "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

Tambahkan ke konfigurasi opencode.json Anda:

{
  "$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

Di Devin, buka Pengaturan > Koneksi > Server MCP dan klik Tambahkan MCP kustom. Lihat panduan Devin untuk langkah-langkah lengkap.

{
  "mcpServers": {
    "resend": {
      "command": "npx",
      "args": ["-y", "resend-mcp"],
      "env": {
        "RESEND_API_KEY": "re_xxxxxxxxx",
        "SENDER_EMAIL_ADDRESS": "onboarding@resend.dev"
      }
    }
  }
}

Transportasi HTTP

Jalankan server melalui HTTP untuk integrasi jarak jauh atau berbasis web, misalnya di belakang tunnel atau reverse proxy Anda sendiri, alih-alih menggunakan server MCP jarak jauh yang dihosting Resend. Dalam mode HTTP, setiap klien mengautentikasi dengan mengirimkan kunci API Resend mereka sebagai token Bearer di header Authorization.

Mulai server:

npx -y resend-mcp --http --port 3000

Server akan mendengarkan di http://127.0.0.1:3000 dan mengekspos endpoint MCP di /mcp menggunakan Streamable HTTP.

Claude Code

claude mcp add resend --transport http http://127.0.0.1:3000/mcp --header "Authorization: Bearer re_xxxxxxxxx"

Cursor

Buka palet perintah dan pilih "Pengaturan Cursor" > "MCP" > "Tambahkan server MCP global baru".

{
  "mcpServers": {
    "resend": {
      "url": "http://127.0.0.1:3000/mcp",
      "headers": {
        "Authorization": "Bearer re_xxxxxxxxx"
      }
    }
  }
}

Anda juga dapat mengatur port melalui variabel lingkungan MCP_PORT:

MCP_PORT=3000 npx -y resend-mcp --http

Gunakan sebagai pustaka

Transportasi HTTP juga diekspor sehingga dapat disematkan di layanan lain alih-alih dijalankan melalui CLI. Setiap klien yang terhubung mengautentikasi dengan kunci API Resend mereka sendiri yang dikirim sebagai token 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);

Secara default, server menerapkan validasi Host hanya localhost (perlindungan DNS-rebinding). Saat menyebarkan di belakang reverse proxy atau load balancer, di mana server dilindungi oleh kunci API Bearer per permintaan, atur host ke 0.0.0.0 sehingga Host yang diteruskan proxy dan pemeriksaan kesehatan load balancer tidak ditolak dengan 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'] });

Melalui CLI ini dipetakan ke --host / --allowed-hosts (atau MCP_HOST / MCP_ALLOWED_HOSTS).

Opsi

Anda dapat memberikan argumen tambahan untuk mengonfigurasi server lokal:

  • --key: Kunci API Resend Anda (hanya mode stdio, karena mode HTTP menggunakan token Bearer dari klien)
  • --sender: Alamat email pengirim default dari domain terverifikasi
  • --reply-to: Alamat email balasan default (dapat ditentukan beberapa kali)
  • --http: Gunakan transportasi HTTP alih-alih stdio (default: stdio)
  • --port: Port HTTP saat menggunakan --http (default: 3000, atau variabel env MCP_PORT)
  • --host: Host untuk perlindungan DNS-rebinding saat menggunakan --http (default: 127.0.0.1, atau MCP_HOST). Atur ke 0.0.0.0 untuk menonaktifkan validasi Host di belakang proxy/load balancer.
  • --allowed-hosts: Daftar izin Host yang dipisahkan koma saat menggunakan --http (atau MCP_ALLOWED_HOSTS)

Variabel lingkungan:

  • RESEND_API_KEY: Kunci API Resend Anda (wajib untuk stdio, opsional untuk HTTP karena klien mengirimkannya melalui token Bearer)
  • SENDER_EMAIL_ADDRESS: Alamat email pengirim default dari domain terverifikasi (opsional)
  • REPLY_TO_EMAIL_ADDRESSES: Alamat email balasan yang dipisahkan koma (opsional)
  • MCP_PORT: Port HTTP saat menggunakan --http (opsional)
  • MCP_HOST: Host untuk perlindungan DNS-rebinding saat menggunakan --http (opsional)
  • MCP_ALLOWED_HOSTS: Daftar izin Host yang dipisahkan koma saat menggunakan --http (opsional)

[!NOTE] Jika Anda tidak memberikan alamat email pengirim, server MCP akan meminta Anda untuk memberikannya setiap kali Anda memanggil alat.

Alat Server MCP

Server MCP Resend memberikan akses native ke seluruh platform Resend kepada agen AI Anda melalui satu integrasi. Anda dapat mengelola semua aspek infrastruktur email Anda menggunakan bahasa alami.

  • Email: Kirim, daftar, dapatkan, batalkan, perbarui, dan kirim email secara batch. Mendukung HTML, teks biasa, lampiran (file lokal, URL, atau base64), CC/BCC, balas-ke, penjadwalan, tag, header kustom, pengiriman berbasis topik, dan kunci idempotensi.
  • Email Diterima: Daftar dan baca email masuk. Daftar dan unduh lampiran email yang diterima.
  • Templat: Buat, daftar, dapatkan, perbarui, publikasikan, duplikat, dan hapus templat email. Mendukung penyusunan konten templat dan placeholder {{{VARIABLE}}}.
  • Kontak: Buat, daftar, dapatkan, perbarui, dan hapus kontak. Kelola keanggotaan segmen, langganan topik, dan impor kontak CSV. Mendukung properti kontak kustom.
  • Siaran: Buat, kirim, batalkan, daftar, dapatkan, perbarui, dan hapus kampanye siaran. Mendukung penjadwalan, placeholder personalisasi, dan teks pratinjau.
  • Otomatisasi: Buat, daftar, dapatkan, perbarui, dan hapus otomatisasi. Tinjau proses dari sebuah otomatisasi.
  • Acara: Kirim acara untuk memicu otomatisasi untuk kontak. Buat, perbarui, dan hapus definisi acara.
  • Domain: Buat, daftar, dapatkan, perbarui, hapus, dan verifikasi domain pengirim. Konfigurasikan pelacakan, TLS, dan kemampuan kirim/terima. Buat dan verifikasi klaim domain.
  • Segmen: Buat, daftar, dapatkan, dan hapus segmen audiens.
  • Penekanan: Daftar, dapatkan, tambahkan, dan hapus entri daftar penekanan, secara individual atau batch. Pantulan keras dan keluhan spam ditekan secara otomatis; tambahkan alamat secara manual untuk menghormati permintaan jangan-hubungi.
  • Topik: Buat, daftar, dapatkan, perbarui, dan hapus topik langganan.
  • Properti Kontak: Buat, daftar, dapatkan, perbarui, dan hapus atribut kontak kustom.
  • Kunci API: Buat, daftar, dan hapus kunci API.
  • Webhook: Buat, daftar, dapatkan, perbarui, dan hapus webhook untuk notifikasi acara.
  • Log: Daftar dan periksa log permintaan API, termasuk isi permintaan dan respons lengkap.
  • Editor: Hubungkan (dan putuskan) ke editor visual di dasbor Resend, dan baca konten draf saat berkolaborasi pada siaran dan templat.

Pengembangan Lokal

  1. Klon proyek ini dan bangun:
git clone https://github.com/resend/resend-mcp.git
pnpm install
pnpm run build
  1. Untuk menggunakan build lokal, ganti perintah npx dengan path ke build lokal Anda:

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"
      }
    }
  }
}

Pengujian Langsung dengan Klien MCP

Saat mengembangkan, Anda dapat menguji perubahan dalam sesi klien MCP nyata sambil mengedit kode di sesi lain.

Idenya: jalankan tsc --watch untuk terus membangun ulang dist/, dan arahkan klien MCP terpisah ke dist/index.js yang telah dibangun dari direktori yang berbeda. Saat Anda ingin mengambil perubahan kode, mulai ulang sesi klien MCP (server MCP adalah proses stdio yang berumur panjang dan tidak melakukan hot-reload).

Contoh dengan Claude Code:

  1. Jalankan watcher TypeScript untuk membangun ulang otomatis saat disimpan:

    pnpm tsc --watch
    
  2. Di direktori terpisah, buat .mcp.json yang menunjuk ke output build:

    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. Mulai Claude Code dari direktori tersebut dan gunakan alat MCP. Setelah membuat perubahan kode, mulai sesi Claude Code baru untuk mengambil build baru.

Prinsip yang sama berlaku untuk klien MCP mana pun — pisahkan lingkungan pengujian Anda dari lingkungan pengembangan Anda, gunakan path absolut ke dist/index.js, dan sambungkan kembali server MCP setelah membangun ulang.

Pengujian dengan MCP Inspector

Catatan: Pastikan Anda telah membangun proyek terlebih dahulu (lihat bagian Pengembangan Lokal di atas).

Menggunakan Transportasi Stdio

  1. Atur kunci API Anda:

    export RESEND_API_KEY=re_your_key_here
    
  2. Mulai inspector:

    pnpm inspector
    
  3. Di browser (UI Inspector):

    • Pilih stdio (jalankan proses).
    • Perintah: node
    • Argumen: dist/index.js (atau path lengkap ke dist/index.js)
    • Env: RESEND_API_KEY=re_your_key_here (atau biarkan kosong jika Anda sudah mengekspornya di terminal yang sama).
    • Klik Hubungkan, lalu gunakan "Daftar alat" untuk memverifikasi server berfungsi.

Menggunakan Transportasi HTTP

  1. Mulai server HTTP di satu terminal:

    node dist/index.js --http --port 3000
    
  2. Mulai inspector di terminal lain:

    pnpm inspector
    
  3. Di browser (UI Inspector):

    • Pilih Streamable HTTP (hubungkan ke URL).
    • URL: http://127.0.0.1:3000/mcp
    • Tambahkan header kustom: Authorization: Bearer re_your_key_here dan aktifkan toggle.
    • Klik Hubungkan, lalu gunakan "Daftar alat" untuk memverifikasi server berfungsi.