Resend Email

ทางการ

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

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

คุณทำอะไรได้บ้างด้วย Resend Email MCP?

  • ส่งอีเมลธุรกรรม — ให้ผู้ช่วยของคุณเขียนและส่งอีเมลรูปแบบ HTML หรือข้อความธรรมดาพร้อมไฟล์แนบ CC/BCC และส่วนหัวที่กำหนดเองผ่าน https://mcp.resend.com/mcp
  • จัดการเทมเพลตอีเมล — ให้ผู้ช่วยของคุณสร้าง อัปเดต เผยแพร่ หรือทำสำเนาเทมเพลตด้วยตัวยึดตำแหน่ง {{{VARIABLE}}} สำหรับแคมเปญที่ใช้ซ้ำได้
  • ติดตามการส่งและการมีส่วนร่วม — ให้ผู้ช่วยของคุณแสดงรายการอีเมลที่ส่งและดึงข้อมูลเมตริกการส่ง หรือยกเลิกการส่งตามกำหนดเวลาก่อนที่จะถูกส่งออกไป
  • จัดการอีเมลขาเข้า — ให้ผู้ช่วยของคุณอ่านข้อความที่ได้รับและดาวน์โหลดไฟล์แนบโดยตรงจากกล่องจดหมาย Resend ของคุณ
  • จัดการผู้ติดต่อและกลุ่มผู้ชม — สั่งให้ผู้ช่วยของคุณสร้าง อัปเดต หรือแบ่งกลุ่มผู้ติดต่อ และนำเข้ารายการ CSV พร้อมคุณสมบัติที่กำหนดเอง
  • ตรวจสอบการใช้งาน API — ขอข้อมูลโควตาระดับบัญชีและข้อจำกัดอัตราการใช้งานเพื่อติดตามโครงสร้างพื้นฐานอีเมลของคุณ

เซิร์ฟเวอร์ MCP แบบโฮสต์

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

ติดตั้งลง Claude Code, Codex, Cursor และอื่นๆ

เอกสาร

Resend MCP Server

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 ใดๆ ที่รองรับ remote servers (Streamable HTTP) ไม่ต้องติดตั้งอะไรและไม่มีกระบวนการ local ให้รัน ซึ่งทำให้เป็นตัวเลือกที่ดีที่สุดสำหรับ web-based clients เช่น Claude และแพลตฟอร์ม hosted agent

เมื่อคุณเชื่อมต่อ client ของคุณจะเปิดหน้าต่างเบราว์เซอร์เพื่อเข้าสู่ระบบ 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 เพื่อเพิ่ม server ใหม่

{
  "resend": {
    "serverUrl": "https://mcp.resend.com/mcp"
  }
}

การตรวจสอบสิทธิ์ด้วย API key

หาก client ของคุณรันในที่ที่ไม่สามารถเข้าสู่ระบบผ่านเบราว์เซอร์ได้ (server, 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

Server ที่โฮสต์ไว้รันโค้ดโอเพนซอร์สเดียวกันกับที่มีบน NPM ในชื่อ resend-mcp หากคุณต้องการรัน server ด้วยตัวเอง คุณสามารถรวมเข้ากับ MCP client ที่รองรับใดๆ โดยใช้ npx คุณจะต้อง:

Local server รองรับโหมด transport สองแบบ: stdio (ค่าเริ่มต้น) และ HTTP

เลือกโหมดและ client ที่คุณต้องการด้านล่างเพื่อเริ่มต้น อย่าลืมแทนที่ re_xxxxxxxxx ด้วย API key จริงของคุณ

Stdio Transport (ค่าเริ่มต้น)

การติดตั้งอย่างรวดเร็ว

ติดตั้งสำหรับ agent และ editor ที่ตรวจพบ/เลือกทั้งหมด:

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 เปิด 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 Transport

รัน server ผ่าน HTTP สำหรับการรวมระบบระยะไกลหรือบนเว็บ เช่น หลัง tunnel หรือ reverse proxy ของคุณเอง แทนการใช้ hosted remote MCP server ของ Resend ในโหมด HTTP แต่ละ client จะตรวจสอบสิทธิ์โดยส่ง Resend API key ของตนเป็น Bearer token ใน header Authorization

เริ่ม server:

npx -y resend-mcp --http --port 3000

Server จะฟังที่ 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 ได้ แต่ละ client ที่เชื่อมต่อจะตรวจสอบสิทธิ์ด้วย 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);

โดยค่าเริ่มต้น server จะใช้การตรวจสอบ Host เฉพาะ localhost (การป้องกัน DNS-rebinding) เมื่อปรับใช้หลัง reverse proxy หรือ load balancer ซึ่ง server ได้รับการป้องกันด้วย Bearer API key ต่อคำขอ ให้ตั้งค่า host เป็น 0.0.0.0 เพื่อให้ Host ที่ส่งต่อจาก proxy และการตรวจสอบสุขภาพของ 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)

ตัวเลือก

คุณสามารถส่งอาร์กิวเมนต์เพิ่มเติมเพื่อกำหนดค่า local server:

  • --key: Resend API key ของคุณ (เฉพาะโหมด stdio เนื่องจากโหมด HTTP ใช้ Bearer token จาก client)
  • --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 หลัง proxy/load balancer
  • --allowed-hosts: รายการอนุญาต Host คั่นด้วยเครื่องหมายจุลภาคเมื่อใช้ --http (หรือ MCP_ALLOWED_HOSTS)

