Mailtrap MCP Server

chính thức

Tích hợp với Mailtrap Email API.

Tài liệu

TypeScript test NPM

Máy chủ MCP Mailtrap

Máy chủ MCP cung cấp các công cụ để gửi và kiểm thử trong hộp cát thông qua Mailtrap.

Điều kiện tiên quyết

Trước khi sử dụng máy chủ MCP này, bạn cần:

  1. Tạo tài khoản Mailtrap
  2. Xác minh tên miền của bạn
  3. Lấy mã thông báo API từ Cài đặt API Mailtrap
  4. Lấy ID Tài khoản từ Quản lý tài khoản Mailtrap

Biến môi trường bắt buộc:

  • MAILTRAP_API_TOKEN - Bắt buộc cho mọi chức năng
  • MAILTRAP_ACCOUNT_ID - Bắt buộc cho mẫu, thống kê, nhật ký email, danh sách/hiển thị hộp cát và tên miền gửi. Chỉ tùy chọn cho send-email và send-sandbox-email.

Tùy chọn (có thể truyền dưới dạng tham số công cụ thay thế):

  • DEFAULT_FROM_EMAIL - Email người gửi mặc định khi from không được cung cấp cho send-email hoặc send-sandbox-email. Cho phép chuyển đổi người gửi mỗi lần gọi thông qua tham số from.
  • MAILTRAP_TEST_INBOX_ID - ID hộp thư kiểm thử mặc định cho các công cụ hộp cát khi test_inbox_id không được cung cấp. Cho phép chuyển đổi giữa các hộp thư mỗi lần gọi thông qua tham số test_inbox_id.
  • MAILTRAP_SANDBOX_ID - ID hộp cát mặc định cho các công cụ hộp cát khi sandbox_id không được cung cấp. Cho phép chuyển đổi giữa các hộp cát mỗi lần gọi thông qua tham số sandbox_id.
  • MAILTRAP_ORGANIZATION_ID - Bắt buộc cho các công cụ tổ chức (list-sub-accounts, create-sub-account).
  • MAILTRAP_ORGANIZATION_API_TOKEN - Mã thông báo API phạm vi tổ chức. Bắt buộc cho các công cụ tổ chức (tách biệt với MAILTRAP_API_TOKEN).

Cài đặt nhanh

Install in Cursor

Install with Node in VS Code

Smithery CLI

Smithery là trình cài đặt và quản lý registry cho các máy chủ MCP, hoạt động với mọi ứng dụng khách AI.

npx @smithery/cli install mailtrap

Smithery tự động xử lý cấu hình ứng dụng khách và cung cấp quy trình thiết lập tương tác. Đây là cách dễ nhất để bắt đầu với máy chủ MCP cục bộ.

Thiết lập

Claude Desktop

Sử dụng MCPB để cài đặt máy chủ Mailtrap. Bạn có thể tìm thấy các tệp đó trong Bản phát hành.
Tải xuống tệp .MCPB và mở nó. Nếu bạn có Claude Desktop - nó sẽ mở và đề xuất cấu hình.

Claude Desktop hoặc Cursor

Thêm cấu hình sau:

{
  "mcpServers": {
    "mailtrap": {
      "command": "npx",
      "args": ["-y", "mcp-mailtrap"],
      "env": {
        "MAILTRAP_API_TOKEN": "your_mailtrap_api_token",
        "DEFAULT_FROM_EMAIL": "[email protected]",
        "MAILTRAP_ACCOUNT_ID": "your_account_id",
        "MAILTRAP_TEST_INBOX_ID": "your_test_inbox_id"
      }
    }
  }
}

Nếu bạn đang sử dụng asdf để quản lý Node.js, bạn phải sử dụng đường dẫn tuyệt đối đến tệp thực thi (ví dụ cho Mac)

{
  "mcpServers": {
    "mailtrap": {
      "command": "/Users/<username>/.asdf/shims/npx",
      "args": ["-y", "mcp-mailtrap"],
      "env": {
        "PATH": "/Users/<username>/.asdf/shims:/usr/bin:/bin",
        "ASDF_DIR": "/opt/homebrew/opt/asdf/libexec",
        "ASDF_DATA_DIR": "/Users/<username>/.asdf",
        "ASDF_NODEJS_VERSION": "20.6.1",
        "MAILTRAP_API_TOKEN": "your_mailtrap_api_token",
        "DEFAULT_FROM_EMAIL": "[email protected]",
        "MAILTRAP_ACCOUNT_ID": "your_account_id",
        "MAILTRAP_TEST_INBOX_ID": "your_test_inbox_id"
      }
    }
  }
}

Vị trí tệp cấu hình Claude Desktop

Mac: ~/Library/Application Support/Claude/claude_desktop_config.json

Windows: %APPDATA%\Claude\claude_desktop_config.json

Vị trí tệp cấu hình Cursor

Mac: ~/.cursor/mcp.json

Windows: %USERPROFILE%\.cursor\mcp.json

VS Code

Thay đổi cấu hình thủ công

Chạy trong Bảng lệnh: Preferences: Open User Settings (JSON)

Sau đó, trong tệp cài đặt, thêm cấu hình sau:

{
  "mcp": {
    "servers": {
      "mailtrap": {
        "command": "npx",
        "args": ["-y", "mcp-mailtrap"],
        "env": {
          "MAILTRAP_API_TOKEN": "your_mailtrap_api_token",
          "DEFAULT_FROM_EMAIL": "[email protected]",
          "MAILTRAP_ACCOUNT_ID": "your_account_id",
          "MAILTRAP_TEST_INBOX_ID": "your_test_inbox_id"
        }
      }
    }
  }
}

[!MẸO] Đừng quên khởi động lại máy chủ MCP của bạn sau khi thay đổi phần "env".

Gói MCP (MCPB)

Để cài đặt dễ dàng trong các máy chủ hỗ trợ Gói MCP, bạn có thể phân phối tệp gói .mcpb.

# Build TypeScript and pack the MCPB bundle
npm run mcpb:pack

# Inspect bundle metadata
npm run mcpb:info

# Sign the bundle for distribution (optional)
npm run mcpb:sign

Thao tác này tạo mailtrap-mcp.mcpb bằng cách sử dụng kho lưu trữ manifest.json và các tạo phẩm đã xây dựng trong dist/.

Cách sử dụng

Sau khi được cấu hình, bạn có thể yêu cầu tác nhân gửi email và quản lý mẫu, ví dụ:

