# MCP vs REST API cho tiếp thị qua email: chọn quy trình nào?

URL chính tắc: https://brew.new/vi/blog/mcp-vs-rest-api-for-email-marketing-which-workflow-should-you-use
Tác giả: Thomas Park
Ngày đăng: 2026-09-23
Ngày cập nhật: 2026-09-29

Một lập trình viên trong đội ngũ của bạn kết nối nền tảng email với Claude và soạn nháp chiến dịch tuần tới ngay trong cửa sổ chat. Sáng hôm sau, có người hỏi liệu email chào mừng khi đăng ký có thể chạy theo cách tương tự, qua trợ lý AI hay không. Tài liệu của nền tảng liệt kê máy chủ MCP và REST API ngay cạnh nhau.

Phần lớn nền tảng email hỗ trợ agent hiện cung cấp cả hai lối vào này. Máy chủ MCP cho phép trợ lý AI gọi các công cụ của nền tảng ngay trong cuộc trò chuyện. REST API cung cấp các thao tác mà mã của bạn có thể gọi trực tiếp. Bên dưới, cả hai thường đi đến cùng những endpoint, nên lựa chọn phụ thuộc vào việc ai đang làm việc và vào lúc nào.

Hãy dùng MCP khi một người đang làm việc qua trợ lý AI, và dùng REST API khi sản phẩm của bạn cần gửi email mà không có ai theo dõi. Phần lớn các đội ngũ rốt cuộc đều dùng cả hai.

## Những điểm chính

- MCP dành cho công việc mang tính tương tác, cần nhiều phán đoán: soạn nháp chiến dịch, tạo nhóm đối tượng, hỏi vì sao một lượt gửi kém hiệu quả.
- REST API dành cho những phần chạy thực tế trong sản phẩm: gọi trình kích hoạt khi người dùng đăng ký, đồng bộ liên hệ, gửi biên lai.
- CLI nằm giữa hai cách này. CLI có thể dùng trong script như API, và agent lập trình cũng đọc hiểu được.
- MCP của Brew yêu cầu xác nhận trước lượt gửi thực tế trên kết nối OAuth và kết nối cấp tổ chức. Client dùng khóa API cấp thương hiệu cần có chính sách phê duyệt riêng. Mã gọi API của bạn phải tự lo bước rà soát, tính lũy đẳng và việc thử lại.

## Mỗi cách là gì

MCP (Model Context Protocol) là một tiêu chuẩn mở để cung cấp công cụ cho các client AI như Claude, ChatGPT và Cursor. Client đọc danh sách công cụ kèm mô tả và lược đồ, rồi chọn công cụ cần gọi dựa trên yêu cầu của bạn. Máy chủ của Brew nằm tại `https://brew.new/api/mcp` và hỗ trợ OAuth, nên bạn chỉ cần đăng nhập và chọn thương hiệu thay vì phải tự quản lý khóa.