ตัวแปรสภาพแวดล้อม:

  • RESEND_API_KEY: Resend API key ของคุณ (จำเป็นสำหรับ stdio ไม่บังคับสำหรับ HTTP เนื่องจาก client ส่งผ่าน 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 ทั้งหมดได้โดยตรงผ่านการรวมระบบเดียว คุณสามารถจัดการทุกด้านของโครงสร้างพื้นฐานอีเมลของคุณด้วยภาษาธรรมชาติ

  • อีเมล: ส่ง รายการ รับ ยกเลิก อัปเดต แชร์ และส่งอีเมลแบบกลุ่ม ดึงข้อมูลเมตริกการส่งและการมีส่วนร่วม รองรับ HTML ข้อความธรรมดา ไฟล์แนบ (ไฟล์ local, URL หรือ base64), CC/BCC, ตอบกลับ, การกำหนดเวลา, แท็ก, header ที่กำหนดเอง, การส่งตามหัวข้อ และคีย์ idempotency
  • อีเมลที่ได้รับ: รายการและอ่านอีเมลขาเข้า รายการและดาวน์โหลดไฟล์แนบของอีเมลที่ได้รับ
  • เทมเพลต: สร้าง รายการ รับ อัปเดต เผยแพร่ ทำสำเนา และลบเทมเพลตอีเมล รองรับการเขียนเนื้อหาเทมเพลตและตัวยึดตำแหน่ง {{{VARIABLE}}}
  • ผู้ติดต่อ: สร้าง รายการ รับ อัปเดต และลบผู้ติดต่อ จัดการสมาชิกกลุ่ม การสมัครหัวข้อ และการนำเข้าผู้ติดต่อ CSV รองรับคุณสมบัติผู้ติดต่อที่กำหนดเอง
  • จดหมายข่าว: สร้าง ส่ง ยกเลิก ทำสำเนา รายการ รับ อัปเดต และลบแคมเปญจดหมายข่าว รายการลิงก์ที่คลิกของจดหมายข่าว และผู้รับตามประเภทเหตุการณ์ (ส่งแล้ว, ส่งถึง, เปิดแล้ว, คลิกแล้ว, ตีกลับ, ร้องเรียน, ยกเลิกการสมัคร, ระงับ) รองรับการกำหนดเวลา ตัวยึดตำแหน่งการปรับแต่งส่วนบุคคล และข้อความตัวอย่าง
  • ระบบอัตโนมัติ: สร้าง รายการ รับ อัปเดต ทำสำเนา และลบระบบอัตโนมัติ ตรวจสอบการรันของระบบอัตโนมัติ
  • เหตุการณ์: ส่งเหตุการณ์เพื่อเรียกใช้ระบบอัตโนมัติสำหรับผู้ติดต่อ สร้าง อัปเดต และลบคำจำกัดความของเหตุการณ์
  • โดเมน: สร้าง รายการ รับ อัปเดต ลบ และยืนยันโดเมนผู้ส่ง กำหนดค่าการติดตาม TLS และความสามารถในการส่ง/รับ สร้างและยืนยันการอ้างสิทธิ์โดเมน
  • กลุ่ม: สร้าง รายการ รับ อัปเดต และลบกลุ่มผู้ชม
  • การระงับ: รายการ รับ เพิ่ม และลบรายการระงับ ทีละรายการหรือเป็นกลุ่ม การตีกลับแบบถาวรและการร้องเรียนสแปมจะถูกระงับโดยอัตโนมัติ เพิ่มที่อยู่ด้วยตนเองเพื่อเคารพคำขอไม่ติดต่อ
  • หัวข้อ: สร้าง รายการ รับ อัปเดต และลบหัวข้อการสมัคร
  • คุณสมบัติผู้ติดต่อ: สร้าง รายการ รับ อัปเดต และลบคุณลักษณะผู้ติดต่อที่กำหนดเอง
  • API Keys: สร้าง รายการ อัปเดต และลบ API keys
  • Webhooks: สร้าง รายการ รับ อัปเดต และลบ webhooks สำหรับการแจ้งเตือนเหตุการณ์ และตรวจสอบประวัติการส่ง — เหตุการณ์ที่ส่งไปยัง webhook, payload ของเหตุการณ์หนึ่ง และความพยายามในการส่ง เล่นเหตุการณ์ซ้ำเพื่อจัดคิวการส่งอีกครั้ง และหมุนความลับการลงนามของ webhook
  • บันทึก: รายการและตรวจสอบบันทึกคำขอ API รวมถึงเนื้อหาคำขอและคำตอบทั้งหมด
  • การใช้งาน: ดึงข้อมูลการใช้งานระดับบัญชีและโควตา: อีเมล ผู้ติดต่อ กลุ่ม จดหมายข่าว AI credits การรันระบบอัตโนมัติ โดเมน และขีดจำกัดอัตรา API
  • ตัวแก้ไข: เชื่อมต่อ (และตัดการเชื่อมต่อ) กับตัวแก้ไขภาพในแดชบอร์ด 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 ใดๆ — แยกสภาพแวดล้อมการทดสอบของคุณออกจากสภาพแวดล้อมการพัฒนา ใช้พาธสัมบูรณ์ไปยัง 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 (เปิดกระบวนการ)
    • Command: node
    • Args: dist/index.js (หรือพาธเต็มไปยัง dist/index.js)
    • Env: RESEND_API_KEY=re_your_key_here (หรือเว้นว่างหากคุณส่งออกแล้วในเทอร์มินัลเดียวกัน)
    • คลิก Connect จากนั้นใช้ "List tools" เพื่อตรวจสอบว่า server ทำงานอยู่

การใช้ HTTP Transport

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

    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
    • คลิก Connect จากนั้นใช้ "List tools" เพื่อตรวจสอบว่า server ทำงานอยู่