Thao tác gửi email:

  • "Gửi email đến [email protected] với chủ đề 'Cuộc họp ngày mai' và lời nhắc thân thiện về cuộc họp sắp tới của chúng ta."
  • "Gửi email cho [email protected] về cập nhật dự án, và CC cho nhóm tại [email protected]"
  • "Gửi mẫu chào mừng (uuid b81aabcd-1a1e-41cf-91b6-eca0254b3d96) đến [email protected] với các biến { name: 'Alex' }"
  • "Gửi email hộp cát đến [email protected] với chủ đề 'Mẫu kiểm thử' để xem trước email chào mừng của chúng ta trông như thế nào"

Nhật ký email (gỡ lỗi gửi):

  • "Liệt kê nhật ký email đã gửi gần đây của tôi"
  • "Hiển thị nhật ký email cho các email đã gửi đến [email protected]"
  • "Lấy thông báo nhật ký email cho ID abc-123-uuid để kiểm tra trạng thái gửi"

Thống kê gửi:

  • "Lấy thống kê gửi cho tháng 1 năm 2025"
  • "Hiển thị tỷ lệ gửi thành công được phân tích theo tên miền cho tháng trước"
  • "Thống kê email của tôi theo danh mục từ 2025-01-01 đến 2025-01-31 là gì?"

Thao tác hộp cát:

  • "Lấy tất cả thư từ hộp thư hộp cát của tôi"
  • "Hiển thị cho tôi trang đầu tiên của thư hộp cát"
  • "Tìm kiếm thư chứa 'kiểm thử' trong hộp thư hộp cát của tôi"
  • "Hiển thị cho tôi chi tiết của thư hộp cát có ID 5159037506"

Thao tác mẫu:

  • "Liệt kê tất cả các mẫu email trong tài khoản Mailtrap của tôi"
  • "Tạo một mẫu email mới có tên 'Email chào mừng' với chủ đề 'Chào mừng đến với nền tảng của chúng tôi!'"
  • "Cập nhật mẫu có ID 12345 để thay đổi chủ đề thành 'Thông điệp chào mừng đã cập nhật'"
  • "Xóa mẫu có ID 67890"

Tên miền gửi:

  • "Liệt kê các tên miền gửi của tôi"
  • "Lấy tên miền gửi có ID 3938"
  • "Tạo một tên miền gửi cho example.com"
  • "Xóa tên miền gửi 3938"
  • "Lấy tên miền gửi 3938 với hướng dẫn thiết lập DNS"

Công cụ có sẵn

send-email

Gửi email giao dịch qua Mailtrap. Hỗ trợ hai chế độ loại trừ lẫn nhau — nội dung nội tuyến (subject + text/html) hoặc dựa trên mẫu (template_uuid).

Tham số:

  • from (tùy chọn): Người gửi dưới dạng chuỗi email hoặc { email, name? }. Nếu không được cung cấp, DEFAULT_FROM_EMAIL được sử dụng.
  • to (tùy chọn): (Các) người nhận — một email/{ email, name? } hoặc một mảng. Tùy chọn nếu cc hoặc bcc được cung cấp; ít nhất một trong số to / cc / bcc phải chứa người nhận.
  • cc (tùy chọn): Mảng người nhận CC (chuỗi email hoặc { email, name? } mỗi cái).
  • bcc (tùy chọn): Mảng người nhận BCC (chuỗi email hoặc { email, name? } mỗi cái).
  • subject (có điều kiện): Dòng chủ đề email. Bắt buộc cho gửi nội tuyến; phải được bỏ qua khi template_uuid được đặt.
  • text (có điều kiện): Văn bản nội dung email. Bắt buộc (cùng với hoặc thay cho html) cho gửi nội tuyến; phải được bỏ qua khi template_uuid được đặt.
  • html (có điều kiện): Phiên bản HTML của nội dung email. Bắt buộc (cùng với hoặc thay cho text) cho gửi nội tuyến; phải được bỏ qua khi template_uuid được đặt.
  • category (tùy chọn): Danh mục email để theo dõi và phân tích. Phải được bỏ qua khi template_uuid được đặt.
  • template_uuid (tùy chọn): Sử dụng mẫu email Mailtrap thay vì nội dung nội tuyến. Khi được đặt, subject / text / html / category phải được bỏ qua (theo API Mailtrap).
  • template_variables (tùy chọn): Đối tượng các biến được thay thế vào mẫu được tham chiếu bởi template_uuid. Chỉ được phép cùng với template_uuid.

batch-send-transactional-email

Gửi một lô email giao dịch trong một lần gọi API Mailtrap (luồng gửi mặc định). Các trường dùng chung nằm trên base; các ghi đè cho từng người nhận nằm trong requests[]. Mỗi yêu cầu phải bao gồm ít nhất một người nhận thông qua to, cc, hoặc bcc. Cùng loại trừ lẫn nhau nội tuyến-với-mẫu như send-email — được kiểm tra sau khi hợp nhất cơ sở với mỗi yêu cầu.

Tham số:

  • base (tùy chọn): Đối tượng với các trường được chia sẻ trong toàn bộ lô.
    • from (tùy chọn): Người gửi dưới dạng chuỗi email hoặc { email, name? }. Dự phòng về DEFAULT_FROM_EMAIL.
    • reply_to (tùy chọn): Địa chỉ trả lời.
    • subject / text / html / category (tùy chọn, chế độ nội tuyến): Nội dung mặc định cho mọi yêu cầu.
    • template_uuid / template_variables (tùy chọn, chế độ mẫu): Mẫu mặc định + biến. Loại trừ lẫn nhau với các trường nội tuyến.
    • custom_variables (tùy chọn): Biến tùy chỉnh mặc định (giá trị chuỗi).
    • headers (tùy chọn): Tiêu đề tùy chỉnh mặc định.
  • requests (bắt buộc): Mảng không rỗng các thông báo cho từng người nhận. Mỗi mục có:
    • to (tùy chọn): (Các) người nhận — chuỗi, { email, name? }, hoặc một mảng. Tùy chọn nếu cc hoặc bcc được cung cấp; ít nhất một trong số to / cc / bcc phải chứa người nhận.
    • cc, bcc, reply_to (tùy chọn).
    • Ghi đè nội tuyến (subject/text/html/category) hoặc mẫu (template_uuid/template_variables); bất kỳ trường nào bị bỏ qua sẽ dự phòng về giá trị base phù hợp.
    • custom_variables, headers (tùy chọn).

batch-send-bulk-email

Gửi một lô email hàng loạt qua API luồng hàng loạt của Mailtrap. Cùng hình dạng base + requests[], xác thực và quy tắc nội tuyến-với-mẫu như batch-send-transactional-email — điểm khác biệt duy nhất là công cụ này định tuyến lệnh gọi qua điểm cuối hàng loạt thay vì giao dịch. Xem các tham số ở trên.

list-email-logs

