Resend Email

chính thức

Gửi email trực tiếp từ trình soạn thảo của bạn bằng Resend API.

Bạn có thể làm gì với Resend Email MCP?

  • Gửi và quản lý email — Yêu cầu trợ lý của bạn gửi, liệt kê, lấy, hủy hoặc gửi hàng loạt email với tệp đính kèm, CC/BCC, lịch trình và tiêu đề tùy chỉnh qua send_email.
  • Quản lý danh bạ và đối tượng — Tạo, cập nhật hoặc xóa danh bạ, quản lý tư cách thành viên phân đoạn và đăng ký chủ đề, và nhập danh bạ từ CSV bằng create_contact.
  • Xây dựng và gửi chương trình phát sóng — Tạo, lên lịch, gửi hoặc hủy các chiến dịch phát sóng với các trình giữ chỗ cá nhân hóa và văn bản xem trước thông qua create_broadcast.
  • Xử lý email đến — Liệt kê và đọc email đã nhận, và tải xuống tệp đính kèm từ các tin nhắn đến bằng list_received_emails.
  • Quản lý mẫu và tên miền — Tạo, cập nhật, xuất bản hoặc sao chép các mẫu email với biến, và xác minh hoặc cấu hình tên miền người gửi qua create_templateverify_domain.
  • Giám sát và tự động hóa — Xem lại nhật ký yêu cầu API, quản lý webhook và kích hoạt tự động hóa bằng cách gửi sự kiện cho danh bạ bằng list_logssend_event.

Tài liệu

Resend MCP Server

smithery badge npm version

Kết nối tác nhân AI của bạn với nền tảng Resend. Gửi và nhận email, quản lý danh bạ, broadcast, domain, và nhiều hơn nữa, trực tiếp từ bất kỳ MCP client nào như Claude, Cursor, hoặc Claude Code.

Chúng tôi cung cấp cả MCP server từ xa được Resend lưu trữ và MCP server cục bộ (gói này).

MCP Server Từ Xa

Resend lưu trữ MCP server tại:

https://mcp.resend.com/mcp

Kết nối bất kỳ MCP client nào hỗ trợ server từ xa (Streamable HTTP). Không cần cài đặt gì và không cần chạy tiến trình cục bộ, đây là lựa chọn tốt nhất cho các client dựa trên web như Claude và các nền tảng tác nhân được lưu trữ.

Khi bạn kết nối, client của bạn sẽ mở cửa sổ trình duyệt để đăng nhập vào Resend và phê duyệt quyền truy cập bằng OAuth.

Claude Code

claude mcp add --transport http resend https://mcp.resend.com/mcp

Sau đó chạy /mcp trong Claude Code và chọn resend để hoàn tất đăng nhập OAuth.

Claude

Trong Claude (web hoặc desktop), mở Settings > Connectors > Add custom connector và nhập:

https://mcp.resend.com/mcp

Cursor

Mở bảng lệnh và chọn "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

Để sử dụng GitHub Copilot trong VS Code, thêm nội dung sau vào settings.json của bạn:

{
  "mcp": {
    "servers": {
      "resend": {
        "type": "http",
        "url": "https://mcp.resend.com/mcp"
      }
    }
  }
}

Windsurf

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

Warp

Trong Settings của Warp, điều hướng đến Agents > MCP servers, và nhấp +Add để thêm server mới.

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

Xác thực bằng API key

Nếu client của bạn chạy ở nơi không thể đăng nhập qua trình duyệt (máy chủ, CI, hoặc tác nhân không có giao diện), hãy truyền Resend API key dưới dạng Bearer token thay vì sử dụng OAuth.

Claude Code:

claude mcp add --transport http resend https://mcp.resend.com/mcp --header "Authorization: Bearer re_xxxxxxxxx"

Cấu hình JSON (Cursor, Windsurf, và các công cụ khác), thêm header Authorization:

{
  "mcpServers": {
    "resend": {
      "url": "https://mcp.resend.com/mcp",
      "headers": {
        "Authorization": "Bearer re_xxxxxxxxx"
      }
    }
  }
}

MCP Server Cục Bộ