REST API là một tập hợp endpoint HTTP mà mã của bạn gọi tới. Brew công bố đặc tả OpenAPI, TypeScript SDK và một [hướng dẫn dành cho agent](https://brew.new/api/v1/llms.txt) dạng văn bản thuần cho API của mình. Mỗi lệnh gọi đều mang theo khóa API, và mã của bạn quyết định gọi gì và khi nào.

Các nhà cung cấp khác cũng theo cùng mô hình này. Máy chủ MCP của Customer.io bọc API của họ trong [các công cụ đọc, ghi và xóa riêng biệt](https://docs.customer.io/ai/mcp/get-started/). Brevo tạo các công cụ MCP từ [đặc tả OpenAPI](https://developers.brevo.com/docs/mcp-protocol) của mình.

## So sánh song song

| | MCP | REST API |
| --- | --- | --- |
| Ai điều khiển | Một người, thông qua trợ lý AI | Mã của bạn |
| Tác vụ điển hình | Soạn nháp và chỉnh sửa email, tạo nhóm đối tượng, lên lịch chiến dịch, đọc số liệu phân tích | Gọi trình kích hoạt sự kiện, tạo hoặc cập nhật liên hệ, gửi email giao dịch, kiểm tra định kỳ trạng thái lượt gửi |
| Xác thực | Đăng nhập OAuth, hoặc khóa API cho client không hỗ trợ OAuth | Khóa API, có phạm vi theo thương hiệu hoặc tổ chức |
| An toàn | Brew tạm dừng lượt gửi thực tế để chờ xác nhận trên kết nối OAuth và kết nối cấp tổ chức | Mã của bạn quyết định; hãy dùng khóa lũy đẳng và các bước rà soát của riêng bạn |
| Xử lý lỗi | Trợ lý AI đọc lỗi rồi thử lại hoặc hỏi bạn | Bạn rẽ nhánh theo mã lỗi ổn định và thử lại với thời gian chờ tăng dần (backoff) |
| Kích thước phản hồi | Bị giới hạn bởi cửa sổ ngữ cảnh của trợ lý AI | Chỉ bị giới hạn bởi phân trang |
| Phù hợp nhất khi | Tác vụ cần phán đoán hoặc nhiều lần chỉnh sửa | Tác vụ phải chạy giống hệt nhau mọi lần |

## Khi nào nên chọn MCP

Hãy dùng MCP khi công việc là một cuộc trò chuyện:

- Sản xuất chiến dịch. “Viết bản cập nhật sản phẩm tháng 10 từ nhật ký thay đổi này, gửi thử cho tôi, rồi lên lịch gửi lúc 9 giờ thứ Ba”. Trợ lý AI gọi `create_email`, `edit_email`, `send_email` với `test: true`, rồi `send_email` với `scheduledAt`, và dừng lại chờ bạn phê duyệt.
- Câu hỏi về đối tượng. “Có bao nhiêu khách hàng gói Pro đăng ký trước tháng 7 và đã mở bất kỳ email nào trong tháng trước?” Trợ lý AI kết hợp `search_contacts`, tra cứu trường và `create_audience`.
- Phân tích. “Tự động hóa nào có tỷ lệ nhấp thấp nhất, và điều gì đã thay đổi?” Trợ lý AI đọc `get_email_analytics` và hiệu quả của tự động hóa.
- Thiết lập một lần. Tạo một trình kích hoạt và một tự động hóa một lần duy nhất, với một người rà soát từng bước.

Trong Brew, email được tạo qua MCP dùng cùng tài liệu thương hiệu với email được tạo trong ứng dụng. [Bài viết về Brew MCP](/vi/blog/brew-mcp) hướng dẫn cách thiết lập client.

Phản hồi MCP phải vừa với ngữ cảnh của trợ lý AI. [Bài viết về luồng email](/vi/blog/email-flows) của Brew lưu ý rằng khi yêu cầu HTML đầy đủ qua MCP, bạn chỉ nhận được một hoặc hai bước đầu tiên của một chuỗi email dài, trong khi route REST trả về mọi phần thân email.

## Khi nào nên chọn REST API

Hãy dùng API khi email là một phần của sản phẩm:

- Trình kích hoạt sự kiện. Khi người dùng đăng ký, backend của bạn gọi `POST /v1/automations/triggers/{triggerEventId}/fire` kèm email và các trường của người dùng. Tự động hóa đã xuất bản sẽ lo phần còn lại.
- Email giao dịch. Biên lai và email đặt lại mật khẩu được kích hoạt theo cùng cách, qua một tự động hóa trên tên miền dành cho email giao dịch. Xem [email giao dịch](/vi/blog/transactional-emails).
- Đồng bộ liên hệ. `POST /v1/contacts` tạo hoặc cập nhật tối đa 1.000 liên hệ mỗi yêu cầu.
- Giám sát. `GET /v1/sends/{sendId}` trả về trạng thái và số liệu cho bảng điều khiển hoặc cảnh báo.

Trên những endpoint có hỗ trợ, hãy dùng lại cùng `Idempotency-Key` và nội dung yêu cầu cho các lần thử lại trong khoảng thời gian 24 giờ được mô tả trong tài liệu (các lượt gọi trình kích hoạt được loại trùng theo khóa trong 90 ngày). Dùng khóa khác cho một thao tác logic khác; hãy đọc quy ước của endpoint trước khi mặc định rằng một thao tác ghi có hỗ trợ cơ chế này. Header giới hạn tần suất cho bạn biết khi nào cần giảm nhịp gọi. Phản hồi lỗi của API có một `code`, chẳng hạn `CONSENT_REQUIRED`, để bạn rẽ nhánh theo. Hãy xử lý lỗi mạng riêng. [Hướng dẫn API](https://brew.new/api/v1/llms.txt) của Brew mô tả tất cả những điều này.

## CLI phù hợp ở đâu

Agent lập trình chạy trong terminal thường làm việc với CLI hiệu quả hơn cả hai lựa chọn trên. [CLI](https://docs.brew.new/api-reference/cli/agents) của Brew trả về phản hồi API dưới dạng một dòng JSON khi không gắn với terminal, và dùng mã thoát mà agent có thể dựa vào để hành động. Mã 4 nghĩa là cần xác nhận, và CLI in ra đúng lệnh cần chạy lại với `--yes` sau khi được phê duyệt. CLI cũng tạo định nghĩa payload có kiểu dữ liệu bằng `brew-cli types`, giúp các lệnh gọi trình kích hoạt từ backend luôn khớp với lược đồ của trình kích hoạt.

## Một quy trình kết hợp

Đây là một cách mà đội ngũ SaaS có thể phân chia công việc:

1. Trong Cursor hoặc Claude, một lập trình viên dùng MCP để tạo trình kích hoạt `user_signed_up` và một tự động hóa chào mừng, chạy thử bằng `test_automation`, rồi xuất bản.
2. Backend gọi trình kích hoạt qua REST API mỗi khi có người đăng ký, kèm khóa lũy đẳng được tạo từ ID người dùng.
3. Mỗi tháng, người làm marketing nhờ Claude qua MCP soạn nháp và lên lịch gửi bản cập nhật sản phẩm.
4. Một tác vụ chạy theo lịch của ứng dụng kiểm tra trạng thái kích hoạt (activation) hoặc thanh toán hiện tại trước khi phát một sự kiện nhắc nhở riêng cho những người đủ điều kiện. Chỉ đồng bộ trường liên hệ thì không cập nhật được payload sự kiện gốc của một luồng đang chạy.

Ở bước 1 và 3, có người rà soát công việc của trợ lý AI. Bước 2 và 4 chạy mỗi khi có người đăng ký hoặc mỗi đêm mà không cần ai theo dõi.

## Câu hỏi thường gặp

### MCP có chậm hơn hoặc kém tin cậy hơn API không?

MCP đặt thêm một trợ lý AI giữa bạn và endpoint, nên một yêu cầu cần nhiều bước hơn, và trợ lý AI có thể chọn nhầm công cụ. Điều đó ổn với công việc mang tính tương tác, nhưng không phù hợp với một sự kiện đăng ký phải được kích hoạt mọi lần.

### Cách nào an toàn hơn?

Brew yêu cầu xác nhận trước lượt gửi thực tế trên kết nối OAuth và kết nối cấp tổ chức. Với client dùng khóa API cấp thương hiệu, hãy tự thiết lập chính sách phê duyệt. Với API, hãy bảo vệ khóa trong biến môi trường, dùng khóa dành riêng cho thương hiệu khi có thể, và thêm khóa lũy đẳng cho mọi thao tác ghi có thể được thử lại.

### Agent trong sản phẩm của tôi có thể dùng API làm công cụ không?

Có. [Hướng dẫn tích hợp agent](https://docs.brew.new/integrations/ai-agents/use-brew-with-ai-agents) của Brew mô tả cách nối các endpoint API thành công cụ gọi hàm (function calling), trong đó SDK lo việc xác thực và thử lại.

## Bước tiếp theo

Để thử cả hai nửa, hãy kết nối [máy chủ MCP](/vi/mcp) với trợ lý AI của bạn cho công việc chiến dịch, và tạo một khóa API cho trình kích hoạt mà backend của bạn sẽ gọi.