Liệt kê nhật ký email đã gửi (lịch sử gửi) với phân trang và bộ lọc tùy chọn. Sử dụng để gỡ lỗi các vấn đề gửi từ IDE.

Tham số:

  • search_after (tùy chọn): Con trỏ phân trang từ next_page_cursor của phản hồi trước
  • sent_after (tùy chọn): Ngày/giờ ISO 8601; chỉ nhật ký được gửi sau thời gian này
  • sent_before (tùy chọn): Ngày/giờ ISO 8601; chỉ nhật ký được gửi trước thời gian này
  • from_email (tùy chọn): Lọc theo email người gửi; sử dụng với from_operator (mặc định: ci_equal)
  • to_email (tùy chọn): Lọc theo email người nhận; sử dụng với to_operator (mặc định: ci_equal)
  • status (tùy chọn): Lọc theo trạng thái gửi: delivered, not_delivered, enqueued, opted_out; sử dụng với status_operator (mặc định: equal)
  • subject (tùy chọn): Lọc theo chủ đề email; sử dụng với subject_operator (mặc định: ci_contain). Sử dụng subject_operator: empty/not_empty để lọc theo sự hiện diện của chủ đề.
  • sending_domain_id (tùy chọn): Lọc theo ID tên miền gửi (số); sử dụng với sending_domain_id_operator (mặc định: equal)
  • sending_stream (tùy chọn): Lọc theo luồng: transactional hoặc bulk; sử dụng với sending_stream_operator (mặc định: equal)
  • events (tùy chọn): Lọc theo (các) loại sự kiện: delivery, open, click, bounce, spam, unsubscribe, soft_bounce, reject, suspension; sử dụng với events_operator (include_event / not_include_event)
  • clicks_count / opens_count (tùy chọn): Lọc theo số lần nhấp/mở; sử dụng với *_operator: equal, greater_than, less_than
  • client_ip / sending_ip (tùy chọn): Lọc theo IP; sử dụng với *_operator: equal, not_equal, contain, not_contain
  • email_service_provider_response (tùy chọn): Lọc theo văn bản phản hồi của nhà cung cấp; sử dụng với *_operator (ci_contain, v.v.)
  • email_service_provider (tùy chọn): Lọc theo nhà cung cấp (chính xác); sử dụng với *_operator: equal, not_equal
  • recipient_mx (tùy chọn): Lọc theo MX người nhận; sử dụng với recipient_mx_operator (ci_contain, v.v.)
  • category (tùy chọn): Lọc theo danh mục email; sử dụng với category_operator: equal, not_equal

Tất cả các tham số đều là tùy chọn.

get-email-log-message

Lấy một thông báo nhật ký email duy nhất theo ID (UUID): tóm tắt có thể đọc được (từ, đến, chủ đề, thời gian gửi, trạng thái, danh mục, luồng, tương tác, ngữ cảnh gửi), sau đó là lịch sử sự kiện chi tiết. Tùy chọn, với include_content: true, bạn cũng có thể tải và hiển thị nội dung thông báo (HTML và văn bản thuần túy) khi Mailtrap hiển thị URL thông báo thô.

Tham số:

  • message_id (bắt buộc): UUID của thông báo nhật ký email (từ phản hồi gửi hoặc list-email-logs). Sử dụng list-email-logs để tìm ID thông báo.
  • include_content (tùy chọn): Khi true, tải EML thô (nếu raw_message_url có sẵn) và thêm các phần nội dung HTML và văn bản thuần túy đã phân tích cú pháp, tương tự như show-sandbox-email-message.

get-sending-stats

Nhận thống kê gửi email (tỷ lệ gửi thành công, trả lại, mở, nhấp, spam) cho một phạm vi ngày. Tùy chọn phân tích theo tên miền, danh mục, nhà cung cấp dịch vụ email hoặc ngày. Kiểm tra tỷ lệ gửi thành công mà không cần rời khỏi trình chỉnh sửa.

Tham số:

  • start_date (bắt buộc): Ngày bắt đầu cho phạm vi thống kê (YYYY-MM-DD)
  • end_date (bắt buộc): Ngày kết thúc cho phạm vi thống kê (YYYY-MM-DD)
  • breakdown (tùy chọn): Cách phân tích thống kê: aggregated (mặc định), by_domain, by_category, by_email_service_provider, hoặc by_date
  • sending_domain_ids (tùy chọn): Giới hạn kết quả cho các ID tên miền gửi này (mảng số nguyên)
  • sending_streams (tùy chọn): Giới hạn cho transactional và/hoặc bulk (mảng chuỗi)
  • categories (tùy chọn): Giới hạn cho các danh mục email này (mảng chuỗi)
  • email_service_providers (tùy chọn): Giới hạn cho các nhà cung cấp này, ví dụ: Google, Yahoo, Outlook (mảng chuỗi)

create-template

Tạo một mẫu email mới trong tài khoản Mailtrap của bạn.

Tham số:

  • name (bắt buộc): Tên của mẫu
  • subject (bắt buộc): Dòng tiêu đề email
  • html (hoặc text là bắt buộc): Nội dung HTML của mẫu
  • text (hoặc html là bắt buộc): Phiên bản văn bản thuần của mẫu
  • category (tùy chọn): Danh mục mẫu (mặc định là "General")

list-templates

Liệt kê tất cả các mẫu email trong tài khoản Mailtrap của bạn.

Tham số:

  • Không yêu cầu tham số

get-template

Lấy một mẫu email duy nhất theo ID, bao gồm tiêu đề, danh mục và nội dung HTML/văn bản.

Tham số:

  • template_id (bắt buộc): ID của mẫu cần lấy

update-template

Cập nhật một mẫu email hiện có.

Tham số:

  • template_id (bắt buộc): ID của mẫu cần cập nhật
  • name (tùy chọn): Tên mới cho mẫu
  • subject (tùy chọn): Dòng tiêu đề email mới
  • html (tùy chọn): Nội dung HTML mới của mẫu
  • text (tùy chọn): Phiên bản văn bản thuần mới của mẫu
  • category (tùy chọn): Danh mục mới cho mẫu

[!NOTE] Ít nhất một trường có thể cập nhật (tên, tiêu đề, html, văn bản hoặc danh mục) phải được cung cấp khi gọi update-template để thực hiện cập nhật.

delete-template

Xóa một mẫu email hiện có.

Tham số:

  • template_id (bắt buộc): ID của mẫu cần xóa

send-sandbox-email

Gửi email đến hộp thư kiểm thử Mailtrap của bạn cho mục đích phát triển và kiểm thử. Điều này hoàn hảo để kiểm tra các mẫu email mà không cần gửi email đến người nhận thực. Hỗ trợ hai chế độ giống như send-emailnội dung nội tuyến hoặc dựa trên mẫu (template_uuid).

