Resend Email

resmi

Kirim email langsung dari editor Anda menggunakan API Resend.

Apa yang bisa Anda lakukan dengan Resend Email MCP?

  • Mengirim email transaksional — Minta asisten Anda untuk menyusun dan mengirim email HTML atau teks biasa dengan lampiran, CC/BCC, dan header kustom melalui https://mcp.resend.com/mcp.
  • Mengelola template email — Minta asisten Anda untuk membuat, memperbarui, menerbitkan, atau menduplikasi template dengan placeholder {{{VARIABLE}}} untuk kampanye yang dapat digunakan kembali.
  • Melacak pengiriman dan keterlibatan — Minta asisten Anda untuk mencantumkan email yang terkirim dan mengambil metrik pengiriman, atau membatalkan pengiriman terjadwal sebelum dikirim.
  • Menangani email masuk — Minta asisten Anda untuk membaca pesan yang diterima dan mengunduh lampirannya langsung dari kotak masuk Resend Anda.
  • Mengelola kontak dan audiens — Arahkan asisten Anda untuk membuat, memperbarui, atau mengelompokkan kontak, serta mengimpor daftar CSV dengan properti kustom.
  • Memantau penggunaan API — Minta kuota tingkat akun dan info batas kecepatan untuk memantau infrastruktur email Anda.

Server MCP Terhosting

npx add-mcp 'https://mcp.resend.com/mcp'

Terpasang ke Claude Code, Codex, Cursor, dan lainnya

Dokumentasi

Server MCP Resend

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 menyediakan 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 perlu dijalankan, menjadikannya opsi 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 Settings > Connectors > Add custom connector dan masukkan:

https://mcp.resend.com/mcp

Cursor

Buka palet perintah dan pilih "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

Untuk menggunakan GitHub Copilot di VS Code, tambahkan berikut ini 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 Agents > MCP servers, dan klik +Add 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, bukan 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 ini 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 "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"
      }
    }
  }
}

Copilot

Untuk menggunakan GitHub Copilot di VS Code, tambahkan berikut ini 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 Settings > Connections > MCP Servers dan klik Add a custom MCP. Lihat panduan Devin untuk langkah-langkah lengkapnya.

{
  "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 milik Resend. Dalam mode HTTP, setiap klien melakukan autentikasi 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 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 "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

Transportasi HTTP juga diekspor sehingga dapat disematkan di layanan lain alih-alih dijalankan melalui CLI. Setiap klien yang terhubung melakukan autentikasi 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 digunakan 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 (khusus mode stdio, karena 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 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 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 izin Host yang dipisahkan koma saat menggunakan --http (opsional)

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

Alat Server MCP

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

  • Email: Kirim, daftar, dapatkan, batalkan, perbarui, bagikan, dan kirim email massal. Ambil metrik pengiriman dan keterlibatan. 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 yang Diterima: Daftar dan baca email masuk. Daftar dan unduh lampiran email yang diterima.
  • Template: Buat, daftar, dapatkan, perbarui, publikasikan, duplikat, dan hapus template email. Mendukung penyusunan konten template 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, duplikat, daftar, dapatkan, perbarui, dan hapus kampanye siaran. Daftar tautan yang diklik dari siaran, dan penerimanya berdasarkan jenis peristiwa (terkirim, terkirim, dibuka, diklik, bounced, dikeluhkan, berhenti berlangganan, ditekan). Mendukung penjadwalan, placeholder personalisasi, dan teks pratinjau.
  • Otomatisasi: Buat, daftar, dapatkan, perbarui, duplikat, dan hapus otomatisasi. Tinjau proses dari sebuah otomatisasi.
  • Peristiwa: Kirim peristiwa untuk memicu otomatisasi untuk kontak. Buat, perbarui, dan hapus definisi peristiwa.
  • Domain: Buat, daftar, dapatkan, perbarui, hapus, dan verifikasi domain pengirim. Konfigurasikan pelacakan, TLS, dan kemampuan mengirim/menerima. Buat dan verifikasi klaim domain.
  • Segmen: Buat, daftar, dapatkan, perbarui, dan hapus segmen audiens.
  • Penekanan: Daftar, dapatkan, tambahkan, dan hapus entri daftar penekanan, secara individual atau massal. Bounce 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, perbarui, dan hapus kunci API.
  • Webhook: Buat, daftar, dapatkan, perbarui, dan hapus webhook untuk notifikasi peristiwa, dan periksa riwayat pengirimannya — peristiwa yang dikirim ke webhook, payload satu peristiwa, dan upaya yang dilakukan untuk mengirimkannya. Putar ulang peristiwa untuk mengantrekan pengiriman lain, dan putar rahasia penandatanganan webhook.
  • Log: Daftar dan periksa log permintaan API, termasuk badan permintaan dan respons lengkap.
  • Penggunaan: Ambil informasi penggunaan dan kuota tingkat akun: email, kontak, segmen, siaran, kredit AI, proses otomatisasi, domain, dan batas kecepatan API.
  • Editor: Hubungkan ke (dan putuskan dari) editor visual di dasbor Resend, dan baca konten draf saat berkolaborasi pada siaran dan template.

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 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 sesi lain.

Idenya: jalankan tsc --watch untuk membangun ulang dist/ secara terus-menerus, 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 berumur panjang yang 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 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 Anda, gunakan jalur 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 jalur 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 Connect, lalu gunakan "List tools" 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 Connect, lalu gunakan "List tools" untuk memverifikasi server berfungsi.