Server được lưu trữ chạy cùng mã nguồn mở có sẵn trên NPM dưới tên resend-mcp. Nếu bạn muốn tự chạy server, bạn có thể tích hợp nó vào bất kỳ MCP client được hỗ trợ nào bằng npx. Bạn sẽ cần:

Server cục bộ hỗ trợ hai chế độ truyền tải: stdio (mặc định) và HTTP.

Chọn chế độ và client phù hợp bên dưới để bắt đầu. Nhớ thay re_xxxxxxxxx bằng API key thực tế của bạn.

Truyền tải Stdio (Mặc định)

Thiết lập nhanh

Cài đặt cho tất cả các tác nhân và trình soạn thảo được phát hiện/chọn:

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

Mở bảng lệnh và chọn "Cursor Settings" > "MCP" > "Add new global MCP server".

{
  "mcpServers": {
    "resend": {
      "command": "npx",
      "args": ["-y", "resend-mcp"],
      "env": {
        "RESEND_API_KEY": "re_xxxxxxxxx"
      }
    }
  }
}

Claude Desktop

Mở Claude Desktop settings > tab "Developer" > "Edit Config".

{
  "mcpServers": {
    "resend": {
      "command": "npx",
      "args": ["-y", "resend-mcp"],
      "env": {
        "RESEND_API_KEY": "re_xxxxxxxxx"
      }
    }
  }
}

Copilot

Để sử dụng GitHub Copilot trong VS Code, thêm nội dung sau vào settings.json của bạn:

{
  "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

Thêm vào cấu hình opencode.json của bạn:

{
  "$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

Trong Devin, mở Settings > Connections > MCP Servers và nhấp Add a custom MCP. Xem hướng dẫn Devin để biết các bước chi tiết đầy đủ.

{
  "mcpServers": {
    "resend": {
      "command": "npx",
      "args": ["-y", "resend-mcp"],
      "env": {
        "RESEND_API_KEY": "re_xxxxxxxxx",
        "SENDER_EMAIL_ADDRESS": "onboarding@resend.dev"
      }
    }
  }
}

Truyền tải HTTP

Chạy server qua HTTP cho các tích hợp từ xa hoặc dựa trên web, ví dụ phía sau tunnel hoặc reverse proxy của riêng bạn, thay vì sử dụng MCP server từ xa được lưu trữ của Resend. Trong chế độ HTTP, mỗi client xác thực bằng cách truyền Resend API key của họ dưới dạng Bearer token trong header Authorization.

Khởi động server:

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

Server sẽ lắng nghe trên http://127.0.0.1:3000 và hiển thị endpoint MCP tại /mcp bằng Streamable HTTP.

Claude Code

claude mcp add resend --transport http http://127.0.0.1:3000/mcp --header "Authorization: Bearer re_xxxxxxxxx"

Cursor

Mở bảng lệnh và chọn "Cursor Settings" > "MCP" > "Add new global MCP server".

{
  "mcpServers": {
    "resend": {
      "url": "http://127.0.0.1:3000/mcp",
      "headers": {
        "Authorization": "Bearer re_xxxxxxxxx"
      }
    }
  }
}

Bạn cũng có thể đặt cổng qua biến môi trường MCP_PORT:

MCP_PORT=3000 npx -y resend-mcp --http

Sử dụng như một thư viện

Truyền tải HTTP cũng được xuất ra để có thể nhúng vào một dịch vụ khác thay vì chạy qua CLI. Mỗi client kết nối xác thực bằng Resend API key riêng của họ được truyền dưới dạng 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);

Theo mặc định, server áp dụng xác thực Host chỉ dành cho localhost (bảo vệ chống DNS-rebinding). Khi triển khai phía sau reverse proxy hoặc load balancer, nơi server được bảo vệ bởi Bearer API key cho từng yêu cầu, hãy đặt host thành 0.0.0.0 để Host được chuyển tiếp từ proxy và các kiểm tra sức khỏe của load balancer không bị từ chối với 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'] });

Qua CLI, điều này tương ứng với --host / --allowed-hosts (hoặc MCP_HOST / MCP_ALLOWED_HOSTS).

Các tùy chọn

Bạn có thể truyền các đối số bổ sung để cấu hình server cục bộ:

  • --key: Resend API key của bạn (chỉ ở chế độ stdio, vì chế độ HTTP sử dụng Bearer token từ client)
  • --sender: Địa chỉ email người gửi mặc định từ một domain đã xác minh
  • --reply-to: Địa chỉ email trả lời mặc định (có thể chỉ định nhiều lần)
  • --http: Sử dụng truyền tải HTTP thay vì stdio (mặc định: stdio)
  • --port: Cổng HTTP khi sử dụng --http (mặc định: 3000, hoặc biến môi trường MCP_PORT)
  • --host: Host cho bảo vệ chống DNS-rebinding khi sử dụng --http (mặc định: 127.0.0.1, hoặc MCP_HOST). Đặt thành 0.0.0.0 để tắt xác thực Host phía sau proxy/load balancer.
  • --allowed-hosts: Danh sách cho phép Host phân tách bằng dấu phẩy khi sử dụng --http (hoặc MCP_ALLOWED_HOSTS)

Biến môi trường:

  • RESEND_API_KEY: Resend API key của bạn (bắt buộc cho stdio, tùy chọn cho HTTP vì client truyền qua Bearer token)
  • SENDER_EMAIL_ADDRESS: Địa chỉ email người gửi mặc định từ một domain đã xác minh (tùy chọn)
  • REPLY_TO_EMAIL_ADDRESSES: Danh sách địa chỉ email trả lời phân tách bằng dấu phẩy (tùy chọn)
  • MCP_PORT: Cổng HTTP khi sử dụng --http (tùy chọn)
  • MCP_HOST: Host cho bảo vệ chống DNS-rebinding khi sử dụng --http (tùy chọn)
  • MCP_ALLOWED_HOSTS: Danh sách cho phép Host phân tách bằng dấu phẩy khi sử dụng --http (tùy chọn)

[!NOTE] Nếu bạn không cung cấp địa chỉ email người gửi, MCP server sẽ yêu cầu bạn cung cấp mỗi lần bạn gọi công cụ.

Các Công Cụ MCP Server

MCP server của Resend cung cấp cho tác nhân AI của bạn quyền truy cập gốc vào toàn bộ nền tảng Resend thông qua một tích hợp duy nhất. Bạn có thể quản lý mọi khía cạnh của hạ tầng email bằng ngôn ngữ tự nhiên.

  • Emails: Gửi, liệt kê, lấy, hủy, cập nhật, và gửi hàng loạt email. Hỗ trợ HTML, văn bản thuần, tệp đính kèm (tệp cục bộ, URL, hoặc base64), CC/BCC, trả lời, lên lịch, thẻ, header tùy chỉnh, gửi theo chủ đề, và khóa idempotency.
  • Received Emails: Liệt kê và đọc email đến. Liệt kê và tải xuống tệp đính kèm của email đã nhận.
  • Templates: Tạo, liệt kê, lấy, cập nhật, xuất bản, nhân bản, và xóa template email. Hỗ trợ soạn nội dung template và các placeholder {{{VARIABLE}}}.
  • Contacts: Tạo, liệt kê, lấy, cập nhật, và xóa danh bạ. Quản lý tư cách thành viên phân khúc, đăng ký chủ đề, và nhập danh bạ CSV. Hỗ trợ thuộc tính danh bạ tùy chỉnh.
  • Broadcasts: Tạo, gửi, hủy, liệt kê, lấy, cập nhật, và xóa chiến dịch broadcast. Hỗ trợ lên lịch, placeholder cá nhân hóa, và văn bản xem trước.
  • Automations: Tạo, liệt kê, lấy, cập nhật, và xóa automation. Xem lại các lần chạy của một automation.
  • Events: Gửi sự kiện để kích hoạt automation cho một danh bạ. Tạo, cập nhật, và xóa định nghĩa sự kiện.
  • Domains: Tạo, liệt kê, lấy, cập nhật, xóa, và xác minh domain người gửi. Cấu hình theo dõi, TLS, và khả năng gửi/nhận. Tạo và xác minh yêu cầu domain.
  • Segments: Tạo, liệt kê, lấy, và xóa phân khúc đối tượng.
  • Suppressions: Liệt kê, lấy, thêm, và xóa các mục trong danh sách chặn, riêng lẻ hoặc hàng loạt. Các lần trả lại cứng và khiếu nại spam bị chặn tự động; thêm địa chỉ thủ công để tôn trọng yêu cầu không liên hệ.
  • Topics: Tạo, liệt kê, lấy, cập nhật, và xóa chủ đề đăng ký.
  • Contact Properties: Tạo, liệt kê, lấy, cập nhật, và xóa thuộc tính danh bạ tùy chỉnh.
  • API Keys: Tạo, liệt kê, và xóa API key.
  • Webhooks: Tạo, liệt kê, lấy, cập nhật, và xóa webhook cho thông báo sự kiện.
  • Logs: Liệt kê và kiểm tra nhật ký yêu cầu API, bao gồm toàn bộ nội dung yêu cầu và phản hồi.
  • Editor: Kết nối (và ngắt kết nối) với trình soạn thảo trực quan trong bảng điều khiển Resend, và đọc nội dung bản nháp khi cộng tác trên broadcast và template.

Phát Triển Cục Bộ

  1. Nhân bản dự án này và xây dựng:
git clone https://github.com/resend/resend-mcp.git
pnpm install
pnpm run build
  1. Để sử dụng bản build cục bộ, thay lệnh npx bằng đường dẫn đến bản build cục bộ của bạn:

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"
      }
    }
  }
}