Tham số:

  • test_inbox_id (tùy chọn): ID hộp thư kiểm thử Mailtrap. Bắt buộc trừ khi MAILTRAP_TEST_INBOX_ID được đặt; truyền mỗi lần gọi để nhắm mục tiêu một hộp thư cụ thể.
  • from (tùy chọn): Người gửi dưới dạng chuỗi email hoặc { email, name? }. Nếu không được cung cấp, DEFAULT_FROM_EMAIL sẽ được sử dụng.
  • to (tùy chọn): Người nhận dưới dạng chuỗi phân cách bằng dấu phẩy, hoặc một mảng các chuỗi email / đối tượng { email, name? }. Tùy chọn nếu cc hoặc bcc được cung cấp; ít nhất một trong số to / cc / bcc phải chứa người nhận.
  • cc (tùy chọn): Mảng người nhận CC (mỗi người là chuỗi email hoặc { email, name? }).
  • bcc (tùy chọn): Mảng người nhận BCC (mỗi người là chuỗi email hoặc { email, name? }).
  • subject (có điều kiện): Dòng tiêu đề email. Bắt buộc cho gửi nội tuyến; phải được bỏ qua khi template_uuid được đặt.
  • text (có điều kiện): Văn bản nội dung email. Bắt buộc (cùng với hoặc thay cho html) cho gửi nội tuyến; phải được bỏ qua khi template_uuid được đặt.
  • html (có điều kiện): Phiên bản HTML của nội dung email. Bắt buộc (cùng với hoặc thay cho text) cho gửi nội tuyến; phải được bỏ qua khi template_uuid được đặt.
  • category (tùy chọn): Danh mục email để theo dõi. Phải được bỏ qua khi template_uuid được đặt.
  • template_uuid (tùy chọn): Sử dụng mẫu email Mailtrap thay vì nội dung nội tuyến. Khi được đặt, subject / text / html / category phải được bỏ qua.
  • template_variables (tùy chọn): Đối tượng các biến được thay thế vào mẫu được tham chiếu bởi template_uuid. Chỉ được phép cùng với template_uuid.

[!NOTE] Đối với các công cụ sandbox, cung cấp test_inbox_id trong lệnh gọi công cụ hoặc đặt biến môi trường MAILTRAP_TEST_INBOX_ID. Bạn có thể chuyển đổi giữa các hộp thư mỗi lần gọi bằng cách truyền test_inbox_id.

get-sandbox-messages

Lấy danh sách các thư từ hộp thư kiểm thử Mailtrap của bạn. Hữu ích để kiểm tra những email đã được nhận trong sandbox của bạn trong quá trình kiểm thử.

Tham số:

  • page (tùy chọn): Số trang để phân trang (tối thiểu: 1)
  • last_id (tùy chọn): Phân trang sử dụng ID thư cuối cùng. Trả về các thư sau ID thư được chỉ định (tối thiểu: 1)
  • search (tùy chọn): Truy vấn tìm kiếm để lọc thư

[!NOTE] Tất cả các tham số đều là tùy chọn. Nếu không có tham số nào được cung cấp, trang đầu tiên của thư từ hộp thư sẽ được trả về. Sử dụng page để phân trang truyền thống, last_id để phân trang dựa trên con trỏ, hoặc search để lọc thư theo nội dung.

show-sandbox-email-message

Hiển thị thông tin chi tiết và nội dung của một thư email cụ thể từ hộp thư kiểm thử Mailtrap của bạn, bao gồm nội dung HTML và văn bản thuần.

Tham số:

  • message_id (bắt buộc): ID của thư email sandbox cần lấy

[!NOTE] Sử dụng get-sandbox-messages trước để lấy danh sách thư và ID của chúng, sau đó sử dụng công cụ này để xem nội dung đầy đủ của một thư cụ thể.

get-sandbox-project

Lấy một dự án sandbox theo ID, bao gồm các hộp thư và số lượng email của nó.

Tham số:

  • project_id (bắt buộc): ID của dự án cần lấy

update-sandbox-project

Đổi tên một dự án sandbox hiện có.

Tham số:

  • project_id (bắt buộc): ID của dự án cần cập nhật
  • name (bắt buộc): Tên mới cho dự án (2–100 ký tự)

list-sandboxes

Liệt kê mọi sandbox có thể truy cập bằng mã thông báo API trên tất cả các dự án.

Tham số:

  • Không yêu cầu tham số

mark-sandbox-as-read

Đánh dấu tất cả thư trong sandbox là đã đọc.

Tham số:

  • sandbox_id (bắt buộc): ID của sandbox cần thao tác

reset-sandbox-credentials

Đặt lại thông tin xác thực SMTP cho một sandbox. Trả về tên người dùng/mật khẩu mới.

Tham số:

  • sandbox_id (bắt buộc): ID của sandbox cần thao tác

enable-sandbox-email-address

Bật địa chỉ nhận qua email cho một sandbox (bật địa chỉ Mailtrap chuyển thư đến sandbox qua SMTP).

Tham số:

  • sandbox_id (bắt buộc): ID của sandbox cần thao tác

reset-sandbox-email-address

Tạo một địa chỉ nhận qua email mới cho một sandbox.

Tham số:

  • sandbox_id (bắt buộc): ID của sandbox cần thao tác

forward-sandbox-message

Chuyển tiếp một thư sandbox đến một địa chỉ email bên ngoài. Tính vào hạn mức chuyển tiếp hàng tháng của bạn.

Tham số:

  • sandbox_id (tùy chọn): ID Sandbox. Dự phòng về MAILTRAP_SANDBOX_ID.
  • message_id (bắt buộc): ID của thư sandbox cần chuyển tiếp
  • email (bắt buộc): Địa chỉ email để chuyển tiếp thư đến

update-sandbox-message

Đánh dấu một thư sandbox là đã đọc hoặc chưa đọc.

Tham số:

  • sandbox_id (tùy chọn): ID Sandbox. Dự phòng về MAILTRAP_SANDBOX_ID.
  • message_id (bắt buộc): ID của thư sandbox cần cập nhật
  • is_read (bắt buộc): true đánh dấu là đã đọc, false đánh dấu là chưa đọc

delete-sandbox-message

Xóa một thư sandbox duy nhất.

Tham số:

  • sandbox_id (tùy chọn): ID Sandbox. Dự phòng về MAILTRAP_SANDBOX_ID.
  • message_id (bắt buộc): ID của thư sandbox cần xóa

get-sandbox-message-spam-score

