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 email giao dịch — Yêu cầu trợ lý của bạn soạn và gửi email HTML hoặc văn bản thuần túy kèm tệp đính kèm, CC/BCC và tiêu đề tùy chỉnh qua https://mcp.resend.com/mcp.
  • Quản lý mẫu email — Nhờ trợ lý của bạn tạo, cập nhật, xuất bản hoặc sao chép các mẫu có chỗ chèn {{{VARIABLE}}} cho các chiến dịch tái sử dụng.
  • Theo dõi giao hàng và tương tác — Nhờ trợ lý của bạn liệt kê các email đã gửi và truy xuất số liệu giao hàng, hoặc hủy các lần gửi đã lên lịch trước khi chúng được gửi đi.
  • Xử lý email đến — Yêu cầu trợ lý của bạn đọc các tin nhắn đã nhận và tải xuống tệp đính kèm trực tiếp từ hộp thư đến Resend của bạn.
  • Quản lý danh bạ và đối tượng — Chỉ đạo trợ lý của bạn tạo, cập nhật hoặc phân khúc danh bạ, và nhập danh sách CSV với các thuộc tính tùy chỉnh.
  • Giám sát việc sử dụng API — Yêu cầu hạn mức cấp tài khoản và thông tin giới hạn tốc độ để theo dõi cơ sở hạ tầng email của bạn.

Máy chủ MCP được lưu trữ

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

Cài vào Claude Code, Codex, Cursor và nhiều công cụ khác

Tài liệu

Máy chủ MCP Resend

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ạ, chiến dịch quảng bá, tên miền và nhiều hơn nữa, trực tiếp từ bất kỳ máy khách MCP nào như Claude, Cursor hoặc Claude Code.

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

Máy chủ MCP từ xa

Resend lưu trữ máy chủ MCP tại:

https://mcp.resend.com/mcp

Kết nối bất kỳ máy khách MCP nào hỗ trợ máy chủ 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 máy khách 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, máy khách 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 máy tính để bàn), mở Cài đặt > Trình kết nối > Thêm trình kết nối tùy chỉnh và nhập:

https://mcp.resend.com/mcp

Cursor

Mở bảng lệnh và chọn "Cài đặt Cursor" > "MCP" > "Thêm máy chủ MCP toàn cục mới".

{
  "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 Cài đặt của Warp, điều hướng đến Tác nhân > Máy chủ MCP và nhấp +Thêm để thêm máy chủ mới.

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

Xác thực bằng khóa API

Nếu máy khách 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 đầu), hãy truyền khóa API Resend làm mã thông báo Bearer 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 ứng dụng khác), thêm tiêu đề Authorization:

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

Máy chủ MCP cục bộ

Máy chủ đượ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 máy chủ, bạn có thể tích hợp nó vào bất kỳ máy khách MCP được hỗ trợ nào bằng npx. Bạn sẽ cần:

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

Chọn chế độ và máy khách ưa thích của bạn bên dưới để bắt đầu. Nhớ thay re_xxxxxxxxx bằng khóa API 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 "Cài đặt Cursor" > "MCP" > "Thêm máy chủ MCP toàn cục mới".

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

Claude Desktop

Mở cài đặt Claude Desktop > tab "Nhà phát triển" > "Chỉnh sửa cấu hình".