Kiểm Thử Trực Tiếp với MCP Client

Khi phát triển, bạn có thể kiểm tra các thay đổi trong một phiên MCP client thực trong khi chỉnh sửa mã ở một nơi khác.

Ý tưởng: chạy tsc --watch để liên tục xây dựng lại dist/, và trỏ một MCP client riêng biệt đến dist/index.js đã build từ một thư mục khác. Khi bạn muốn áp dụng các thay đổi mã, hãy khởi động lại phiên MCP client (MCP server là các tiến trình stdio tồn tại lâu dài và không tự động tải lại nóng).

Ví dụ với Claude Code:

  1. Chạy trình theo dõi TypeScript để tự động xây dựng lại khi lưu:

    pnpm tsc --watch
    
  2. Trong một thư mục riêng biệt, tạo một .mcp.json trỏ đến đầu ra 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. Khởi động Claude Code từ thư mục đó và sử dụng các công cụ MCP. Sau khi thực hiện thay đổi mã, hãy bắt đầu một phiên Claude Code mới để áp dụng bản build mới.

Nguyên tắc tương tự áp dụng cho bất kỳ MCP client nào — tách môi trường kiểm thử của bạn khỏi môi trường phát triển, sử dụng đường dẫn tuyệt đối đến dist/index.js, và kết nối lại MCP server sau khi xây dựng lại.

Kiểm Thử với MCP Inspector

Lưu ý: Đảm bảo bạn đã xây dựng dự án trước (xem phần Phát Triển Cục Bộ ở trên).

Sử dụng Truyền Tải Stdio

  1. Đặt API key của bạn:

    export RESEND_API_KEY=re_your_key_here
    
  2. Khởi động inspector:

    pnpm inspector
    
  3. Trong trình duyệt (Giao diện Inspector):

    • Chọn stdio (khởi chạy một tiến trình).
    • Command: node
    • Args: dist/index.js (hoặc đường dẫn đầy đủ đến dist/index.js)
    • Env: RESEND_API_KEY=re_your_key_here (hoặc để trống nếu bạn đã xuất nó trong cùng terminal).
    • Nhấp Connect, sau đó sử dụng "List tools" để xác minh server hoạt động.

Sử dụng Truyền Tải HTTP

  1. Khởi động HTTP server trong một terminal:

    node dist/index.js --http --port 3000
    
  2. Khởi động inspector trong một terminal khác:

    pnpm inspector
    
  3. Trong trình duyệt (Giao diện Inspector):

    • Chọn Streamable HTTP (kết nối đến URL).
    • URL: http://127.0.0.1:3000/mcp
    • Thêm header tùy chỉnh: Authorization: Bearer re_your_key_here và kích hoạt công tắc.
    • Nhấp Connect, sau đó sử dụng "List tools" để xác minh server hoạt động.