Lấy báo cáo spam SpamAssassin cho một thư sandbox (điểm số, quy tắc, báo cáo đầy đủ). Lựa chọn thay thế độc lập cho include_spam_report: true trên show-sandbox-email-message.

Tham số:

  • sandbox_id (tùy chọn): ID Sandbox. Dự phòng về MAILTRAP_SANDBOX_ID.
  • message_id (bắt buộc): ID của thư sandbox

get-sandbox-message-html-analysis

Lấy báo cáo phân tích HTML cho một thư sandbox (điểm tương thích máy khách, các phần tử có vấn đề). Lựa chọn thay thế độc lập cho include_html_analysis: true trên show-sandbox-email-message.

Tham số:

  • sandbox_id (tùy chọn): ID Sandbox. Dự phòng về MAILTRAP_SANDBOX_ID.
  • message_id (bắt buộc): ID của thư sandbox

get-sandbox-message-headers

Lấy các tiêu đề thư đã phân tích cho một thư sandbox.

Tham số:

  • sandbox_id (tùy chọn): ID Sandbox. Dự phòng về MAILTRAP_SANDBOX_ID.
  • message_id (bắt buộc): ID của thư sandbox

get-sandbox-message-html

Lấy nội dung HTML đã kết xuất của một thư sandbox.

Tham số:

  • sandbox_id (tùy chọn): ID Sandbox. Dự phòng về MAILTRAP_SANDBOX_ID.
  • message_id (bắt buộc): ID của thư sandbox

get-sandbox-message-text

Lấy nội dung văn bản thuần của một thư sandbox.

Tham số:

  • sandbox_id (tùy chọn): ID Sandbox. Dự phòng về MAILTRAP_SANDBOX_ID.
  • message_id (bắt buộc): ID của thư sandbox

get-sandbox-message-raw

Lấy thư thô, định dạng MIME (tiêu đề + nội dung) cho một thư sandbox.

Tham số:

  • sandbox_id (tùy chọn): ID Sandbox. Dự phòng về MAILTRAP_SANDBOX_ID.
  • message_id (bắt buộc): ID của thư sandbox

get-sandbox-message-eml

Lấy thư được kết xuất dưới dạng tải trọng tệp EML (phù hợp để đính kèm vào vé hoặc nhập vào một ứng dụng email khác).

Tham số:

  • sandbox_id (tùy chọn): ID Sandbox. Dự phòng về MAILTRAP_SANDBOX_ID.
  • message_id (bắt buộc): ID của thư sandbox

get-sandbox-message-html-source

Lấy nguồn HTML chưa kết xuất của một thư sandbox (HTML trước bất kỳ biến đổi nào từ phía Mailtrap như viết lại liên kết CID).

Tham số:

  • sandbox_id (tùy chọn): ID Sandbox. Dự phòng về MAILTRAP_SANDBOX_ID.
  • message_id (bắt buộc): ID của thư sandbox

list-sandbox-attachments

Liệt kê tất cả tệp đính kèm trên một thư sandbox (tên tệp, loại nội dung, kích thước, đường dẫn tải xuống).

Tham số:

  • sandbox_id (tùy chọn): ID Sandbox. Dự phòng về MAILTRAP_SANDBOX_ID.
  • message_id (bắt buộc): ID của thư sandbox

get-sandbox-attachment

Lấy siêu dữ liệu và URL tải xuống cho một tệp đính kèm duy nhất.

Tham số:

  • sandbox_id (tùy chọn): ID Sandbox. Dự phòng về MAILTRAP_SANDBOX_ID.
  • message_id (bắt buộc): ID của thư sandbox chứa tệp đính kèm
  • attachment_id (bắt buộc): ID của tệp đính kèm cần lấy

list-sending-domains

Liệt kê các tên miền gửi và trạng thái xác minh DNS của chúng.

Tham số:

  • Không yêu cầu tham số

get-sending-domain

Lấy một tên miền gửi theo ID và trạng thái xác minh của nó (bao gồm bản ghi DNS). Tùy chọn bao gồm hướng dẫn thiết lập DNS bằng cách đặt include_setup_instructions thành true.

Tham số:

  • sending_domain_id (bắt buộc): ID tên miền gửi
  • include_setup_instructions (tùy chọn): Nếu true, thêm hướng dẫn thiết lập DNS vào phản hồi. Mặc định: false

create-sending-domain

Tạo một tên miền gửi mới. Sau khi tạo, thêm bản ghi DNS để xác minh tên miền (sử dụng get-sending-domain với include_setup_instructions: true để xem các bản ghi).

Tham số:

  • domain_name (bắt buộc): Tên miền (ví dụ: example.com)

delete-sending-domain

Xóa một tên miền gửi.

Tham số:

  • sending_domain_id (bắt buộc): ID tên miền gửi cần xóa

send-sending-domain-setup-instructions

Gửi hướng dẫn thiết lập DNS cho một tên miền gửi đến một địa chỉ nhất định. Hữu ích để chuyển tiếp bản ghi DNS cho đồng nghiệp DevOps.

Tham số:

  • sending_domain_id (bắt buộc): ID tên miền gửi
  • email (bắt buộc): Địa chỉ email để gửi hướng dẫn thiết lập DNS đến

list-suppressions

Liệt kê hoặc tìm kiếm các mục chặn (hard bounces, spam complaints, unsubscriptions, manual imports). Trả về tối đa 1000 kết quả mỗi lần gọi.

Tham số:

  • email (tùy chọn): Bộ lọc email. Chỉ trả về các suppression khớp với địa chỉ này.

delete-suppression

Xóa một suppression theo ID. Mailtrap sẽ tiếp tục gửi đến email này trừ khi nó bị suppression lại.

Tham số:

  • suppression_id (bắt buộc): ID của suppression cần xóa

list-webhooks

Liệt kê tất cả webhook được cấu hình cho tài khoản. Trả về bản ghi webhook đầy đủ dưới dạng JSON.

Tham số:

  • Không yêu cầu tham số

get-webhook

Lấy một webhook theo ID. Trả về bản ghi webhook đầy đủ dưới dạng JSON. Lưu ý: signing_secret không được trả về ở đây — nó chỉ có trong phản hồi từ create-webhook.

Tham số:

  • webhook_id (bắt buộc): ID của webhook cần lấy

create-webhook

Tạo một webhook. Phản hồi bao gồm signing_secret để xác minh chữ ký tải trọng webhook — bí mật này chỉ được trả về khi tạo, vì vậy hãy lưu trữ ngay. Nếu mất, hãy tạo lại webhook.