{
  "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ở Cài đặt > Kết nối > Máy chủ MCP và nhấp Thêm MCP tùy chỉnh. 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 máy chủ qua HTTP cho các tích hợp từ xa hoặc dựa trên web, ví dụ sau đường hầm hoặc proxy ngược của riêng bạn, thay vì sử dụng máy chủ MCP từ xa được lưu trữ của Resend. Trong chế độ HTTP, mỗi máy khách xác thực bằng cách truyền khóa API Resend của họ làm mã thông báo Bearer trong tiêu đề Authorization.

Khởi động máy chủ:

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

Máy chủ sẽ lắng nghe trên http://127.0.0.1:3000 và hiển thị điểm cuối 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 "Cài đặt Cursor" > "MCP" > "Thêm máy chủ MCP toàn cục mới".

{
  "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 để có thể nhúng vào dịch vụ khác thay vì chạy qua CLI. Mỗi máy khách kết nối xác thực bằng khóa API Resend của riêng họ được truyền làm mã thông báo 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);

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

Tùy chọn

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

  • --key: Khóa API Resend của bạn (chỉ chế độ stdio, vì chế độ HTTP sử dụng mã thông báo Bearer từ máy khách)
  • --sender: Địa chỉ email người gửi mặc định từ tên miền đã 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: Máy chủ 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 sau proxy/bộ cân bằng tải.
  • --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: Khóa API Resend của bạn (bắt buộc cho stdio, tùy chọn cho HTTP vì máy khách truyền qua mã thông báo Bearer)
  • SENDER_EMAIL_ADDRESS: Địa chỉ email người gửi mặc định từ tên miền đã xác minh (tùy chọn)
  • REPLY_TO_EMAIL_ADDRESSES: Đị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: Máy chủ 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)

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

Công cụ máy chủ MCP

Máy chủ MCP 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 cơ sở hạ tầng email bằng ngôn ngữ tự nhiên.

  • Email: Gửi, liệt kê, lấy, hủy, cập nhật, chia sẻ và gửi hàng loạt email. Truy xuất số liệu giao hàng và tương tác. Hỗ trợ HTML, văn bản thuần túy, tệp đính kèm (tệp cục bộ, URL hoặc base64), CC/BCC, trả lời, lên lịch, thẻ, tiêu đề tùy chỉnh, gửi dựa trên chủ đề và khóa idempotency.
  • Email đã nhận: Liệt kê và đọc email đến. Liệt kê và tải xuống tệp đính kèm email đã nhận.
  • Mẫu: Tạo, liệt kê, lấy, cập nhật, xuất bản, sao chép và xóa mẫu email. Hỗ trợ soạn nội dung mẫu và trình giữ chỗ {{{VARIABLE}}}.
  • Danh bạ: 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.
  • Chiến dịch quảng bá: Tạo, gửi, hủy, sao chép, liệt kê, lấy, cập nhật và xóa chiến dịch quảng bá. Liệt kê các liên kết được nhấp của chiến dịch quảng bá và người nhận theo loại sự kiện (đã gửi, đã giao, đã mở, đã nhấp, bị trả lại, bị khiếu nại, đã hủy đăng ký, bị chặn). Hỗ trợ lên lịch, trình giữ chỗ cá nhân hóa và văn bản xem trước.
  • Tự động hóa: Tạo, liệt kê, lấy, cập nhật, sao chép và xóa tự động hóa. Xem lại các lần chạy của tự động hóa.
  • Sự kiện: Gửi sự kiện để kích hoạt tự động hóa cho danh bạ. Tạo, cập nhật và xóa định nghĩa sự kiện.
  • Tên miền: Tạo, liệt kê, lấy, cập nhật, xóa và xác minh tên miền 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 xác nhận tên miền.
  • Phân khúc: Tạo, liệt kê, lấy, cập nhật và xóa phân khúc đối tượng.
  • Chặn: Liệt kê, lấy, thêm và xóa các mục danh sách chặn, riêng lẻ hoặc hàng loạt. Trả lại cứng và khiếu nại thư rác được chặn tự động; thêm địa chỉ thủ công để tôn trọng yêu cầu không liên hệ.
  • Chủ đề: Tạo, liệt kê, lấy, cập nhật và xóa chủ đề đăng ký.
  • Thuộc tính danh bạ: Tạo, liệt kê, lấy, cập nhật và xóa thuộc tính danh bạ tùy chỉnh.
  • Khóa API: Tạo, liệt kê, cập nhật và xóa khóa API.
  • Webhooks: Tạo, liệt kê, lấy, cập nhật và xóa webhooks cho thông báo sự kiện và kiểm tra lịch sử giao hàng của chúng — các sự kiện được gửi đến webhook, tải trọng của một sự kiện và các lần thử giao hàng. Phát lại một sự kiện để xếp hàng giao hàng khác và xoay vòng bí mật ký của webhook.
  • Nhật ký: 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.
  • Sử dụng: Truy xuất thông tin sử dụng và hạn mức cấp tài khoản: email, danh bạ, phân khúc, chiến dịch quảng bá, tín dụng AI, lần chạy tự động hóa, tên miền và giới hạn tốc độ API.
  • Trình soạn thảo: 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 chiến dịch quảng bá và mẫu.

Phát triển cục bộ

  1. Sao chép 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 dựng cục bộ, thay thế lệnh npx bằng đường dẫn đến bản dựng 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 máy khách MCP

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

Ý tưởng: chạy tsc --watch để liên tục xây dựng lại dist/ và trỏ một máy khách MCP riêng biệt đến dist/index.js đã xây dựng 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 máy khách MCP (máy chủ MCP là các tiến trình stdio tồn tại lâu dài không tả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 .mcp.json trỏ đến đầu ra bản dựng:

    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 phiên Claude Code mới để áp dụng bản dựng mới.

Nguyên tắc tương tự áp dụng cho bất kỳ máy khách MCP nào — tách môi trường kiểm thử 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 máy chủ MCP 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 khóa API 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).
    • Lệnh: node
    • Đối số: 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 Kết nối, sau đó sử dụng "Liệt kê công cụ" để xác minh máy chủ hoạt động.

Sử dụng truyền tải HTTP

  1. Khởi động máy chủ HTTP trong một terminal:

    node dist/index.js --http --port 3000
    
  2. Khởi động inspector trong 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 tiêu đề tùy chỉnh: Authorization: Bearer re_your_key_here và kích hoạt công tắc.
    • Nhấp Kết nối, sau đó sử dụng "Liệt kê công cụ" để xác minh máy chủ hoạt động.