Resend Email
ทางการส่งอีเมลโดยตรงจากโปรแกรมแก้ไขของคุณโดยใช้ Resend API
คุณทำอะไรได้บ้างด้วย Resend Email MCP?
- ส่งและจัดการอีเมล — ให้ AI ของคุณส่ง, กำหนดเวลา, หรือส่งอีเมลแบบกลุ่มพร้อม HTML, ไฟล์แนบ, CC/BCC, และส่วนหัวที่กำหนดเอง โดยใช้
sendEmailและเครื่องมือที่เกี่ยวข้อง - จัดการผู้ติดต่อและกลุ่มเป้าหมาย — สร้าง, อัปเดต, นำเข้า, หรือลบผู้ติดต่อ และจัดการการเป็นสมาชิกกลุ่มและการสมัครรับหัวข้อของพวกเขา
- สร้างและส่งแคมเปญแบบกระจายเสียง — ร่าง, กำหนดเวลา, และส่งอีเมลแบบกระจายเสียงพร้อมตัวยึดตำแหน่งสำหรับการปรับแต่งส่วนบุคคลและข้อความตัวอย่าง
- ตรวจสอบและกำหนดค่าโดเมน — เพิ่ม, ตรวจสอบ, และอัปเดตโดเมนผู้ส่ง รวมถึงการติดตาม, TLS, และการตั้งค่าการรับ
- ตรวจสอบบันทึก API และเว็บฮุค — ดึงและตรวจสอบบันทึกคำขอ API พร้อมเนื้อหาคำขอ/การตอบสนองแบบเต็ม และจัดการจุดสิ้นสุดเว็บฮุค
- ทำงานร่วมกันบนเทมเพลตและการกระจายเสียง — เชื่อมต่อกับโปรแกรมแก้ไขภาพของ Resend เพื่ออ่านและปรับปรุงเนื้อหาต้นฉบับสำหรับเทมเพลตและการกระจายเสียง
เอกสาร
Resend MCP Server
เชื่อมต่อเอเจนต์ AI ของคุณเข้ากับแพลตฟอร์ม Resend ส่งและรับอีเมล จัดการผู้ติดต่อ การกระจายเสียง โดเมน และอื่นๆ ได้โดยตรงจากไคลเอนต์ MCP ใดๆ เช่น Claude, Cursor หรือ Claude Code
เรามีทั้ง เซิร์ฟเวอร์ MCP ระยะไกล ที่โฮสต์โดย Resend และ เซิร์ฟเวอร์ MCP ภายในเครื่อง (แพ็คเกจนี้)
เซิร์ฟเวอร์ MCP ระยะไกล
Resend โฮสต์เซิร์ฟเวอร์ MCP ที่:
https://mcp.resend.com/mcp
เชื่อมต่อไคลเอนต์ MCP ใดๆ ที่รองรับเซิร์ฟเวอร์ระยะไกล (Streamable HTTP) ไม่มีอะไรต้องติดตั้งและไม่มีกระบวนการภายในเครื่องที่ต้องรัน ซึ่งทำให้เป็นตัวเลือกที่ดีที่สุดสำหรับไคลเอนต์บนเว็บเช่น Claude และแพลตฟอร์มเอเจนต์ที่โฮสต์
เมื่อคุณเชื่อมต่อ ไคลเอนต์ของคุณจะเปิดหน้าต่างเบราว์เซอร์เพื่อเข้าสู่ระบบ Resend และอนุมัติการเข้าถึงโดยใช้ OAuth
Claude Code
claude mcp add --transport http resend https://mcp.resend.com/mcp
จากนั้นรัน /mcp ใน Claude Code และเลือก resend เพื่อทำการเข้าสู่ระบบ OAuth ให้เสร็จสมบูรณ์
Claude
ใน Claude (เว็บหรือเดสก์ท็อป) เปิด Settings > Connectors > Add custom connector และป้อน:
https://mcp.resend.com/mcp
Cursor
เปิด command palette และเลือก "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
หากต้องการใช้ GitHub Copilot ใน VS Code ให้เพิ่มสิ่งต่อไปนี้ลงใน 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 หรือเอเจนต์แบบไม่มีหัว) ให้ส่ง คีย์ API ของ Resend เป็นโทเค็น Bearer แทนการใช้ OAuth
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 หากคุณต้องการรันเซิร์ฟเวอร์ด้วยตัวเอง คุณสามารถรวมเข้ากับไคลเอนต์ MCP ที่รองรับโดยใช้ npx คุณจะต้อง:
เซิร์ฟเวอร์ภายในเครื่องรองรับโหมดการขนส่งสองแบบ: stdio (ค่าเริ่มต้น) และ HTTP
เลือกโหมดและไคลเอนต์ที่คุณต้องการด้านล่างเพื่อเริ่มต้น อย่าลืมแทนที่ 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
เปิด command palette และเลือก "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
หากต้องการใช้ GitHub Copilot ใน VS Code ให้เพิ่มสิ่งต่อไปนี้ลงใน 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
รันเซิร์ฟเวอร์ผ่าน HTTP สำหรับการรวมระยะไกลหรือบนเว็บ เช่น หลังทันเนลหรือ reverse proxy ของคุณเอง แทนที่จะใช้ เซิร์ฟเวอร์ MCP ระยะไกลที่โฮสต์ ของ Resend ในโหมด HTTP แต่ละไคลเอนต์ตรวจสอบสิทธิ์โดยส่งคีย์ API ของ Resend เป็นโทเค็น Bearer ในส่วนหัว Authorization
เริ่มเซิร์ฟเวอร์:
npx -y resend-mcp --http --port 3000
เซิร์ฟเวอร์จะรับฟังบน http://127.0.0.1:3000 และเปิดเผยจุดสิ้นสุด MCP ที่ /mcp โดยใช้ Streamable HTTP
Claude Code
claude mcp add resend --transport http http://127.0.0.1:3000/mcp --header "Authorization: Bearer re_xxxxxxxxx"
Cursor
เปิด command palette และเลือก "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 แต่ละไคลเอนต์ที่เชื่อมต่อจะตรวจสอบสิทธิ์ด้วยคีย์ API ของ Resend ของตัวเองที่ส่งเป็นโทเค็น 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);
ตามค่าเริ่มต้น เซิร์ฟเวอร์จะใช้การตรวจสอบ Host เฉพาะ localhost (การป้องกัน DNS-rebinding) เมื่อปรับใช้หลัง reverse proxy หรือ load balancer ซึ่งเซิร์ฟเวอร์ได้รับการป้องกันโดยคีย์ API Bearer ต่อคำขอ ให้ตั้ง host เป็น 0.0.0.0 เพื่อไม่ให้ Host ที่ส่งต่อโดยพร็อกซีและการตรวจสอบความสมบูรณ์ของ load-balancer ถูกปฏิเสธด้วย 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: คีย์ API ของ Resend ของคุณ (เฉพาะโหมด stdio เนื่องจากโหมด HTTP ใช้โทเค็น Bearer จากไคลเอนต์)--sender: ที่อยู่อีเมลผู้ส่งเริ่มต้นจากโดเมนที่ยืนยันแล้ว--reply-to: ที่อยู่อีเมลตอบกลับเริ่มต้น (สามารถระบุได้หลายครั้ง)--http: ใช้การขนส่ง HTTP แทน stdio (ค่าเริ่มต้น: stdio)--port: พอร์ต HTTP เมื่อใช้--http(ค่าเริ่มต้น: 3000 หรือตัวแปรสภาพแวดล้อมMCP_PORT)--host: โฮสต์สำหรับการป้องกัน DNS-rebinding เมื่อใช้--http(ค่าเริ่มต้น:127.0.0.1หรือMCP_HOST) ตั้งเป็น0.0.0.0เพื่อปิดใช้งานการตรวจสอบHostหลังพร็อกซี/load balancer--allowed-hosts: รายการอนุญาตHostที่คั่นด้วยเครื่องหมายจุลภาคเมื่อใช้--http(หรือMCP_ALLOWED_HOSTS)
ตัวแปรสภาพแวดล้อม:
RESEND_API_KEY: คีย์ API ของ Resend ของคุณ (จำเป็นสำหรับ stdio เป็นทางเลือกสำหรับ HTTP เนื่องจากไคลเอนต์ส่งผ่านโทเค็น Bearer)SENDER_EMAIL_ADDRESS: ที่อยู่อีเมลผู้ส่งเริ่มต้นจากโดเมนที่ยืนยันแล้ว (เป็นทางเลือก)REPLY_TO_EMAIL_ADDRESSES: ที่อยู่อีเมลตอบกลับที่คั่นด้วยเครื่องหมายจุลภาค (เป็นทางเลือก)MCP_PORT: พอร์ต HTTP เมื่อใช้--http(เป็นทางเลือก)MCP_HOST: โฮสต์สำหรับการป้องกัน DNS-rebinding เมื่อใช้--http(เป็นทางเลือก)MCP_ALLOWED_HOSTS: รายการอนุญาตHostที่คั่นด้วยเครื่องหมายจุลภาคเมื่อใช้--http(เป็นทางเลือก)
[!NOTE] หากคุณไม่ได้ระบุที่อยู่อีเมลผู้ส่ง เซิร์ฟเวอร์ MCP จะขอให้คุณระบุทุกครั้งที่คุณเรียกใช้เครื่องมือ
เครื่องมือเซิร์ฟเวอร์ MCP
เซิร์ฟเวอร์ MCP ของ Resend ให้เอเจนต์ AI ของคุณเข้าถึงแพลตฟอร์ม Resend ทั้งหมดได้โดยตรงผ่านการรวมเพียงครั้งเดียว คุณสามารถจัดการทุกด้านของโครงสร้างพื้นฐานอีเมลของคุณโดยใช้ภาษาธรรมชาติ
- อีเมล: ส่ง, แสดงรายการ, รับ, ยกเลิก, อัปเดต และส่งอีเมลเป็นชุด รองรับ HTML, ข้อความธรรมดา, ไฟล์แนบ (ไฟล์ในเครื่อง, URL หรือ base64), CC/BCC, ตอบกลับ, การจัดตารางเวลา, แท็ก, ส่วนหัวที่กำหนดเอง, การส่งตามหัวข้อ และคีย์ idempotency
- อีเมลที่ได้รับ: แสดงรายการและอ่านอีเมลขาเข้า แสดงรายการและดาวน์โหลดไฟล์แนบอีเมลที่ได้รับ
- เทมเพลต: สร้าง, แสดงรายการ, รับ, อัปเดต, เผยแพร่, ทำซ้ำ และลบเทมเพลตอีเมล รองรับการเขียนเนื้อหาเทมเพลตและตัวยึดตำแหน่ง
{{{VARIABLE}}} - ผู้ติดต่อ: สร้าง, แสดงรายการ, รับ, อัปเดต และลบผู้ติดต่อ จัดการการเป็นสมาชิกเซกเมนต์, การสมัครรับหัวข้อ และการนำเข้าผู้ติดต่อ CSV รองรับคุณสมบัติผู้ติดต่อที่กำหนดเอง
- การกระจายเสียง: สร้าง, ส่ง, แสดงรายการ, รับ, อัปเดต และลบแคมเปญการกระจายเสียง รองรับการจัดตารางเวลา, ตัวยึดตำแหน่งการปรับเปลี่ยนในแบบของคุณ และข้อความแสดงตัวอย่าง
- ระบบอัตโนมัติ: สร้าง, แสดงรายการ, รับ, อัปเดต และลบระบบอัตโนมัติ ตรวจสอบการรันของระบบอัตโนมัติ
- เหตุการณ์: ส่งเหตุการณ์เพื่อทริกเกอร์ระบบอัตโนมัติสำหรับผู้ติดต่อ สร้าง, อัปเดต และลบคำจำกัดความเหตุการณ์
- โดเมน: สร้าง, แสดงรายการ, รับ, อัปเดต, ลบ และยืนยันโดเมนผู้ส่ง กำหนดค่าการติดตาม, TLS และความสามารถในการส่ง/รับ สร้างและยืนยันการอ้างสิทธิ์โดเมน
- เซกเมนต์: สร้าง, แสดงรายการ, รับ และลบเซกเมนต์ผู้ชม
- การระงับ: แสดงรายการ, รับ, เพิ่ม และลบรายการระงับ ทีละรายการหรือเป็นชุด การตีกลับแบบ hard bounce และการร้องเรียนสแปมจะถูกระงับโดยอัตโนมัติ เพิ่มที่อยู่ด้วยตนเองเพื่อปฏิบัติตามคำขอไม่ติดต่อ
- หัวข้อ: สร้าง, แสดงรายการ, รับ, อัปเดต และลบหัวข้อการสมัคร
- คุณสมบัติผู้ติดต่อ: สร้าง, แสดงรายการ, รับ, อัปเดต และลบแอตทริบิวต์ผู้ติดต่อที่กำหนดเอง
- คีย์ API: สร้าง, แสดงรายการ และลบคีย์ API
- Webhooks: สร้าง, แสดงรายการ, รับ, อัปเดต และลบ webhooks สำหรับการแจ้งเตือนเหตุการณ์
- บันทึก: แสดงรายการและตรวจสอบบันทึกคำขอ API รวมถึงเนื้อหาคำขอและการตอบกลับทั้งหมด
- เอดิเตอร์: เชื่อมต่อกับ (และตัดการเชื่อมต่อจาก) วิชวลเอดิเตอร์ในแดชบอร์ด Resend และอ่านเนื้อหาฉบับร่างขณะทำงานร่วมกันในการกระจายเสียงและเทมเพลต
การพัฒนาภายในเครื่อง
- โคลนโปรเจกต์นี้และสร้าง:
git clone https://github.com/resend/resend-mcp.git
pnpm install
pnpm run build
- หากต้องการใช้บิลด์ภายในเครื่อง ให้แทนที่คำสั่ง
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/ ใหม่อย่างต่อเนื่อง และชี้ไคลเอนต์ MCP แยกต่างหากไปที่ dist/index.js ที่สร้างจากไดเรกทอรีอื่น เมื่อคุณต้องการรับการเปลี่ยนแปลงโค้ด ให้รีสตาร์ทเซสชันไคลเอนต์ MCP (เซิร์ฟเวอร์ MCP เป็นกระบวนการ stdio ที่มีอายุการใช้งานยาวนานซึ่งไม่โหลดซ้ำอัตโนมัติ)
ตัวอย่างกับ Claude Code:
-
รันตัวเฝ้าดู TypeScript เพื่อสร้างใหม่โดยอัตโนมัติเมื่อบันทึก:
pnpm tsc --watch -
ในไดเรกทอรีแยกต่างหาก สร้าง
.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" } } } } -
เริ่ม Claude Code จากไดเรกทอรีนั้นและใช้เครื่องมือ MCP หลังจากทำการเปลี่ยนแปลงโค้ด ให้เริ่มเซสชัน Claude Code ใหม่เพื่อรับบิลด์ใหม่
หลักการเดียวกันนี้ใช้กับไคลเอนต์ MCP ใดๆ — แยกสภาพแวดล้อมการทดสอบของคุณออกจากสภาพแวดล้อมการพัฒนา ใช้พาธสัมบูรณ์ไปยัง dist/index.js และเชื่อมต่อเซิร์ฟเวอร์ MCP ใหม่หลังจากสร้างใหม่
การทดสอบด้วย MCP Inspector
หมายเหตุ: ตรวจสอบให้แน่ใจว่าคุณได้สร้างโปรเจกต์ก่อน (ดูส่วน การพัฒนาภายในเครื่อง ด้านบน)
การใช้การขนส่ง Stdio
-
ตั้งค่าคีย์ API ของคุณ:
export RESEND_API_KEY=re_your_key_here -
เริ่มอินสเปกเตอร์:
pnpm inspector -
ในเบราว์เซอร์ (UI อินสเปกเตอร์):
- เลือก stdio (เปิดกระบวนการ)
- คำสั่ง:
node - อาร์กิวเมนต์:
dist/index.js(หรือพาธเต็มไปยังdist/index.js) - Env:
RESEND_API_KEY=re_your_key_here(หรือเว้นว่างไว้หากคุณส่งออกแล้วในเทอร์มินัลเดียวกัน) - คลิก Connect จากนั้นใช้ "List tools" เพื่อตรวจสอบว่าเซิร์ฟเวอร์ทำงานอยู่
การใช้การขนส่ง HTTP
-
เริ่มเซิร์ฟเวอร์ HTTP ในเทอร์มินัลหนึ่ง:
node dist/index.js --http --port 3000 -
เริ่มอินสเปกเตอร์ในอีกเทอร์มินัลหนึ่ง:
pnpm inspector -
ในเบราว์เซอร์ (UI อินสเปกเตอร์):
- เลือก Streamable HTTP (เชื่อมต่อกับ URL)
- URL:
http://127.0.0.1:3000/mcp - เพิ่มส่วนหัวที่กำหนดเอง:
Authorization: Bearer re_your_key_hereและเปิดใช้งานปุ่มสลับ - คลิก Connect จากนั้นใช้ "List tools" เพื่อตรวจสอบว่าเซิร์ฟเวอร์ทำงานอยู่