Tham số:

  • url (bắt buộc): URL mà Mailtrap sẽ POST sự kiện webhook đến
  • webhook_type (bắt buộc): "email_sending" hoặc "audit_log"
  • active (tùy chọn, boolean): mặc định là true
  • payload_format (tùy chọn): "json" hoặc "jsonlines". Mặc định là "json"
  • sending_stream (tùy chọn, chỉ email_sending): "transactional" hoặc "bulk"
  • event_types (tùy chọn, chỉ email_sending): mảng gồm delivery, soft_bounce, bounce, suspension, unsubscribe, open, spam_complaint, click, reject
  • domain_id (tùy chọn, chỉ email_sending): ID miền gửi để giới hạn phạm vi webhook này

update-webhook

Cập nhật các trường có thể thay đổi của webhook. webhook_type, sending_streamdomain_id không thể thay đổi sau khi tạo — hãy tạo lại webhook nếu cần thay đổi chúng.

Tham số:

  • webhook_id (bắt buộc): ID của webhook cần cập nhật
  • url (tùy chọn): URL webhook mới
  • active (tùy chọn, boolean): Bật hoặc tắt webhook
  • payload_format (tùy chọn): "json" hoặc "jsonlines"
  • event_types (tùy chọn, chỉ email_sending): mảng gồm delivery, soft_bounce, bounce, suspension, unsubscribe, open, spam_complaint, click, reject

delete-webhook

Xóa vĩnh viễn một webhook theo ID. Trả về bản ghi webhook đã xóa.

Tham số:

  • webhook_id (bắt buộc): ID của webhook cần xóa

get-contact

Lấy một liên hệ theo ID hoặc email. Trả về bản ghi liên hệ đầy đủ (thành viên danh sách, trạng thái, trường tùy chỉnh).

Tham số:

  • contact_identifier (bắt buộc): ID liên hệ hoặc địa chỉ email

create-contact

Tạo một liên hệ mới.

Tham số:

  • email (bắt buộc): Địa chỉ email
  • fields (tùy chọn): Giá trị trường tùy chỉnh được khóa bởi thẻ hợp nhất (ví dụ: first_name). Giá trị chuỗi, số hoặc boolean
  • list_ids (tùy chọn): ID của danh sách liên hệ để đăng ký liên hệ này
  • unsubscribed (tùy chọn, boolean): Tạo liên hệ ở trạng thái unsubscribed

update-contact

Cập nhật liên hệ hiện có được xác định bằng ID hoặc email. list_ids thay thế toàn bộ tập hợp thành viên của liên hệ; list_ids_included/list_ids_excluded thêm/xóa mà không ảnh hưởng đến phần còn lại.

Tham số:

  • contact_identifier (bắt buộc): ID liên hệ hoặc email
  • email (tùy chọn): Địa chỉ email mới
  • fields (tùy chọn): Giá trị trường tùy chỉnh được khóa bởi thẻ hợp nhất
  • list_ids (tùy chọn): Thay thế tập hợp thành viên bằng danh sách chính xác này
  • list_ids_included (tùy chọn): ID danh sách để thêm (cộng thêm)
  • list_ids_excluded (tùy chọn): ID danh sách để xóa
  • unsubscribed (tùy chọn, boolean): Đặt thành unsubscribed (true) hoặc subscribed (false)

delete-contact

Xóa vĩnh viễn một liên hệ theo ID hoặc email. Trả về bản ghi liên hệ đã xóa khi API phản hồi với một bản ghi; nếu không, trả về tải trọng xác nhận.

Tham số:

  • contact_identifier (bắt buộc): ID liên hệ hoặc email

create-contact-event

Ghi lại một sự kiện liên hệ cho một liên hệ (theo ID hoặc email). Được sử dụng để kích hoạt tự động hóa danh sách liên hệ.

Tham số:

  • contact_identifier (bắt buộc): ID liên hệ hoặc email
  • name (bắt buộc): Tên sự kiện (khớp với trình kích hoạt tự động hóa)
  • params (bắt buộc): Đối tượng chứa các cặp khóa/giá trị tùy ý. Giá trị có thể là chuỗi, số, boolean hoặc null

list-contact-lists

Liệt kê tất cả danh sách liên hệ cho tài khoản.

Tham số:

  • Không yêu cầu tham số

get-contact-list

Lấy danh sách liên hệ theo ID.

Tham số:

  • list_id (bắt buộc): ID của danh sách liên hệ cần lấy

create-contact-list

Tạo danh sách liên hệ mới.

Tham số:

  • name (bắt buộc): Tên cho danh sách mới

update-contact-list

Đổi tên danh sách liên hệ hiện có.

Tham số:

  • list_id (bắt buộc): ID của danh sách liên hệ
  • name (bắt buộc): Tên mới cho danh sách

delete-contact-list

Xóa vĩnh viễn danh sách liên hệ theo ID.

Tham số:

  • list_id (bắt buộc): ID của danh sách liên hệ cần xóa

list-contact-fields

Liệt kê tất cả định nghĩa trường liên hệ cho tài khoản.

Tham số:

  • Không yêu cầu tham số

get-contact-field

Lấy định nghĩa trường liên hệ theo ID.

Tham số:

  • field_id (bắt buộc): ID của trường liên hệ

create-contact-field

Tạo định nghĩa trường liên hệ mới. merge_tag phải là duy nhất trong tài khoản và được sử dụng làm tên giữ chỗ trong các biến mẫu.

Tham số:

  • name (bắt buộc): Tên hiển thị (ví dụ: "Tên")
  • merge_tag (bắt buộc): Tên giữ chỗ duy nhất (ví dụ: first_name)
  • data_type (bắt buộc): Một trong số text, number, boolean, date

update-contact-field

Cập nhật định nghĩa trường liên hệ. Có thể thay đổi bất kỳ kết hợp nào của name, merge_tagdata_type.

Tham số:

  • field_id (bắt buộc): ID của trường liên hệ
  • name (tùy chọn): Tên hiển thị mới
  • merge_tag (tùy chọn): Thẻ hợp nhất mới (phải duy trì tính duy nhất)
  • data_type (tùy chọn): Một trong số text, number, boolean, date

delete-contact-field

Xóa vĩnh viễn định nghĩa trường liên hệ theo ID.

Tham số:

  • field_id (bắt buộc): ID của trường liên hệ cần xóa

create-contact-import

Nhập hàng loạt liên hệ. Trả về bản ghi công việc nhập; kiểm tra trạng thái của nó bằng get-contact-import.

Tham số:

  • contacts (bắt buộc): Mảng các mục liên hệ. Mỗi mục cần có:
    • email (bắt buộc): Địa chỉ email liên hệ
    • fields (tùy chọn): Giá trị trường tùy chỉnh được khóa bởi thẻ hợp nhất (giá trị chuỗi hoặc số)
    • list_ids_included (tùy chọn): ID danh sách để thêm liên hệ vào
    • list_ids_excluded (tùy chọn): ID danh sách để xóa liên hệ khỏi

