Spacemail MCP kết nối trợ lý AI của bạn (chẳng hạn như Claude) với hộp thư Spacemail của bạn. Thông qua đó, trợ lý có thể liệt kê các thư mục của bạn, liệt kê, tìm kiếm và đọc email của bạn, đánh dấu đã đọc hoặc yêu thích, di chuyển chúng giữa các thư mục hoặc vào Thùng rác, đồng thời gửi, trả lời và chuyển tiếp email từ chính địa chỉ của bạn — bạn yêu cầu bằng ngôn ngữ thông thường, và trợ lý sẽ gọi đúng công cụ.
Bạn cần một hộp thư Spacemail. Spacemail MCP có sẵn tại https://mcp.spacemail.com/mcp.
Cách bạn kết nối phụ thuộc vào trợ lý AI của bạn:
Claude (web và desktop) — mở Settings, chọn Connectors, thêm một connector tùy chỉnh và trỏ đến https://mcp.spacemail.com/mcp. Claude của Anthropic là client mà chúng tôi đã xác minh là Spacemail MCP hoạt động cùng.
Các client MCP khác — thêm một máy chủ MCP từ xa và trỏ đến https://mcp.spacemail.com/mcp. Các client khác có thể hoạt động, nhưng chúng tôi vẫn chưa xác minh chúng.
Khi bạn kết nối, bạn sẽ được yêu cầu đăng nhập và phê duyệt quyền truy cập của trợ lý vào hộp thư của bạn. Sau đó, trợ lý chỉ hoạt động trên hộp thư đó và chỉ thông qua các công cụ bên dưới.
Nội dung email là không đáng tin cậy. Chủ đề, người gửi, bản xem trước và nội dung được viết bởi người khác. Spacemail MCP yêu cầu trợ lý coi chúng là dữ liệu, không phải chỉ dẫn, nhưng email vẫn có thể cố điều hướng nó: hãy xem lại những gì trợ lý đề xuất trước khi bạn phê duyệt thay đổi.
Email đã gửi là email thật.email_send, email_reply và email_forward gửi từ địa chỉ Spacemail của chính bạn, và email đã gửi không thể thu hồi. Trợ lý chỉ nên gửi đúng những gì bạn yêu cầu: hãy xem lại người nhận và nội dung trước khi bạn phê duyệt việc gửi.
Chỉ văn bản thuần túy. Bạn viết nội dung của email mới, thư trả lời hoặc thư chuyển tiếp dưới dạng văn bản thuần túy. Bạn không thể tải lên tệp đính kèm, lưu bản nháp hoặc gửi tin nhắn bảo mật; thư chuyển tiếp có thể bao gồm các tệp đính kèm của email mà nó chuyển tiếp.
Không có gì bị xóa vĩnh viễn. Xóa một email sẽ chuyển nó vào thư mục Thùng rác, từ đó bạn có thể chuyển nó trở lại. Không có công cụ nào làm trống Thùng rác hoặc xóa hẳn một thư.
Các thỏa thuận và chính sách áp dụng cho Spacemail MCP:
Quyền truy cập:Đọc chỉ truy xuất thông tin. Ghi thay đổi hộp thư của bạn theo cách bạn có thể hoàn tác, hoặc gửi email từ địa chỉ của bạn, điều này không thể hoàn tác.
Công cụ: folder_list
Chức năng: Liệt kê các thư mục của bạn cùng số lượng chưa đọc và tổng số
Quyền truy cập: Đọc
Công cụ: email_list
Chức năng: Liệt kê các email trong một thư mục, mới nhất trước
Quyền truy cập: Đọc
Công cụ: email_search
Chức năng: Tìm kiếm email theo văn bản, chưa đọc, yêu thích hoặc ưu tiên cao
Quyền truy cập: Đọc
Công cụ: email_read
Chức năng: Đọc một email và đánh dấu là đã đọc
Quyền truy cập: Ghi
Công cụ: email_mark_read
Chức năng: Đánh dấu email là đã đọc hoặc chưa đọc
Quyền truy cập: Ghi
Công cụ: email_mark_favorite
Chức năng: Đánh dấu email là yêu thích hoặc bỏ đánh dấu
Quyền truy cập: Ghi
Công cụ: email_move
Chức năng: Di chuyển email sang thư mục khác
Quyền truy cập: Ghi
Công cụ: email_delete
Chức năng: Di chuyển email vào Thùng rác
Quyền truy cập: Ghi
Công cụ: email_send
Chức năng: Gửi email mới
Quyền truy cập: Ghi
Công cụ: email_reply
Chức năng: Trả lời một email hoặc trả lời tất cả
Quyền truy cập: Ghi
Công cụ: email_forward
Chức năng: Chuyển tiếp một email, mặc định kèm theo các tệp đính kèm
Quyền truy cập: Ghi
Mỗi email trong danh sách hoặc kết quả tìm kiếm đều có folderFullName và uid. Các công cụ khác lấy hai giá trị này làm folder và uid. Một uid chỉ hợp lệ trong thư mục của nó và sẽ thay đổi khi email được di chuyển, vì vậy sau khi di chuyển, trợ lý sẽ dùng uid mới mà thao tác di chuyển trả về hoặc liệt kê lại thư mục.
Thư mục Virtual/All bao gồm mọi thư mục, kể cả Thùng rác, Thư rác, Thư nháp và Đã gửi. Nó chỉ được chấp nhận bởi email_list và email_search; mỗi kết quả vẫn mang thư mục thực của email.
email_search với unreadOnly: true sẽ tìm các email chưa đọc trong tất cả thư mục.
email_read mở những email bạn hỏi đến; việc đọc sẽ đánh dấu chúng là đã đọc.
folder_list hiển thị các thư mục và tên chính xác của chúng.
email_list liệt kê các email trong thư mục.
email_move lưu email vào một thư mục khác, hoặc email_delete chuyển nó vào Thùng rác.
email_search hoặc email_list tìm email.
email_read hiển thị email đó cho bạn, để bạn có thể quyết định trả lời thế nào.
email_reply gửi câu trả lời của bạn, hoặc email_forward chuyển tiếp email cho người khác.
folder_list — Liệt kê thư mụcQuyền truy cập: Đọc.
Liệt kê các thư mục của hộp thư dưới dạng danh sách phẳng, bao gồm cả thư mục lồng nhau. Dùng fullName của thư mục làm đối số folder cho các công cụ khác.
Công cụ này không nhận tham số nào.
{"folders": [{ "fullName": "INBOX", "name": "INBOX", "parentFullName": "", "unread": 3, "total": 120, "role": "inbox" },{ "fullName": "Receipts", "name": "Receipts", "parentFullName": "", "unread": 0, "total": 14, "role": null }]}
role là inbox, sent, drafts, trash, junk hoặc archive khi thư mục có giá trị này, nếu không thì là null.
email_list — Liệt kê emailQuyền truy cập: Đọc.
Liệt kê các email của một thư mục, mới nhất trước, mỗi lần một trang.
Tham số: folder
Bắt buộc: Có
Kiểu & ràng buộc: Chuỗi, 1–1024 ký tự: fullName của thư mục, hoặc Virtual/All
Tham số: page
Bắt buộc: Không
Kiểu & ràng buộc: Số nguyên ≥ 0, đánh số từ 0. Mặc định là 0
Tham số: count
Bắt buộc: Không
Kiểu & ràng buộc: Số nguyên 1–100: số email mỗi trang. Mặc định là 25
{"items": [{"folderFullName": "INBOX","uid": 4821,"from": [{ "name": "Jane Doe", "address": "jane@example.com" }],"to": [{ "name": null, "address": "you@yourdomain.com" }],"subject": "Invoice for October","date": "2026-10-14T09:12:00Z","previewText": "Hi, please find the invoice attached…","isRead": false,"isFavorite": false,"isAnswered": false,"hasAttachments": true,"importance": "Normal"}],"total": 120,"page": 0,"count": 25,"hasMore": true}
email_search — Tìm kiếm emailQuyền truy cập: Đọc.
Tìm kiếm email của một thư mục theo văn bản và bộ lọc, mỗi lần một trang. Nếu không có thư mục, nó sẽ tìm trong Virtual/All.
Tham số: folder
Bắt buộc: Không
Kiểu & ràng buộc: Chuỗi, 1–1024 ký tự. Mặc định là Virtual/All
Tham số: query
Bắt buộc: Không
Kiểu & ràng buộc: Chuỗi, 3–255 ký tự: văn bản cần tìm kiếm
Tham số: unreadOnly
Bắt buộc: Không
Loại & ràng buộc: Boolean: chỉ email chưa đọc
Tham số: favoritesOnly
Bắt buộc: Không
Loại & ràng buộc: Boolean: chỉ email yêu thích
Tham số: highPriorityOnly
Bắt buộc: Không
Loại & ràng buộc: Boolean: chỉ email ưu tiên cao
Tham số: page
Bắt buộc: Không
Loại & ràng buộc: Số nguyên ≥ 0, bắt đầu từ 0. Mặc định là 0
Tham số: count
Bắt buộc: Không
Loại & ràng buộc: Số nguyên 1–100: số email trên mỗi trang. Mặc định là 25
Kết quả có cùng cấu trúc như email_list.
email_read — Đọc emailQuyền truy cập: Ghi — việc đọc sẽ đánh dấu email là đã đọc.
Đọc một email: tiêu đề, chi tiết tệp đính kèm và nội dung thư. Nội dung thư là phiên bản HTML đã được làm sạch khi email có định dạng đó (bodyFormathtml), nếu không thì là văn bản thuần túy của nó (bodyFormattext), bị cắt ở 100.000 ký tự (bodyTruncated). Tệp đính kèm được liệt kê, không được tải xuống.
Tham số: folder
Bắt buộc: Có
Loại & ràng buộc: Chuỗi: thư mục thực của email (folderFullName của nó), không phải Virtual/All
Tham số: uid
Bắt buộc: Có
Loại & ràng buộc: Số nguyên dương: uid của email trong thư mục đó
{"message": {"folderFullName": "INBOX","uid": 4821,"messageId": "<abc123@example.com>","from": [{ "name": "Jane Doe", "address": "jane@example.com" }],"to": [{ "name": null, "address": "you@yourdomain.com" }],"cc": [],"subject": "Invoice for October","date": "2026-10-14T09:12:00Z","body": "<p>Hi, please find the invoice attached.</p>","bodyFormat": "html","bodyTruncated": false,"attachments": [{ "name": "invoice.pdf", "contentType": "application/pdf", "size": 48213 }],"importance": "Normal"},"markedRead": true}
markedRead là false khi email đã được trả về nhưng việc đánh dấu là đã đọc thất bại.
email_mark_read — Đánh dấu email là đã đọc hoặc chưa đọcQuyền truy cập: Ghi.
Tham số: folder
Bắt buộc: Có
Loại & ràng buộc: Chuỗi: thư mục thực của email, không phải Virtual/All
Tham số: uid
Bắt buộc: Có
Loại & ràng buộc: Số nguyên dương
Tham số: read
Bắt buộc: Có
Loại & ràng buộc: Boolean: true đánh dấu email là đã đọc, false là chưa đọc
{ "folderFullName": "INBOX", "uid": 4821, "isRead": true }
Việc đặt cùng một trạng thái hai lần là vô hại. Một uid không có trong thư mục sẽ không được báo là lỗi, vì vậy trợ lý lấy uid từ một danh sách mới.
email_mark_favorite — Đánh dấu email là yêu thíchQuyền truy cập: Ghi.
Tham số: folder
Bắt buộc: Có
Loại & ràng buộc: Chuỗi: thư mục thực của email, không phải Virtual/All
Tham số: uid
Bắt buộc: Có
Loại & ràng buộc: Số nguyên dương
Tham số: favorite
Bắt buộc: Có
Loại & ràng buộc: Boolean: true đánh dấu email là yêu thích, false xóa dấu đánh dấu
{ "folderFullName": "INBOX", "uid": 4821, "isFavorite": true }
email_move — Di chuyển emailQuyền truy cập: Ghi.
Di chuyển một email sang thư mục khác trong cùng một hộp thư. Việc di chuyển nó đến chính thư mục mà nó đang ở sẽ bị từ chối.
Tham số: folder
Bắt buộc: Có
Loại & ràng buộc: Chuỗi: thư mục thực của email, không phải Virtual/All
Tham số: uid
Bắt buộc: Có
Loại & ràng buộc: Số nguyên dương
Tham số: destinationFolder
Bắt buộc: Có
Loại & ràng buộc: Chuỗi: thư mục để di chuyển email đến, không phải Virtual/All
{ "previousFolderFullName": "INBOX", "folderFullName": "Receipts", "uid": 77 }
Email nhận được một uid mới trong thư mục đích. uid là null khi máy chủ không báo cáo nó; hãy liệt kê thư mục đích để tìm email. Một lần di chuyển sẽ không bao giờ được tự động thử lại: nếu không thể xác nhận, trợ lý sẽ liệt kê các thư mục trước khi thử lại.
email_delete — Xóa emailQuyền truy cập: Ghi.
Di chuyển một email vào thư mục Thùng rác. Email không bị xóa hẳn và có thể được chuyển trở lại; một email đã ở trong Thùng rác sẽ bị từ chối, vì bước duy nhất còn lại sẽ là xóa vĩnh viễn, điều mà Spacemail MCP không bao giờ làm.
Tham số: folder
Bắt buộc: Có
Loại & ràng buộc: Chuỗi: thư mục thực của email, không phải Virtual/All
Tham số: uid
Bắt buộc: Có
Loại & ràng buộc: Số nguyên dương
{ "previousFolderFullName": "INBOX", "folderFullName": "Trash", "uid": 912 }
Các công cụ này gửi email thật từ chính địa chỉ Spacemail của bạn; không thể thay đổi người gửi. Kết quả chỉ cho biết máy chủ thư đã chấp nhận email để gửi đi, không phải là nó đã được gửi đến nơi.
Cả ba đều có chung các giới hạn này:
Người nhận là các địa chỉ email thuần như alice@example.com, không có tên hiển thị, tối đa tổng cộng 50 địa chỉ. Cùng một địa chỉ được cung cấp hai lần chỉ được tính một lần.
Văn bản (body) là văn bản thuần túy tối đa 200.000 ký tự. Các ngắt dòng được giữ nguyên; nó không được gửi dưới dạng HTML.
Không thể tải lên tệp đính kèm, không lưu bản nháp và không gửi tin nhắn bảo mật.
Một lần gửi sẽ không bao giờ được lặp lại một cách mù quáng. Nếu máy chủ thư không xác nhận điều đó (infrastructure.mailcore.outcome-unknown), email vẫn có thể đã được gửi: trợ lý sẽ tìm nó trong thư mục Đã gửi của bạn trước khi gửi lại.
email_send — Gửi emailQuyền truy cập: Ghi — gửi một email thật, không thể hoàn tác.
Gửi một email mới.
Tham số: to
Bắt buộc: Có
Loại & ràng buộc: Danh sách 1–50 địa chỉ email
Tham số: cc
Bắt buộc: Không
Loại & ràng buộc: Danh sách tối đa 50 địa chỉ email. Mặc định là không có
Tham số: bcc
Bắt buộc: Không
Loại & ràng buộc: Danh sách tối đa 50 địa chỉ email, bị ẩn khỏi những người nhận khác. Mặc định là không có
Tham số: subject
Bắt buộc: Có
Loại & ràng buộc: Chuỗi: một dòng duy nhất tối đa 998 ký tự
Tham số: body
Bắt buộc: Có
Loại & ràng buộc: Chuỗi: văn bản thuần túy, tối đa 200.000 ký tự
{ "accepted": true }
To, Cc và Bcc cộng lại chứa tối đa 50 địa chỉ.
email_reply — Trả lời emailQuyền truy cập: Ghi — gửi một email thật, không thể hoàn tác.
Trả lời một email. Chủ đề sẽ có tiền tố Re: (không bao giờ lặp hai lần), thư trả lời được xếp luồng dưới email đó, và email được trích dẫn bên dưới văn bản của bạn với phần đầu nêu tên người gửi. Một email rất dài sẽ được trích dẫn tối đa 100.000 ký tự và được đánh dấu là đã cắt bớt. Việc trả lời không đánh dấu email là đã đọc.
Tham số: folder
Bắt buộc: Có
Loại & ràng buộc: Chuỗi: thư mục thực của email, không phải Virtual/All
Tham số: uid
Bắt buộc: Có
Loại & ràng buộc: Số nguyên dương
Tham số: body
Bắt buộc: Có
Loại & ràng buộc: Chuỗi: văn bản thuần túy, tối đa 200.000 ký tự
Tham số: replyAll
Bắt buộc: Không
Loại & ràng buộc: Boolean: true cũng trả lời những người nhận khác trong To và Cc. Mặc định là false
{ "accepted": true }
Thư trả lời sẽ được gửi đến địa chỉ Reply-To của email; khi không có địa chỉ đó, hoặc khi nó chỉ nêu tên bạn, thì gửi đến người gửi; khi đó cũng là bạn, như với một email trong thư mục Đã gửi của bạn, thì gửi đến những người nhận To ban đầu của email đó. Địa chỉ của chính bạn luôn bị loại ra. Với replyAll, những người nhận To và Cc khác của email sẽ được thêm vào; địa chỉ chính của bạn bị loại ra, nhưng các bí danh của bạn thì không, vì vậy một bản sao có thể đến tay bạn thông qua một trong số đó. Thư trả lời được gửi đến tối đa 50 người nhận.
email_forward — Chuyển tiếp emailQuyền truy cập: Ghi — gửi một email thật, không thể hoàn tác.
Chuyển tiếp một email đến những người nhận mới. Chủ đề sẽ có tiền tố Fwd: (không bao giờ lặp hai lần), và email được trích dẫn bên dưới văn bản của bạn với phần đầu nêu tên người gửi, tối đa 100.000 ký tự. Một thư chuyển tiếp bắt đầu một cuộc hội thoại mới. Việc chuyển tiếp không đánh dấu email là đã đọc.
Tham số: folder
Bắt buộc: Có
Loại & ràng buộc: Chuỗi: thư mục thực của email, không phải Virtual/All
Tham số: uid
Bắt buộc: Có
Loại & ràng buộc: Số nguyên dương
Tham số: to
Bắt buộc: Có
Loại & ràng buộc: Danh sách 1–50 địa chỉ email
Tham số: body
Bắt buộc: Có
Loại & ràng buộc: Chuỗi: văn bản thuần túy, tối đa 200.000 ký tự
Tham số: includeAttachments
Bắt buộc: Không
Kiểu & ràng buộc: Boolean: true chuyển tiếp các tệp đính kèm của email, false chỉ chuyển tiếp văn bản của email. Mặc định là true
{ "accepted": true }
Khi một công cụ gặp lỗi, trợ lý sẽ nhận được một lỗi với code, một câu detail và retryable, cho biết liệu thử lại sau có thể hữu ích hay không. Các lỗi bạn có thể thấy:
Mã: business.email.same-folder
Ý nghĩa: Đích đến là thư mục mà email đã nằm trong đó
Mã: business.email.already-in-trash
Ý nghĩa: Email đã ở trong Thùng rác
Mã: business.email.trash-folder-not-found
Ý nghĩa: Hộp thư không có thư mục nào được đánh dấu là Thùng rác
Mã: business.email.no-recipient
Ý nghĩa: Email mới hoặc email chuyển tiếp không có người nhận
Mã: business.email.no-reply-recipient
Ý nghĩa: Email không nêu ai để trả lời ngoài bạn
Mã: business.email.too-many-recipients
Ý nghĩa: Tổng số người nhận vượt quá 50
Mã: business.email.unauthorized
Ý nghĩa: Hộp thư từ chối quyền truy cập; hãy kết nối lại Spacemail MCP
Mã: business.mailcore.folder-not-found
Ý nghĩa: Thư mục không tồn tại; kiểm tra folder_list
Mã: business.mailcore.message-not-found
Ý nghĩa: Email không có trong thư mục đó; hãy liệt kê lại thư mục
Mã: business.mailcore.quota-exceeded
Ý nghĩa: Hộp thư đã đầy
Mã: business.mailcore.invalid-target-folder
Ý nghĩa: Không thể chuyển email vào thư mục đó, chẳng hạn như Thư nháp hoặc Đã gửi
Mã: infrastructure.mailcore.timeout
Ý nghĩa: Hộp thư không phản hồi kịp thời; có thể thử lại
Mã: infrastructure.mailcore.unavailable
Ý nghĩa: Dịch vụ hộp thư hiện không khả dụng; có thể thử lại
Mã: infrastructure.mailcore.outcome-unknown
Ý nghĩa: Một thao tác di chuyển hoặc gửi chưa được xác nhận; hãy liệt kê các thư mục hoặc kiểm tra trong Đã gửi trước khi lặp lại thao tác đó