Resend Email MCP Server
resmiKirim email langsung dari editor Anda menggunakan API Resend.
Dokumentasi
Server MCP Resend
Server MCP untuk platform Resend. Kirim dan terima email, kelola kontak, siaran, domain, dan lainnya — langsung dari klien MCP apa pun seperti Claude Desktop, Cursor, atau Claude Code.
Fitur
- Email — Kirim, daftar, dapatkan, batalkan, perbarui, dan kirim email secara massal. Mendukung HTML, teks biasa, lampiran (file lokal, URL, atau base64), CC/BCC, balas-ke, penjadwalan, tag, dan pengiriman berbasis topik.
- Email Diterima — Daftar dan baca email masuk. Daftar dan unduh lampiran email yang diterima.
- Kontak — Buat, daftar, dapatkan, perbarui, dan hapus kontak. Kelola keanggotaan segmen dan langganan topik. Mendukung properti kontak kustom.
- Siaran — Buat, kirim, daftar, dapatkan, perbarui, dan hapus kampanye siaran. Mendukung penjadwalan, placeholder personalisasi, dan teks pratinjau.
- Template — Buat, daftar, dapatkan, perbarui, publikasikan, duplikasi, dan hapus template email yang dapat digunakan kembali.
- Editor Visual — Susun konten siaran dan template yang dirender langsung di dasbor Resend. Agen muncul sebagai avatar bernama di editor saat bekerja.
- Domain — Buat, daftar, dapatkan, perbarui, hapus, dan verifikasi domain pengirim. Konfigurasikan pelacakan, TLS, dan kemampuan mengirim/menerima.
- Segmen — Buat, daftar, dapatkan, dan hapus segmen audiens.
- 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 peristiwa.
Penyiapan
Buat akun Resend gratis dan buat kunci API. Untuk mengirim ke alamat di luar milik Anda sendiri, Anda perlu memverifikasi domain Anda.
Penggunaan
Server mendukung dua mode transport: stdio (default) dan HTTP.
Transport Stdio (Default)
Penyiapan Cepat
Instal untuk semua agen dan 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
Cursor
Buka palet perintah dan pilih "Cursor Settings" > "MCP" > "Add new global MCP server".
{
"mcpServers": {
"resend": {
"command": "npx",
"args": ["-y", "resend-mcp"],
"env": {
"RESEND_API_KEY": "re_xxxxxxxxx"
}
}
}
}
Claude Desktop
Buka pengaturan Claude Desktop > tab "Developer" > "Edit Config".
{
"mcpServers": {
"resend": {
"command": "npx",
"args": ["-y", "resend-mcp"],
"env": {
"RESEND_API_KEY": "re_xxxxxxxxx"
}
}
}
}
Transport HTTP
Jalankan server melalui HTTP untuk integrasi jarak jauh atau berbasis web. Dalam mode HTTP, setiap klien mengautentikasi dengan memberikan 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 HTTP Streamable.
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 "Cursor Settings" > "MCP" > "Add new global MCP server".
{
"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
Transport 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 diberikan 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 khusus localhost (perlindungan DNS-rebinding). Saat menerapkan di belakang proxy terbalik atau penyeimbang beban — di mana server dilindungi oleh kunci API Bearer per permintaan — atur host ke 0.0.0.0 agar Host yang diteruskan proxy dan pemeriksaan kesehatan penyeimbang beban 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:
--key: Kunci API Resend Anda (hanya mode stdio; mode HTTP menggunakan token Bearer dari klien)--sender: Alamat email pengirim default dari domain terverifikasi--reply-to: Alamat email balas-ke default (dapat ditentukan beberapa kali)--http: Gunakan transport HTTP alih-alih stdio (default: stdio)--port: Port HTTP saat menggunakan--http(default: 3000, atau variabel lingkunganMCP_PORT)--host: Host untuk perlindungan DNS-rebinding saat menggunakan--http(default:127.0.0.1, atauMCP_HOST). Atur ke0.0.0.0untuk menonaktifkan validasiHostdi belakang proxy/penyeimbang beban.--allowed-hosts: Daftar izinHostyang dipisahkan koma saat menggunakan--http(atauMCP_ALLOWED_HOSTS)
Variabel lingkungan:
RESEND_API_KEY: Kunci API Resend Anda (wajib untuk stdio, opsional untuk HTTP karena klien memberikannya melalui token Bearer)SENDER_EMAIL_ADDRESS: Alamat email pengirim default dari domain terverifikasi (opsional)REPLY_TO_EMAIL_ADDRESSES: Alamat email balas-ke 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 izinHostyang 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.
Pengembangan Lokal
- Kloning proyek ini dan bangun:
git clone https://github.com/resend/resend-mcp.git
pnpm install
pnpm run build
- Untuk menggunakan build lokal, ganti perintah
npxdengan jalur 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 tempat lain.
Idenya: jalankan tsc --watch untuk terus membangun ulang dist/, dan arahkan klien MCP terpisah ke dist/index.js yang dibangun dari direktori berbeda. Saat Anda ingin mengambil perubahan kode, mulai ulang sesi klien MCP (server MCP adalah proses stdio yang berjalan lama dan tidak memuat ulang secara otomatis).
Contoh dengan Claude Code:
-
Jalankan pengawas TypeScript untuk membangun ulang otomatis saat disimpan:
pnpm tsc --watch -
Di direktori terpisah, buat
.mcp.jsonyang 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" } } } } -
Mulai Claude Code dari direktori itu dan gunakan alat MCP. Setelah membuat perubahan kode, mulai sesi Claude Code baru untuk mengambil build baru.
Prinsip yang sama berlaku untuk klien MCP apa pun — pisahkan lingkungan pengujian Anda dari lingkungan pengembangan, gunakan jalur absolut ke dist/index.js, dan sambungkan kembali server MCP setelah membangun ulang.
Pengujian dengan Inspektur MCP
Catatan: Pastikan Anda telah membangun proyek terlebih dahulu (lihat bagian Pengembangan Lokal di atas).
Menggunakan Transport Stdio
-
Atur kunci API Anda:
export RESEND_API_KEY=re_your_key_here -
Mulai inspektur:
pnpm inspector -
Di browser (UI Inspektur):
- Pilih stdio (luncurkan proses).
- Perintah:
node - Argumen:
dist/index.js(atau jalur lengkap kedist/index.js) - Env:
RESEND_API_KEY=re_your_key_here(atau biarkan kosong jika Anda sudah mengekspornya di terminal yang sama). - Klik Connect, lalu gunakan "List tools" untuk memverifikasi server berfungsi.
Menggunakan Transport HTTP
-
Mulai server HTTP di satu terminal:
node dist/index.js --http --port 3000 -
Mulai inspektur di terminal lain:
pnpm inspector -
Di browser (UI Inspektur):
- Pilih Streamable HTTP (sambungkan ke URL).
- URL:
http://127.0.0.1:3000/mcp - Tambahkan header kustom:
Authorization: Bearer re_your_key_heredan aktifkan toggle. - Klik Connect, lalu gunakan "List tools" untuk memverifikasi server berfungsi.