get-contact-import

Lấy trạng thái của công việc nhập liên hệ (đã tạo/đã bắt đầu/đã hoàn thành/thất bại) với số lượng đã tạo/đã cập nhật/vượt giới hạn.

Tham số:

  • import_id (bắt buộc): ID của công việc nhập liên hệ

create-contact-export

Xuất các liên hệ khớp với một tập hợp bộ lọc kết hợp AND. Trả về bản ghi công việc xuất; kiểm tra trạng thái bằng get-contact-export để lấy URL tải xuống khi statusfinished.

Tham số:

  • filters (bắt buộc): Mảng các đối tượng bộ lọc. Mỗi đối tượng có:
    • name (bắt buộc): Trường để lọc (list_id, subscription_status, email, v.v.)
    • operator (bắt buộc): Một trong số equal, not_equal, contains, not_contains, is_empty, is_not_empty
    • value (bắt buộc): Giá trị so sánh (chuỗi, số, boolean hoặc mảng)

get-contact-export

Lấy trạng thái của công việc xuất liên hệ. Khi statusfinished, trường url chứa liên kết tải xuống CSV.

Tham số:

  • export_id (bắt buộc): ID của công việc xuất liên hệ

list-accounts

Liệt kê các tài khoản Mailtrap mà token API hiện tại có thể truy cập, cùng với cấp độ truy cập của từng tài khoản.

Tham số:

  • Không yêu cầu tham số

get-billing-usage

Lấy thông tin sử dụng chu kỳ thanh toán hiện tại cho tài khoản: gói gửi và kiểm tra, giới hạn và số lượng hiện tại.

Tham số:

  • Không yêu cầu tham số

list-account-accesses

Liệt kê quyền truy cập tài khoản (người dùng, lời mời, token API) cho tài khoản. Bộ lọc tùy chọn thu hẹp kết quả vào các tài nguyên cụ thể. Yêu cầu quyền quản trị viên/chủ sở hữu tài khoản.

Tham số:

  • domain_uuids (tùy chọn): Lọc theo UUID miền gửi (mảng chuỗi)
  • inbox_ids (tùy chọn): Lọc theo ID hộp thư sandbox (mảng chuỗi)
  • project_ids (tùy chọn): Lọc theo ID dự án sandbox (mảng chuỗi)

remove-account-access

Xóa quyền truy cập tài khoản theo ID. Đối với bộ xác định User, thao tác này thu hồi quyền của họ; đối với bộ xác định Invite hoặc ApiToken, thao tác này xóa hoàn toàn bộ xác định. Yêu cầu quyền quản trị viên/chủ sở hữu.

Tham số:

  • account_access_id (bắt buộc): ID của bản ghi truy cập cần xóa

get-permission-resources

Lấy tất cả tài nguyên (hộp thư, dự án, miền, thanh toán, tài khoản) mà token API có quyền truy cập quản trị, được lồng theo phân cấp.

Tham số:

  • Không yêu cầu tham số

bulk-update-permissions

Tạo, cập nhật hoặc hủy hàng loạt quyền cho một quyền truy cập tài khoản duy nhất. Các cặp (resource_type, resource_id) hiện có được cập nhật; các cặp mới được tạo. Đặt destroy: true trên một mục để xóa nó.

Tham số:

  • account_access_id (bắt buộc): ID quyền truy cập tài khoản mục tiêu
  • permissions (bắt buộc): Mảng các mục quyền. Mỗi mục có:
    • resource_id (bắt buộc): ID tài nguyên (số hoặc chuỗi)
    • resource_type (bắt buộc): Một trong số account, project, inbox, domain, billing
    • access_level (tùy chọn): admin/100 hoặc viewer/10
    • destroy (tùy chọn, boolean): Khi true, xóa quyền này thay vì tạo/cập nhật nó

list-api-tokens

Liệt kê tất cả token API cho tài khoản.

Tham số:

  • Không yêu cầu tham số

create-api-token

Tạo token API mới. Phản hồi bao gồm giá trị bí mật token — đây là lần duy nhất token đầy đủ được trả về, vì vậy hãy lưu trữ ngay lập tức. Nếu mất, hãy tạo lại token.

Tham số:

  • name (bắt buộc): Tên hiển thị cho token
  • resources (tùy chọn): Mảng quyền tài nguyên để giới hạn phạm vi token. Mỗi mục có:
    • resource_type (bắt buộc): Một trong số account, project, inbox, domain, billing
    • resource_id (bắt buộc): ID của tài nguyên
    • access_level (bắt buộc): 100 (quản trị viên) hoặc 10 (người xem)

get-api-token

Lấy token API theo ID. Chỉ trả về siêu dữ liệu — giá trị token bí mật không được trả về ở đây (chỉ từ create-api-token / reset-api-token).

Tham số:

  • api_token_id (bắt buộc): ID của token API

reset-api-token

Đặt lại (xoay vòng) token API theo ID. Phản hồi bao gồm giá trị bí mật mới token — chỉ được trả về trong lệnh gọi này, vì vậy hãy lưu trữ ngay lập tức. Token trước đó bị vô hiệu hóa.

Tham số:

  • api_token_id (bắt buộc): ID của token API cần đặt lại

delete-api-token

Xóa vĩnh viễn token API theo ID. Token không thể xác thực sau khi xóa.

Tham số:

  • api_token_id (bắt buộc): ID của token API cần xóa

list-sub-accounts

Liệt kê các tài khoản phụ trong tổ chức. Yêu cầu biến môi trường MAILTRAP_ORGANIZATION_ID và quyền quản lý tài khoản phụ.

Tham số:

  • Không yêu cầu tham số

create-sub-accountTạo một tài khoản phụ mới trong tổ chức. Yêu cầu biến môi trường MAILTRAP_ORGANIZATION_ID và quyền quản lý tài khoản phụ.

Tham số:

  • name (bắt buộc): Tên hiển thị cho tài khoản phụ mới

Phát triển

  1. Sao chép kho lưu trữ:
git clone https://github.com/mailtrap/mailtrap-mcp.git
cd mailtrap-mcp
  1. Cài đặt các phụ thuộc:
npm install

Cấu hình với Claude Desktop hoặc Cursor

[!TIP] Xem vị trí tệp cấu hình trong phần Thiết lập.

Thêm cấu hình sau:

