Resend Email

ทางการ

ส่งอีเมลโดยตรงจากโปรแกรมแก้ไขของคุณโดยใช้ Resend API

GitHub
561
ลองใช้ MCP นี้ผู้สนับสนุน

คุณทำอะไรได้บ้างด้วย 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

smithery badge npm version

เชื่อมต่อ 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 หรือตัวแปร env 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: 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 และอ่านเนื้อหาของร่างในขณะที่ทำงานร่วมกันในแคมเปญกระจายเสียงและเทมเพลต

การพัฒนาในท้องถิ่น

  1. โคลนโปรเจกต์นี้แล้ว build:
git clone https://github.com/resend/resend-mcp.git
pnpm install
pnpm run build
  1. เพื่อใช้ 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:

  1. รัน TypeScript watcher เพื่อ auto-rebuild เมื่อบันทึก:

    pnpm tsc --watch
    
  2. ในไดเรกทอรีแยก สร้าง .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"
          }
        }
      }
    }
    
  3. เริ่ม Claude Code จากไดเรกทอรีนั้นและใช้เครื่องมือ MCP หลังจากทำการเปลี่ยนแปลงโค้ด ให้เริ่มเซสชัน Claude Code ใหม่เพื่อรับ build ใหม่

หลักการเดียวกันนี้ใช้กับ MCP client ใดๆ — แยกสภาพแวดล้อมทดสอบของคุณจากสภาพแวดล้อม dev ใช้พาธสัมบูรณ์ไปยัง dist/index.js และเชื่อมต่อ MCP server ใหม่หลังจาก rebuild

การทดสอบกับ MCP Inspector

หมายเหตุ: ตรวจสอบว่าคุณได้ build โปรเจกต์ก่อน (ดูส่วน การพัฒนาในท้องถิ่น ด้านบน)

การใช้ Stdio Transport

  1. ตั้งค่า API key ของคุณ:

    export RESEND_API_KEY=re_your_key_here
    
  2. เริ่ม inspector:

    pnpm inspector
    
  3. ในเบราว์เซอร์ (Inspector UI):

    • เลือก stdio (เปิดโปรเซส)
    • คำสั่ง: node
    • อาร์กิวเมนต์: dist/index.js (หรือพาธเต็มไปยัง dist/index.js)
    • Env: RESEND_API_KEY=re_your_key_here (หรือปล่อยว่างหากคุณส่งออกไว้แล้วในเทอร์มินัลเดียวกัน)
    • คลิก เชื่อมต่อ จากนั้นใช้ "List tools" เพื่อยืนยันว่าเซิร์ฟเวอร์ทำงาน

การใช้ HTTP Transport

  1. เริ่มเซิร์ฟเวอร์ HTTP ในเทอร์มินัลหนึ่ง:

    node dist/index.js --http --port 3000
    
  2. เริ่ม inspector ในอีกเทอร์มินัลหนึ่ง:

    pnpm inspector
    
  3. ในเบราว์เซอร์ (Inspector UI):

    • เลือก Streamable HTTP (เชื่อมต่อกับ URL)
    • URL: http://127.0.0.1:3000/mcp
    • เพิ่ม header ที่กำหนดเอง: Authorization: Bearer re_your_key_here และเปิดใช้งาน toggle
    • คลิก เชื่อมต่อ จากนั้นใช้ "List tools" เพื่อยืนยันว่าเซิร์ฟเวอร์ทำงาน