Resend Email
ทางการส่งอีเมลโดยตรงจากโปรแกรมแก้ไขของคุณโดยใช้ Resend API
คุณทำอะไรได้บ้างด้วย Resend Email MCP?
- ส่งและจัดการอีเมล — ให้ผู้ช่วยของคุณส่ง, แสดงรายการ, รับ, ยกเลิก, หรือส่งอีเมลแบบกลุ่มพร้อมไฟล์แนบ, CC/BCC, การกำหนดเวลา, และส่วนหัวที่กำหนดเองผ่าน
send_email - จัดการผู้ติดต่อและกลุ่มเป้าหมาย — สร้าง, อัปเดต, หรือลบผู้ติดต่อ, จัดการการเป็นสมาชิกกลุ่มและหัวข้อที่สมัครรับ, และนำเข้าผู้ติดต่อจาก CSV โดยใช้
create_contact - สร้างและส่งบรอดแคสต์ — สร้าง, กำหนดเวลา, ส่ง, หรือยกเลิกแคมเปญบรอดแคสต์พร้อมตัวแปรส่วนบุคคลและข้อความตัวอย่างผ่าน
create_broadcast - จัดการอีเมลขาเข้า — แสดงรายการและอ่านอีเมลที่ได้รับ, และดาวน์โหลดไฟล์แนบจากข้อความขาเข้าโดยใช้
list_received_emails - จัดการเทมเพลตและโดเมน — สร้าง, อัปเดต, เผยแพร่, หรือทำสำเนาเทมเพลตอีเมลพร้อมตัวแปร, และตรวจสอบหรือกำหนดค่าโดเมนผู้ส่งผ่าน
create_templateและverify_domain - ตรวจสอบและทำงานอัตโนมัติ — ตรวจสอบบันทึกคำขอ API, จัดการเว็บฮุค, และเรียกใช้ระบบอัตโนมัติโดยส่งเหตุการณ์สำหรับผู้ติดต่อโดยใช้
list_logsและsend_event
เอกสาร
Resend MCP Server
เชื่อมต่อ AI agent ของคุณกับแพลตฟอร์ม Resend ส่งและรับอีเมล จัดการผู้ติดต่อ การกระจายเสียง โดเมน และอื่นๆ ได้โดยตรงจาก MCP client ใดๆ เช่น Claude, Cursor หรือ Claude Code
เรามีทั้ง remote MCP server โฮสต์โดย Resend และ local MCP server (แพ็กเกจนี้)
Remote MCP Server
Resend โฮสต์ MCP server ที่:
https://mcp.resend.com/mcp
เชื่อมต่อ MCP client ที่รองรับเซิร์ฟเวอร์ระยะไกล (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 (เว็บหรือเดสก์ท็อป) เปิด การตั้งค่า > ตัวเชื่อมต่อ > เพิ่มตัวเชื่อมต่อแบบกำหนดเอง แล้วป้อน:
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 key
หากไคลเอนต์ของคุณทำงานในสภาพแวดล้อมที่ไม่สามารถเข้าสู่ระบบผ่านเบราว์เซอร์ได้ (เซิร์ฟเวอร์ CI หรือ headless agent) ให้ส่ง Resend API key เป็น Bearer token แทนการใช้ OAuth
Claude Code:
claude mcp add --transport http resend https://mcp.resend.com/mcp --header "Authorization: Bearer re_xxxxxxxxx"
JSON config (Cursor, Windsurf และอื่นๆ) เพิ่ม header Authorization:
{
"mcpServers": {
"resend": {
"url": "https://mcp.resend.com/mcp",
"headers": {
"Authorization": "Bearer re_xxxxxxxxx"
}
}
}
}
Local MCP Server
เซิร์ฟเวอร์ที่โฮสต์ใช้โค้ดโอเพนซอร์สเดียวกันกับที่มีบน NPM ในชื่อ resend-mcp หากคุณต้องการรันเซิร์ฟเวอร์ด้วยตัวเอง คุณสามารถรวมเข้ากับ MCP client ที่รองรับใดๆ โดยใช้ npx คุณจะต้อง:
เซิร์ฟเวอร์ท้องถิ่นรองรับโหมดการส่งสองแบบ: stdio (ค่าเริ่มต้น) และ HTTP
เลือกโหมดและไคลเอนต์ที่ต้องการด้านล่างเพื่อเริ่มต้น อย่าลืมแทนที่ re_xxxxxxxxx ด้วย API key จริงของคุณ
Stdio Transport (ค่าเริ่มต้น)
การตั้งค่าอย่างรวดเร็ว
ติดตั้งสำหรับเอเจนต์และตัวแก้ไขที่ตรวจพบ/เลือกทั้งหมด:
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
เพิ่มใน config 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 เปิด การตั้งค่า > การเชื่อมต่อ > 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 Transport
รันเซิร์ฟเวอร์ผ่าน HTTP สำหรับการรวมระบบระยะไกลหรือบนเว็บ เช่น หลัง tunnel หรือ reverse proxy ของคุณเอง แทนการใช้ remote MCP server ที่โฮสต์ ของ Resend ในโหมด HTTP ไคลเอนต์แต่ละตัวยืนยันตัวตนโดยส่ง Resend API key ของตนเป็น Bearer token ใน header Authorization
เริ่มเซิร์ฟเวอร์:
npx -y resend-mcp --http --port 3000
เซิร์ฟเวอร์จะรับฟังบน http://127.0.0.1:3000 และเปิดเผย MCP endpoint ที่ /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 transport ยังถูกส่งออกเพื่อให้สามารถฝังในบริการอื่นแทนการรันผ่าน CLI ไคลเอนต์ที่เชื่อมต่อแต่ละตัวยืนยันตัวตนด้วย Resend API key ของตัวเองที่ส่งเป็น Bearer token
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 ซึ่งเซิร์ฟเวอร์ได้รับการปกป้องด้วย Bearer API key ต่อคำขอ ให้ตั้งค่า 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: Resend API key ของคุณ (เฉพาะโหมด stdio เนื่องจากโหมด HTTP ใช้ Bearer token จากไคลเอนต์)--sender: ที่อยู่อีเมลผู้ส่งเริ่มต้นจากโดเมนที่ยืนยันแล้ว--reply-to: ที่อยู่อีเมลตอบกลับเริ่มต้น (ระบุได้หลายครั้ง)--http: ใช้ HTTP transport แทน stdio (ค่าเริ่มต้น: stdio)--port: พอร์ต HTTP เมื่อใช้--http(ค่าเริ่มต้น: 3000 หรือตัวแปร envMCP_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: Resend API key ของคุณ (จำเป็นสำหรับ stdio ไม่บังคับสำหรับ HTTP เนื่องจากไคลเอนต์ส่งผ่าน Bearer token)SENDER_EMAIL_ADDRESS: ที่อยู่อีเมลผู้ส่งเริ่มต้นจากโดเมนที่ยืนยันแล้ว (ไม่บังคับ)REPLY_TO_EMAIL_ADDRESSES: ที่อยู่อีเมลตอบกลับคั่นด้วยเครื่องหมายจุลภาค (ไม่บังคับ)MCP_PORT: พอร์ต HTTP เมื่อใช้--http(ไม่บังคับ)MCP_HOST: โฮสต์สำหรับการป้องกัน DNS-rebinding เมื่อใช้--http(ไม่บังคับ)MCP_ALLOWED_HOSTS: รายการอนุญาตHostคั่นด้วยเครื่องหมายจุลภาคเมื่อใช้--http(ไม่บังคับ)
[!NOTE] หากคุณไม่ได้ระบุที่อยู่อีเมลผู้ส่ง MCP server จะถามให้คุณระบุทุกครั้งที่เรียกใช้เครื่องมือ
เครื่องมือ MCP Server
MCP server ของ Resend ให้ AI agent ของคุณเข้าถึงแพลตฟอร์ม Resend ทั้งหมดโดยตรงผ่านการรวมระบบเดียว คุณสามารถจัดการทุกด้านของโครงสร้างพื้นฐานอีเมลของคุณด้วยภาษาธรรมชาติ
- Emails: ส่ง, รับ, แก้ไข, ยกเลิก, อัปเดต และส่งแบบกลุ่ม รองรับ HTML, ข้อความล้วน, ไฟล์แนบ (ไฟล์ท้องถิ่น, URL หรือ base64), CC/BCC, ตอบกลับ, การกำหนดเวลา, แท็ก, ส่วนหัวแบบกำหนดเอง, การส่งตามหัวข้อ และคีย์ idempotency
- Received Emails: รับและอ่านอีเมลขาเข้า รับและดาวน์โหลดไฟล์แนบของอีเมลขาเข้า
- Templates: สร้าง, รับ, อัปเดต, เผยแพร่, ทำสำเนา และลบเทมเพลตอีเมล รองรับการเขียนเนื้อหาเทมเพลตและตัวแทน
{{{VARIABLE}}} - Contacts: สร้าง, รับ, อัปเดต และลบผู้ติดต่อ จัดการสมาชิกภาพในเซ็กเมนต์, การสมัครหัวข้อ และการนำเข้าผู้ติดต่อ CSV รองรับคุณสมบัติผู้ติดต่อแบบกำหนดเอง
- Broadcasts: สร้าง, ส่ง, ยกเลิก, รับ, อัปเดต และลบแคมเปญกระจายเสียง รองรับการกำหนดเวลา, ตัวแทนการปรับแต่งส่วนบุคคล และข้อความตัวอย่าง
- Automations: สร้าง, รับ, อัปเดต และลบระบบอัตโนมัติ ตรวจสอบการรันของระบบอัตโนมัติ
- Events: ส่งเหตุการณ์เพื่อเรียกใช้ระบบอัตโนมัติสำหรับผู้ติดต่อ สร้าง, อัปเดต และลบคำนิยามเหตุการณ์
- Domains: สร้าง, รับ, อัปเดต, ลบ และตรวจสอบโดเมนผู้ส่ง กำหนดค่าการติดตาม, TLS และความสามารถในการส่ง/รับ สร้างและตรวจสอบการอ้างสิทธิ์โดเมน
- Segments: สร้าง, รับ และลบกลุ่มผู้ชม
- Suppressions: รับ, เพิ่ม และลบรายการในรายการระงับ เป็นรายบุคคลหรือแบบกลุ่ม การตีกลับแบบแข็งและการร้องเรียนสแปมถูกระงับโดยอัตโนมัติ เพิ่มที่อยู่ด้วยตนเองเพื่อปฏิบัติตามคำขอไม่ติดต่อ
- Topics: สร้าง, รับ, อัปเดต และลบหัวข้อการสมัคร
- Contact Properties: สร้าง, รับ, อัปเดต และลบคุณสมบัติผู้ติดต่อแบบกำหนดเอง
- API Keys: สร้าง, รับ และลบคีย์ API
- Webhooks: สร้าง, รับ, อัปเดต และลบเว็บฮุคสำหรับการแจ้งเตือนเหตุการณ์
- Logs: ดูและตรวจสอบบันทึกคำขอ API รวมถึงเนื้อหาคำขอและการตอบกลับแบบเต็ม
- Editor: เชื่อมต่อ (และตัดการเชื่อมต่อ) กับตัวแก้ไขภาพในแดชบอร์ด Resend และอ่านเนื้อหาของร่างในขณะที่ทำงานร่วมกันในแคมเปญกระจายเสียงและเทมเพลต
การพัฒนาในท้องถิ่น
- โคลนโปรเจกต์นี้แล้ว build:
git clone https://github.com/resend/resend-mcp.git
pnpm install
pnpm run build
- เพื่อใช้ build ในท้องถิ่น ให้แทนที่คำสั่ง
npxด้วยพาธไปยัง build ในท้องถิ่นของคุณ:
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 Client
เมื่อพัฒนาคุณสามารถทดสอบการเปลี่ยนแปลงในเซสชัน MCP client จริงในขณะที่แก้ไขโค้ดในอีกที่หนึ่ง
แนวคิด: รัน tsc --watch เพื่อ rebuild dist/ อย่างต่อเนื่อง และชี้ MCP client แยกต่างหากไปที่ dist/index.js ที่ build แล้วจากไดเรกทอรีอื่น เมื่อต้องการรับการเปลี่ยนแปลงโค้ด ให้รีสตาร์ทเซสชัน MCP client (MCP servers เป็นโปรเซส stdio อายุยาวที่ไม่ hot-reload)
ตัวอย่างกับ Claude Code:
-
รัน TypeScript watcher เพื่อ auto-rebuild เมื่อบันทึก:
pnpm tsc --watch -
ในไดเรกทอรีแยก สร้าง
.mcp.jsonชี้ไปที่เอาต์พุต 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" } } } } -
เริ่ม Claude Code จากไดเรกทอรีนั้นและใช้เครื่องมือ MCP หลังจากทำการเปลี่ยนแปลงโค้ด ให้เริ่มเซสชัน Claude Code ใหม่เพื่อรับ build ใหม่
หลักการเดียวกันนี้ใช้กับ MCP client ใดๆ — แยกสภาพแวดล้อมทดสอบของคุณจากสภาพแวดล้อม dev ใช้พาธสัมบูรณ์ไปยัง dist/index.js และเชื่อมต่อ MCP server ใหม่หลังจาก rebuild
การทดสอบกับ MCP Inspector
หมายเหตุ: ตรวจสอบว่าคุณได้ build โปรเจกต์ก่อน (ดูส่วน การพัฒนาในท้องถิ่น ด้านบน)
การใช้ Stdio Transport
-
ตั้งค่า API key ของคุณ:
export RESEND_API_KEY=re_your_key_here -
เริ่ม inspector:
pnpm inspector -
ในเบราว์เซอร์ (Inspector UI):
- เลือก stdio (เปิดโปรเซส)
- คำสั่ง:
node - อาร์กิวเมนต์:
dist/index.js(หรือพาธเต็มไปยังdist/index.js) - Env:
RESEND_API_KEY=re_your_key_here(หรือปล่อยว่างหากคุณส่งออกไว้แล้วในเทอร์มินัลเดียวกัน) - คลิก เชื่อมต่อ จากนั้นใช้ "List tools" เพื่อยืนยันว่าเซิร์ฟเวอร์ทำงาน
การใช้ HTTP Transport
-
เริ่มเซิร์ฟเวอร์ HTTP ในเทอร์มินัลหนึ่ง:
node dist/index.js --http --port 3000 -
เริ่ม inspector ในอีกเทอร์มินัลหนึ่ง:
pnpm inspector -
ในเบราว์เซอร์ (Inspector UI):
- เลือก Streamable HTTP (เชื่อมต่อกับ URL)
- URL:
http://127.0.0.1:3000/mcp - เพิ่ม header ที่กำหนดเอง:
Authorization: Bearer re_your_key_hereและเปิดใช้งาน toggle - คลิก เชื่อมต่อ จากนั้นใช้ "List tools" เพื่อยืนยันว่าเซิร์ฟเวอร์ทำงาน