{
  "mcpServers": {
    "mailtrap": {
      "command": "node",
      "args": ["/path/to/mailtrap-mcp/dist/index.js"],
      "env": {
        "MAILTRAP_API_TOKEN": "your_mailtrap_api_token",
        "DEFAULT_FROM_EMAIL": "[email protected]",
        "MAILTRAP_ACCOUNT_ID": "your_account_id",
        "MAILTRAP_TEST_INBOX_ID": "your_test_inbox_id"
      }
    }
  }
}

Nếu bạn đang sử dụng asdf để quản lý Node.js, bạn nên sử dụng đường dẫn tuyệt đối đến tệp thực thi:

(ví dụ cho Mac)

{
  "mcpServers": {
    "mailtrap": {
      "command": "/Users/<username>/.asdf/shims/node",
      "args": ["/path/to/mailtrap-mcp/dist/index.js"],
      "env": {
        "PATH": "/Users/<username>/.asdf/shims:/usr/bin:/bin",
        "ASDF_DIR": "/opt/homebrew/opt/asdf/libexec",
        "ASDF_DATA_DIR": "/Users/<username>/.asdf",
        "ASDF_NODEJS_VERSION": "20.6.1",
        "MAILTRAP_API_TOKEN": "your_mailtrap_api_token",
        "DEFAULT_FROM_EMAIL": "[email protected]",
        "MAILTRAP_ACCOUNT_ID": "your_account_id",
        "MAILTRAP_TEST_INBOX_ID": "your_test_inbox_id"
      }
    }
  }
}

VS Code

[!TIP] Xem vị trí tệp cấu hình trong phần Thiết lập.

{
  "mcp": {
    "servers": {
      "mailtrap": {
        "command": "node",
        "args": ["/path/to/mailtrap-mcp/dist/index.js"],
        "env": {
          "MAILTRAP_API_TOKEN": "your_mailtrap_api_token",
          "DEFAULT_FROM_EMAIL": "[email protected]",
          "MAILTRAP_ACCOUNT_ID": "your_account_id",
          "MAILTRAP_TEST_INBOX_ID": "your_test_inbox_id"
        }
      }
    }
  }
}

Kiểm thử

Chạy công cụ với Mailtrap thực

Có hai cách để thực thi một công cụ đầu cuối với tài khoản Mailtrap thực: giao diện người dùng trình duyệt MCP Inspector để khám phá tương tác, hoặc chế độ CLI của nó cho các lệnh gọi một lần từ shell.

Cả hai đều yêu cầu gói phải được xây dựng trước:

npm run build

MAILTRAP_API_TOKEN + MAILTRAP_ACCOUNT_ID được xuất trong shell của bạn (tập lệnh mcp:cli chuyển tiếp cả hai đến máy chủ được khởi tạo).

Giao diện người dùng trình duyệt

npm run dev

Inspector in ra một URL như http://localhost:6274. Mở nó, chuyển sang tab Tools, chọn một công cụ (ví dụ: get-template), điền các tham số dưới dạng JSON và nhấn Run. Phản hồi từ Mailtrap xuất hiện trong bảng điều khiển bên dưới.

CLI

Đối với các lệnh gọi một lần không có giao diện người dùng, sử dụng npm run mcp:cli. Truyền các cờ CLI của Inspector sau -- để npm chuyển tiếp chúng nguyên văn:

# List all tools
npm run mcp:cli -- --method tools/list

# Call a tool — flags after the `--`
npm run mcp:cli -- \
  --method tools/call \
  --tool-name get-template \
  --tool-arg template_id=12345

# Multiple --tool-arg flags for tools with several params
npm run mcp:cli -- \
  --method tools/call \
  --tool-name send-sending-domain-setup-instructions \
  --tool-arg sending_domain_id=3938 \
  --tool-arg [email protected]

Chạy Máy chủ MCPB

# Run the MCPB server directly
node dist/mcpb-server.js

# Or use the provided binary
mailtrap-mcpb-server

[!TIP] Để phát triển với MCP Inspector:

npm run dev:mcpb

Xử lý lỗi

Máy chủ này sử dụng xử lý lỗi có cấu trúc phù hợp với các quy ước MCP:

  • VALIDATION_ERROR: Lỗi xác thực đầu vào
  • CONFIGURATION_ERROR: Thiếu hoặc cấu hình không hợp lệ
  • EXECUTION_ERROR: Lỗi thực thi thời gian chạy
  • TIMEOUT: Hết thời gian chờ thao tác (mặc định 30 giây)

Các lỗi bao gồm thông điệp có thể hành động và được ghi lại dưới dạng có cấu trúc.

Bảo mật

  • Đầu vào được xác thực qua lược đồ Zod
  • Biến môi trường được xử lý an toàn
  • Bảo vệ thời gian chờ trên các thao tác (30 giây)
  • Chi tiết nhạy cảm được làm sạch trong đầu ra lỗi

Ghi nhật ký

Nhật ký JSON có cấu trúc với các cấp độ: INFO, WARN, ERROR, DEBUG.

Bật ghi nhật ký gỡ lỗi bằng cách đặt DEBUG=true.

# Example: enable debug logging
DEBUG=true node dist/mcpb-server.js

Quan trọng: Máy chủ ghi nhật ký vào stderr để stdout vẫn dành riêng cho các khung JSON-RPC. Điều này ngăn máy chủ gặp lỗi phân tích cú pháp JSON do nhật ký xen kẽ.

Ví dụ phân tích nhật ký sử dụng jq:

# Filter error logs
node dist/mcpb-server.js 2>&1 | jq 'select(.level == "error")'

# Filter debug logs
node dist/mcpb-server.js 2>&1 | jq 'select(.level == "debug")'

Khắc phục sự cố

Các vấn đề thường gặp:

  1. Thiếu Mã thông báo API: đảm bảo MAILTRAP_API_TOKEN được đặt
  2. Hộp cát không hoạt động: cung cấp test_inbox_id trong lệnh gọi công cụ hoặc đặt biến môi trường MAILTRAP_TEST_INBOX_ID
  3. Lỗi thời gian chờ: kiểm tra kết nối mạng và trạng thái API Mailtrap
  4. Lỗi xác thực: đảm bảo tất cả các trường bắt buộc được cung cấp

Đóng góp

Báo cáo lỗi và yêu cầu kéo được chào đón trên GitHub. Dự án này nhằm mục đích là một không gian an toàn, thân thiện cho sự hợp tác và những người đóng góp được kỳ vọng tuân thủ quy tắc ứng xử.

Giấy phép

Gói này có sẵn dưới dạng mã nguồn mở theo các điều khoản của Giấy phép MIT.

Quy tắc ứng xử

Mọi người tương tác trong cơ sở mã, trình theo dõi vấn đề, phòng trò chuyện và danh sách gửi thư của dự án Mailtrap được kỳ vọng tuân theo quy tắc ứng xử.