Mailtrap
resmiTerintegrasi dengan Mailtrap Email API.
Apa yang bisa Anda lakukan dengan Mailtrap MCP?
- Kirim email transaksional — Minta pengiriman email melalui
send-emaildengan konten inline atau template, termasuk CC/BCC dan variabel kustom. - Kelola template email — Gunakan
list-templates,create-template,update-template, ataudelete-templateuntuk memelihara desain email yang dapat digunakan ulang. - Periksa log pengiriman — Kueri
list-email-logsdengan filter seperti penerima, status, atau tanggal, lalu telusuri detail denganget-email-log-message. - Uji email di sandbox — Kirim ke kotak masuk uji melalui
send-sandbox-email, lalu tinjau pesan denganget-sandbox-messagesdanshow-sandbox-email-message. - Analisis kinerja pengiriman — Dapatkan tingkat pengiriman, pantulan, dan keterlibatan melalui
get-sending-stats, opsional dipecah berdasarkan domain atau kategori. - Konfigurasi infrastruktur pengiriman — Kelola
list-sending-domains, buat atau hapus domain, dan ambil petunjuk pengaturan DNS.
Dokumentasi
Server MCP Mailtrap
Server MCP yang menyediakan alat untuk mengirim dan menguji di sandbox melalui Mailtrap.
Prasyarat
Sebelum menggunakan server MCP ini, Anda perlu:
- Buat akun Mailtrap
- Verifikasi domain Anda
- Dapatkan token API dari pengaturan API Mailtrap
- Dapatkan ID Akun Anda dari manajemen akun Mailtrap
Variabel Lingkungan yang Diperlukan:
MAILTRAP_API_TOKEN- Diperlukan untuk semua fungsionalitasMAILTRAP_ACCOUNT_ID- Diperlukan untuk template, statistik, log email, daftar/tampilan sandbox, dan domain pengiriman. Opsional hanya untuk alat kirim (send-email, send-sandbox-email, dan alat batch-send-*).
Opsional (dapat diberikan sebagai parameter alat sebagai gantinya):
DEFAULT_FROM_EMAIL- Email pengirim default ketikafromtidak diberikan ke send-email, send-sandbox-email, atau alat batch-send-* (yang mengisibase.from). Memungkinkan penggantian pengirim per panggilan melalui parameterfrom.MAILTRAP_SANDBOX_ID- ID sandbox default untuk alat sandbox ketikasandbox_idtidak diberikan. Memungkinkan peralihan antar sandbox per panggilan melalui parametersandbox_id.MAILTRAP_TEST_INBOX_ID- ID kotak masuk uji default untuk alat sandbox ketikatest_inbox_idtidak diberikan. Memungkinkan peralihan antar kotak masuk per panggilan melalui parametertest_inbox_id. Alias lama untukMAILTRAP_SANDBOX_ID, masih dihormati sebagai cadangan.MAILTRAP_ORGANIZATION_ID- Diperlukan untuk alat organisasi (list-sub-accounts,create-sub-account).MAILTRAP_ORGANIZATION_API_TOKEN- Token API khusus organisasi. Diperlukan untuk alat organisasi (terpisah dariMAILTRAP_API_TOKEN).
Instalasi Cepat
Smithery CLI
Smithery adalah penginstal dan pengelola registri untuk server MCP yang berfungsi dengan semua klien AI.
npx @smithery/cli install mailtrap
Smithery secara otomatis menangani konfigurasi klien dan menyediakan proses pengaturan interaktif. Ini adalah cara termudah untuk memulai dengan server MCP secara lokal.
Pengaturan
Claude Desktop
Gunakan MCPB untuk menginstal server Mailtrap. Anda dapat menemukan file-file tersebut di Releases.
Unduh file .MCPB dan buka. Jika Anda memiliki Claude Desktop - file tersebut akan terbuka dan menyarankan untuk dikonfigurasi.
Claude Desktop atau Cursor
Tambahkan konfigurasi berikut:
{
"mcpServers": {
"mailtrap": {
"command": "npx",
"args": ["-y", "mcp-mailtrap"],
"env": {
"MAILTRAP_API_TOKEN": "your_mailtrap_api_token",
"DEFAULT_FROM_EMAIL": "your_sender@example.com",
"MAILTRAP_ACCOUNT_ID": "your_account_id",
"MAILTRAP_TEST_INBOX_ID": "your_test_inbox_id"
}
}
}
}
Jika Anda menggunakan asdf untuk mengelola Node.js, Anda harus menggunakan jalur absolut ke executable (contoh untuk 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": "your_sender@example.com",
"MAILTRAP_ACCOUNT_ID": "your_account_id",
"MAILTRAP_TEST_INBOX_ID": "your_test_inbox_id"
}
}
}
}
Lokasi file konfigurasi Claude Desktop
Mac: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
Lokasi file konfigurasi Cursor
Mac: ~/.cursor/mcp.json
Windows: %USERPROFILE%\.cursor\mcp.json
VS Code
Mengubah konfigurasi secara manual
Jalankan di Command Palette: Preferences: Open User Settings (JSON)
Kemudian, di file pengaturan, tambahkan konfigurasi berikut:
{
"mcp": {
"servers": {
"mailtrap": {
"command": "npx",
"args": ["-y", "mcp-mailtrap"],
"env": {
"MAILTRAP_API_TOKEN": "your_mailtrap_api_token",
"DEFAULT_FROM_EMAIL": "your_sender@example.com",
"MAILTRAP_ACCOUNT_ID": "your_account_id",
"MAILTRAP_TEST_INBOX_ID": "your_test_inbox_id"
}
}
}
}
}
[!TIP] Jangan lupa untuk me-restart server MCP Anda setelah mengubah bagian "env".
MCP Bundle (MCPB)
Untuk instalasi mudah di host yang mendukung MCP Bundles, Anda dapat mendistribusikan file bundle .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
Ini membuat mailtrap-mcp.mcpb menggunakan repositori manifest.json dan artefak yang dibangun di dist/.
Penggunaan
Setelah dikonfigurasi, Anda dapat meminta agen untuk mengirim email dan mengelola template, misalnya:
Operasi Pengiriman Email:
- "Kirim email ke john.doe@example.com dengan subjek 'Meeting Tomorrow' dan pengingat ramah tentang pertemuan kita yang akan datang."
- "Email sarah@example.com tentang pembaruan proyek, dan CC tim di team@example.com"
- "Kirim template selamat datang (uuid
b81aabcd-1a1e-41cf-91b6-eca0254b3d96) ke new@example.com dengan variabel{ name: 'Alex' }" - "Kirim email sandbox ke test@example.com dengan subjek 'Test Template' untuk melihat pratinjau tampilan email selamat datang kita"
Log Email (debug pengiriman):
- "Daftarkan log email yang baru saya kirim"
- "Tampilkan log email untuk email yang dikirim ke user@example.com"
- "Dapatkan pesan log email untuk ID abc-123-uuid untuk memeriksa status pengiriman"
Statistik Pengiriman:
- "Dapatkan statistik pengiriman untuk Januari 2025"
- "Tampilkan tingkat pengiriman yang dipecah berdasarkan domain untuk bulan lalu"
- "Apa statistik email saya berdasarkan kategori dari 2025-01-01 hingga 2025-01-31?"
Operasi Sandbox:
- "Dapatkan semua pesan dari kotak masuk sandbox saya"
- "Tampilkan halaman pertama pesan sandbox"
- "Cari pesan yang mengandung 'test' di kotak masuk sandbox saya"
- "Tampilkan detail pesan sandbox dengan ID 5159037506"
Operasi Template:
- "Daftarkan semua template email di akun Mailtrap saya"
- "Buat template email baru bernama 'Welcome Email' dengan subjek 'Welcome to our platform!'"
- "Perbarui template dengan ID 12345 untuk mengubah subjek menjadi 'Updated Welcome Message'"
- "Hapus template dengan ID 67890"
Domain Pengiriman:
- "Daftarkan domain pengiriman saya"
- "Dapatkan domain pengiriman dengan ID 3938"
- "Buat domain pengiriman untuk example.com"
- "Hapus domain pengiriman 3938"
- "Dapatkan domain pengiriman 3938 dengan petunjuk pengaturan DNS"
Alat yang Tersedia
send-email
Mengirim email transaksional melalui Mailtrap. Mendukung dua mode yang saling eksklusif — konten inline (subject + text/html) atau berbasis template (template_uuid).
Parameter:
from(opsional): Pengirim sebagai{ email, name? }(string email polos juga diterima saat runtime). Jika tidak diberikan,DEFAULT_FROM_EMAILdigunakan.to(opsional): Array penerima sebagai objek{ email, name? }(string email polos, atau satu alamat non-array, juga diterima saat runtime). Opsional jikaccataubccdiberikan; setidaknya satu darito/cc/bccharus berisi penerima.cc(opsional): Array penerima CC sebagai objek{ email, name? }(string email polos juga diterima saat runtime).bcc(opsional): Array penerima BCC sebagai objek{ email, name? }(string email polos juga diterima saat runtime).subject(kondisional): Baris subjek email. Diperlukan untuk pengiriman inline; harus dihilangkan ketikatemplate_uuiddiatur.text(kondisional): Teks isi email. Diperlukan (bersamaan dengan atau sebagai penggantihtml) untuk pengiriman inline; harus dihilangkan ketikatemplate_uuiddiatur.html(kondisional): Versi HTML dari isi email. Diperlukan (bersamaan dengan atau sebagai penggantitext) untuk pengiriman inline; harus dihilangkan ketikatemplate_uuiddiatur.category(opsional): Kategori email untuk pelacakan dan analitik. Harus dihilangkan ketikatemplate_uuiddiatur.template_uuid(opsional): Gunakan template email Mailtrap alih-alih konten inline. Saat diatur,subject/text/html/categoryharus dihilangkan (sesuai API Mailtrap).template_variables(opsional): Objek variabel yang disubstitusikan ke dalam template yang dirujuk olehtemplate_uuid. Hanya diizinkan bersama dengantemplate_uuid.
batch-send-transactional-email
Mengirim batch email transaksional dalam satu panggilan API Mailtrap (aliran pengiriman default). Bidang bersama ditempatkan di base; penimpaan per-penerima ditempatkan di requests[]. Setiap permintaan harus menyertakan setidaknya satu penerima melalui to, cc, atau bcc. Aturan eksklusi inline-vs-template yang sama seperti send-email — diperiksa setelah menggabungkan basis dengan setiap permintaan.
Parameter:
base(opsional): Objek dengan bidang yang dibagikan di seluruh batch.from(opsional): Pengirim sebagai{ email, name? }(string email polos juga diterima saat runtime). Jatuh kembali keDEFAULT_FROM_EMAIL.reply_to(opsional): Alamat balas (reply-to).subject/text/html/category(opsional, mode inline): Konten default untuk setiap permintaan.template_uuid/template_variables(opsional, mode template): Template default + variabel. Saling eksklusif dengan bidang inline.custom_variables(opsional): Variabel kustom default (bernilai string).headers(opsional): Header kustom default.
requests(wajib): Array non-kosong dari pesan per-penerima. Setiap entri memiliki:to(opsional): Array penerima sebagai objek{ email, name? }(string email polos, atau satu alamat non-array, juga diterima saat runtime). Opsional jikaccataubccdiberikan; setidaknya satu darito/cc/bccharus berisi penerima.cc,bcc,reply_to(opsional).- Penimpaan inline (
subject/text/html/category) atau template (template_uuid/template_variables); bidang apa pun yang dihilangkan akan jatuh kembali ke nilaibaseyang sesuai. custom_variables,headers(opsional).
batch-send-bulk-email
Mengirim batch email massal melalui API bulk-stream Mailtrap. Bentuk base + requests[], validasi, dan aturan inline-vs-template yang sama seperti batch-send-transactional-email — satu-satunya perbedaan adalah alat ini merutekan panggilan melalui endpoint bulk alih-alih endpoint transaksional. Lihat parameter di atas.
list-email-logs
Mencantumkan log email yang dikirim (riwayat pengiriman) dengan paginasi dan filter opsional. Gunakan untuk men-debug masalah pengiriman dari IDE.
Parameter:
search_after(opsional): Kursor paginasi darinext_page_cursorrespons sebelumnyasent_after(opsional): Tanggal/waktu ISO 8601; hanya log yang dikirim setelah waktu inisent_before(opsional): Tanggal/waktu ISO 8601; hanya log yang dikirim sebelum waktu inifrom_email(opsional): Filter berdasarkan email pengirim; gunakan denganfrom_operator(default: ci_equal)to_email(opsional): Filter berdasarkan email penerima; gunakan denganto_operator(default: ci_equal)status(opsional): Filter berdasarkan status pengiriman: delivered, not_delivered, enqueued, opted_out; gunakan denganstatus_operator(default: equal)subject(opsional): Filter berdasarkan subjek email; gunakan dengansubject_operator(default: ci_contain). Gunakansubject_operator: empty/not_empty untuk memfilter berdasarkan keberadaan subjek.sending_domain_id(opsional): Filter berdasarkan ID domain pengiriman (angka); gunakan dengansending_domain_id_operator(default: equal)sending_stream(opsional): Filter berdasarkan aliran: transactional atau bulk; gunakan dengansending_stream_operator(default: equal)events(opsional): Filter berdasarkan jenis peristiwa: delivery, open, click, bounce, spam, unsubscribe, soft_bounce, reject, suspension; gunakan denganevents_operator(include_event / not_include_event)clicks_count/opens_count(opsional): Filter berdasarkan jumlah klik/buka; gunakan dengan*_operator: equal, greater_than, less_thanclient_ip/sending_ip(opsional): Filter berdasarkan IP; gunakan dengan*_operator: equal, not_equal, contain, not_containemail_service_provider_response(opsional): Filter berdasarkan teks respons penyedia; gunakan dengan*_operator(ci_contain, dll.)email_service_provider(opsional): Filter berdasarkan penyedia (tepat); gunakan dengan*_operator: equal, not_equalrecipient_mx(opsional): Filter berdasarkan MX penerima; gunakan denganrecipient_mx_operator(ci_contain, dll.)category(opsional): Filter berdasarkan kategori email; gunakan dengancategory_operator: equal, not_equal
Semua parameter bersifat opsional.
get-email-log-message
Mendapatkan satu pesan log email berdasarkan ID (UUID): ringkasan yang dapat dibaca (dari, ke, subjek, waktu pengiriman, status, kategori, aliran, keterlibatan, konteks pengiriman), kemudian riwayat peristiwa yang terperinci. Secara opsional, dengan include_content: true, Anda juga dapat memuat dan menampilkan isi pesan (HTML dan teks polos) ketika Mailtrap mengekspos URL pesan mentah.
Parameter:
message_id(wajib): UUID dari pesan log email (dari respons pengiriman atau daftar-log-email). Gunakanlist-email-logsuntuk menemukan ID pesan.include_content(opsional): Saattrue, mengambil EML mentah (jikaraw_message_urltersedia) dan menambahkan bagian konten HTML serta teks biasa yang telah diurai, mirip dengan show-sandbox-email-message.
get-sending-stats
Dapatkan statistik pengiriman email (tingkat pengiriman, bounce, buka, klik, spam) untuk rentang tanggal. Secara opsional dapat dipecah berdasarkan domain, kategori, penyedia layanan email, atau tanggal. Periksa tingkat pengiriman tanpa meninggalkan editor.
Parameter:
start_date(wajib): Tanggal mulai untuk rentang statistik (YYYY-MM-DD)end_date(wajib): Tanggal akhir untuk rentang statistik (YYYY-MM-DD)breakdown(opsional): Cara memecah statistik:aggregated(default),by_domain,by_category,by_email_service_provider, atauby_datesending_domain_ids(opsional): Batasi hasil ke ID domain pengiriman berikut (array bilangan bulat)sending_streams(opsional): Batasi ketransactionaldan/ataubulk(array string)categories(opsional): Batasi ke kategori email berikut (array string)email_service_providers(opsional): Batasi ke penyedia berikut, mis. Google, Yahoo, Outlook (array string)
create-template
Membuat template email baru di akun Mailtrap Anda.
Parameter:
name(wajib): Nama templatesubject(wajib): Baris subjek emailhtml(atautextwajib): Konten HTML dari templatetext(atauhtmlwajib): Versi teks biasa dari templatecategory(opsional): Kategori template (defaultnya "General")
list-templates
Mencantumkan semua template email di akun Mailtrap Anda.
Parameter:
- Tidak diperlukan parameter
get-template
Dapatkan satu template email berdasarkan ID, termasuk subjek, kategori, dan konten HTML/teks.
Parameter:
template_id(wajib): ID template yang akan diambil
update-template
Memperbarui template email yang sudah ada.
Parameter:
template_id(wajib): ID template yang akan diperbaruiname(opsional): Nama baru untuk templatesubject(opsional): Baris subjek email baruhtml(opsional): Konten HTML baru dari templatetext(opsional): Versi teks biasa baru dari templatecategory(opsional): Kategori baru untuk template
[!NOTE] Setidaknya satu kolom yang dapat diperbarui (name, subject, html, text, atau category) harus disediakan saat memanggil update-template untuk melakukan pembaruan.
delete-template
Menghapus template email yang sudah ada.
Parameter:
template_id(wajib): ID template yang akan dihapus
send-sandbox-email
Mengirim email ke kotak masuk uji Mailtrap Anda untuk tujuan pengembangan dan pengujian. Ini sangat cocok untuk menguji template email tanpa mengirim email ke penerima sungguhan. Mendukung dua mode yang sama seperti send-email — konten inline atau berbasis template (template_uuid).
Parameter:
test_inbox_id(opsional): ID kotak masuk uji Mailtrap. Wajib kecualiMAILTRAP_TEST_INBOX_IDdisetel; berikan per pemanggilan untuk menargetkan kotak masuk tertentu.from(opsional): Pengirim sebagai{ email, name? }(string email polos juga diterima saat runtime). Jika tidak diberikan,DEFAULT_FROM_EMAILyang digunakan.to(opsional): Array penerima sebagai objek{ email, name? }(string email polos dalam array, atau string email biasa yang dipisahkan koma, juga diterima saat runtime). Opsional jikaccataubccdiberikan; setidaknya satu darito/cc/bccharus berisi penerima.cc(opsional): Array penerima CC sebagai objek{ email, name? }(string email polos juga diterima saat runtime).bcc(opsional): Array penerima BCC sebagai objek{ email, name? }(string email polos juga diterima saat runtime).subject(bersyarat): Baris subjek email. Wajib untuk pengiriman inline; harus dihilangkan saattemplate_uuiddisetel.text(bersyarat): Teks konten email. Wajib (bersamaan dengan atau sebagai penggantihtml) untuk pengiriman inline; harus dihilangkan saattemplate_uuiddisetel.html(bersyarat): Versi HTML dari konten email. Wajib (bersamaan dengan atau sebagai penggantitext) untuk pengiriman inline; harus dihilangkan saattemplate_uuiddisetel.category(opsional): Kategori email untuk pelacakan. Harus dihilangkan saattemplate_uuiddisetel.template_uuid(opsional): Gunakan template email Mailtrap alih-alih konten inline. Saat disetel,subject/text/html/categoryharus dihilangkan.template_variables(opsional): Objek variabel yang disubstitusikan ke dalam template yang dirujuk olehtemplate_uuid. Hanya diperbolehkan bersama dengantemplate_uuid.
batch-send-sandbox-email
Mengirim sekumpulan email ke kotak masuk uji Mailtrap Anda dalam satu panggilan API, tanpa mengirim ke penerima sungguhan. Bentuk base + requests[], validasi, dan aturan inline-vs-template yang sama seperti batch-send-transactional-email — perbedaannya adalah alat ini mengarahkan panggilan melalui endpoint sandbox untuk satu kotak masuk uji.
Parameter:
sandbox_id(opsional): ID sandbox Mailtrap (kotak masuk uji). Wajib kecualiMAILTRAP_SANDBOX_IDdisetel; berikan per pemanggilan untuk menargetkan sandbox tertentu.base(opsional),requests(wajib): Lihatbatch-send-transactional-emaildi atas.
[!NOTE] Untuk alat sandbox, berikan
test_inbox_iddalam panggilan alat atau setel variabel lingkunganMAILTRAP_TEST_INBOX_ID. Anda dapat berpindah antar kotak masuk per pemanggilan dengan memberikantest_inbox_id. Alat yang menerimasandbox_idmenggunakanMAILTRAP_SANDBOX_IDterlebih dahulu.
get-sandbox-messages
Mengambil daftar pesan dari kotak masuk uji Mailtrap Anda. Berguna untuk memeriksa email apa saja yang telah diterima di sandbox Anda selama pengujian.
Parameter:
page(opsional): Nomor halaman untuk paginasi (minimum: 1)last_id(opsional): Paginasi menggunakan ID pesan terakhir. Mengembalikan pesan setelah ID pesan yang ditentukan (minimum: 1)search(opsional): Kueri pencarian untuk memfilter pesan
[!NOTE] Semua parameter bersifat opsional. Jika tidak ada yang diberikan, halaman pertama pesan dari kotak masuk akan dikembalikan. Gunakan page untuk paginasi tradisional, last_id untuk paginasi berbasis kursor, atau search untuk memfilter pesan berdasarkan konten.
show-sandbox-email-message
Menampilkan informasi terperinci dan konten pesan email tertentu dari kotak masuk uji Mailtrap Anda, termasuk konten HTML dan teks.
Parameter:
message_id(wajib): ID pesan email sandbox yang akan diambil
[!NOTE] Gunakan
get-sandbox-messagesterlebih dahulu untuk mendapatkan daftar pesan beserta ID-nya, lalu gunakan alat ini untuk melihat konten lengkap pesan tertentu.
get-sandbox-project
Dapatkan proyek sandbox berdasarkan ID, termasuk kotak masuk dan jumlah emailnya.
Parameter:
project_id(wajib): ID proyek yang akan diambil
update-sandbox-project
Mengganti nama proyek sandbox yang sudah ada.
Parameter:
project_id(wajib): ID proyek yang akan diperbaruiname(wajib): Nama baru untuk proyek (2–100 karakter)
list-sandboxes
Cantumkan setiap sandbox yang dapat diakses oleh token API di semua proyek.
Parameter:
- Tidak diperlukan parameter
mark-sandbox-as-read
Menandai semua pesan di sandbox sebagai sudah dibaca.
Parameter:
sandbox_id(wajib): ID sandbox yang akan ditindaklanjuti
reset-sandbox-credentials
Mengatur ulang kredensial SMTP untuk sandbox. Mengembalikan nama pengguna/kata sandi baru.
Parameter:
sandbox_id(wajib): ID sandbox yang akan ditindaklanjuti
enable-sandbox-email-address
Mengaktifkan alamat terima-melalui-email untuk sandbox (mengaktifkan alamat Mailtrap yang mengirimkan pesan ke sandbox melalui SMTP).
Parameter:
sandbox_id(wajib): ID sandbox yang akan ditindaklanjuti
reset-sandbox-email-address
Menghasilkan alamat terima-melalui-email baru untuk sandbox.
Parameter:
sandbox_id(wajib): ID sandbox yang akan ditindaklanjuti
forward-sandbox-message
Meneruskan pesan sandbox ke alamat email eksternal. Dihitung terhadap kuota penerusan bulanan Anda.
Parameter:
sandbox_id(opsional): ID Sandbox. Jatuh kembali keMAILTRAP_SANDBOX_ID.message_id(wajib): ID pesan sandbox yang akan diteruskanemail(wajib): Alamat email tujuan penerusan pesan
update-sandbox-message
Menandai pesan sandbox sebagai sudah dibaca atau belum dibaca.
Parameter:
sandbox_id(opsional): ID Sandbox. Jatuh kembali keMAILTRAP_SANDBOX_ID.message_id(wajib): ID pesan sandbox yang akan diperbaruiis_read(wajib):truemenandai sebagai sudah dibaca,falsemenandai sebagai belum dibaca
delete-sandbox-message
Menghapus satu pesan sandbox.
Parameter:
sandbox_id(opsional): ID Sandbox. Jatuh kembali keMAILTRAP_SANDBOX_ID.message_id(wajib): ID pesan sandbox yang akan dihapus
get-sandbox-message-spam-score
Dapatkan laporan spam SpamAssassin untuk pesan sandbox (skor, aturan, laporan lengkap). Alternatif mandiri untuk include_spam_report: true pada show-sandbox-email-message.
Parameter:
sandbox_id(opsional): ID Sandbox. Jatuh kembali keMAILTRAP_SANDBOX_ID.message_id(wajib): ID pesan sandbox
get-sandbox-message-html-analysis
Dapatkan laporan analisis HTML untuk pesan sandbox (skor kompatibilitas klien, elemen bermasalah). Alternatif mandiri untuk include_html_analysis: true pada show-sandbox-email-message.
Parameter:
sandbox_id(opsional): ID Sandbox. Jatuh kembali keMAILTRAP_SANDBOX_ID.message_id(wajib): ID pesan sandbox
get-sandbox-message-headers
Dapatkan header email yang telah diurai untuk pesan sandbox.
Parameter:
sandbox_id(opsional): ID Sandbox. Jatuh kembali keMAILTRAP_SANDBOX_ID.message_id(wajib): ID pesan sandbox
get-sandbox-message-html
Dapatkan konten HTML yang dirender dari pesan sandbox.
Parameter:
sandbox_id(opsional): ID Sandbox. Jatuh kembali keMAILTRAP_SANDBOX_ID.message_id(wajib): ID pesan sandbox
get-sandbox-message-text
Dapatkan konten teks biasa dari pesan sandbox.
Parameter:
sandbox_id(opsional): ID Sandbox. Jatuh kembali keMAILTRAP_SANDBOX_ID.message_id(wajib): ID pesan sandbox
get-sandbox-message-raw
Dapatkan pesan mentah berformat MIME (header + konten) untuk pesan sandbox.
Parameter:
sandbox_id(opsional): ID Sandbox. Jatuh kembali keMAILTRAP_SANDBOX_ID.message_id(wajib): ID pesan sandbox
get-sandbox-message-eml
Dapatkan pesan yang dirender sebagai payload file EML (cocok untuk dilampirkan ke tiket atau diimpor ke klien email lain).
Parameter:
sandbox_id(opsional): ID Sandbox. Jatuh kembali keMAILTRAP_SANDBOX_ID.message_id(wajib): ID pesan sandbox
get-sandbox-message-html-source
Dapatkan sumber HTML yang belum dirender dari pesan sandbox (HTML sebelum transformasi sisi Mailtrap seperti penulisan ulang tautan CID).
Parameter:
sandbox_id(opsional): ID Sandbox. Jatuh kembali keMAILTRAP_SANDBOX_ID.message_id(wajib): ID pesan sandbox
list-sandbox-attachments
Cantumkan semua lampiran pada pesan sandbox (nama file, tipe konten, ukuran, jalur unduhan).
Parameter:
sandbox_id(opsional): ID Sandbox. Jatuh kembali keMAILTRAP_SANDBOX_ID.message_id(wajib): ID pesan sandbox
get-sandbox-attachment
Dapatkan metadata dan URL unduhan untuk satu lampiran.
Parameter:
sandbox_id(opsional): ID Sandbox. Menggunakan fallback keMAILTRAP_SANDBOX_ID.message_id(wajib): ID pesan sandbox yang berisi lampiranattachment_id(wajib): ID lampiran yang akan diambil
list-sending-domains
Mencantumkan domain pengirim dan status verifikasi DNS-nya.
Parameter:
- Tidak ada parameter yang diperlukan
get-sending-domain
Mendapatkan domain pengirim berdasarkan ID dan status verifikasinya (termasuk catatan DNS). Secara opsional menyertakan petunjuk pengaturan DNS dengan mengatur include_setup_instructions ke true.
Parameter:
sending_domain_id(wajib): ID domain pengiriminclude_setup_instructions(opsional): Jikatrue, tambahkan petunjuk pengaturan DNS ke respons. Default:false
create-sending-domain
Membuat domain pengirim baru. Setelah pembuatan, tambahkan catatan DNS untuk memverifikasi domain (gunakan get-sending-domain dengan include_setup_instructions: true untuk melihat catatannya).
Parameter:
domain_name(wajib): Nama domain (mis. example.com)
delete-sending-domain
Menghapus domain pengirim.
Parameter:
sending_domain_id(wajib): ID domain pengirim yang akan dihapus
send-sending-domain-setup-instructions
Mengirim petunjuk pengaturan DNS untuk domain pengirim ke alamat tertentu. Berguna untuk meneruskan catatan DNS ke rekan DevOps.
Parameter:
sending_domain_id(wajib): ID domain pengirimemail(wajib): Alamat email tujuan pengiriman petunjuk pengaturan DNS
list-suppressions
Mencantumkan atau mencari suppressions (hard bounce, keluhan spam, berhenti berlangganan, impor manual). Mengembalikan hingga 1000 hasil per panggilan.
Parameter:
email(opsional): Filter email. Hanya mengembalikan suppressions yang cocok dengan alamat ini.
delete-suppression
Menghapus suppression berdasarkan ID. Mailtrap akan melanjutkan pengiriman ke email ini kecuali email tersebut ditekan lagi.
Parameter:
suppression_id(wajib): ID suppression yang akan dihapus
list-webhooks
Mencantumkan semua webhook yang dikonfigurasi untuk akun. Mengembalikan catatan webhook lengkap sebagai JSON.
Parameter:
- Tidak ada parameter yang diperlukan
get-webhook
Mendapatkan satu webhook berdasarkan ID. Mengembalikan catatan webhook lengkap sebagai JSON. Catatan: signing_secret tidak dikembalikan di sini — hanya tersedia dalam respons dari create-webhook.
Parameter:
webhook_id(wajib): ID webhook yang akan diambil
create-webhook
Membuat webhook. Respons menyertakan signing_secret untuk memverifikasi tanda tangan payload webhook — rahasia ini hanya dikembalikan saat pembuatan, jadi simpan sekarang. Jika hilang, buat ulang webhook.
Parameter:
url(wajib): URL tempat Mailtrap akan mengirim POST peristiwa webhookwebhook_type(wajib):"email_sending","audit_log", atau"inbound_receiving"active(opsional, boolean): default ketruepayload_format(opsional):"json"atau"jsonlines". Default ke"json"sending_stream(opsional, hanyaemail_sending):"transactional"atau"bulk"event_types(opsional, hanyaemail_sending): array daridelivery,soft_bounce,bounce,suspension,unsubscribe,open,spam_complaint,click,rejectdomain_id(opsional, hanyaemail_sending): ID domain pengirim untuk membatasi cakupan webhook iniinbound_inbox_id(opsional, hanyainbound_receiving): ID kotak masuk inbound yang ditautkan ke webhook; kosongkan untuk menerapkan ke semua kotak masuk di akun
update-webhook
Memperbarui kolom yang dapat diubah pada webhook. webhook_type, sending_stream, dan domain_id tidak dapat diubah setelah pembuatan — buat ulang webhook jika perlu mengubahnya.
Parameter:
webhook_id(wajib): ID webhook yang akan diperbaruiurl(opsional): URL webhook baruactive(opsional, boolean): Aktifkan atau nonaktifkan webhookpayload_format(opsional):"json"atau"jsonlines"event_types(opsional, hanyaemail_sending): array daridelivery,soft_bounce,bounce,suspension,unsubscribe,open,spam_complaint,click,rejectinbound_inbox_id(opsional, hanyainbound_receiving): ID kotak masuk inbound yang ditautkan ke webhook
delete-webhook
Menghapus webhook secara permanen berdasarkan ID. Mengembalikan catatan webhook yang dihapus.
Parameter:
webhook_id(wajib): ID webhook yang akan dihapus
get-contact
Mendapatkan kontak berdasarkan ID atau email. Mengembalikan catatan kontak lengkap (keanggotaan daftar, status, kolom kustom).
Parameter:
contact_identifier(wajib): ID kontak atau alamat email
create-contact
Membuat kontak baru.
Parameter:
email(wajib): Alamat emailfields(opsional): Nilai kolom kustom yang dikunci berdasarkan merge tag (mis.first_name). Nilai string, angka, atau booleanlist_ids(opsional): ID daftar kontak untuk mendaftarkan kontak iniunsubscribed(opsional, boolean): Buat kontak dengan statusunsubscribed
update-contact
Memperbarui kontak yang ada yang diidentifikasi berdasarkan ID atau email. list_ids mengganti seluruh set keanggotaan kontak; list_ids_included/list_ids_excluded menambah/menghapus tanpa mengganggu yang lain.
Parameter:
contact_identifier(wajib): ID kontak atau emailemail(opsional): Alamat email barufields(opsional): Nilai kolom kustom yang dikunci berdasarkan merge taglist_ids(opsional): Ganti set keanggotaan dengan daftar persis inilist_ids_included(opsional): ID daftar yang akan ditambahkan (aditif)list_ids_excluded(opsional): ID daftar yang akan dihapusunsubscribed(opsional, boolean): Atur keunsubscribed(benar) atausubscribed(salah)
delete-contact
Menghapus kontak secara permanen berdasarkan ID atau email. Mengembalikan catatan kontak yang dihapus saat API merespons dengan catatan tersebut; jika tidak, mengembalikan payload konfirmasi.
Parameter:
contact_identifier(wajib): ID kontak atau email
create-contact-event
Mencatat peristiwa kontak terhadap kontak (berdasarkan ID atau email). Digunakan untuk memicu otomatisasi daftar kontak.
Parameter:
contact_identifier(wajib): ID kontak atau emailname(wajib): Nama peristiwa (cocok dengan pemicu otomatisasi)params(wajib): Objek berisi pasangan kunci/nilai arbitrer. Nilai dapat berupa string, angka, boolean, atau null
list-contact-lists
Mencantumkan semua daftar kontak untuk akun.
Parameter:
search(opsional): Filter daftar kontak berdasarkan nama (pencocokan tidak peka huruf besar/kecil), mis.news
get-contact-list
Mendapatkan daftar kontak berdasarkan ID.
Parameter:
list_id(wajib): ID daftar kontak yang akan diambil
create-contact-list
Membuat daftar kontak baru.
Parameter:
name(wajib): Nama untuk daftar baru
update-contact-list
Mengganti nama daftar kontak yang ada.
Parameter:
list_id(wajib): ID daftar kontakname(wajib): Nama baru untuk daftar
delete-contact-list
Menghapus daftar kontak secara permanen berdasarkan ID.
Parameter:
list_id(wajib): ID daftar kontak yang akan dihapus
list-contact-fields
Mencantumkan semua definisi kolom kontak untuk akun.
Parameter:
- Tidak ada parameter yang diperlukan
get-contact-field
Mendapatkan definisi kolom kontak berdasarkan ID.
Parameter:
field_id(wajib): ID kolom kontak
create-contact-field
Membuat definisi kolom kontak baru. merge_tag harus unik dalam akun dan digunakan sebagai nama placeholder dalam variabel template.
Parameter:
name(wajib): Nama tampilan (mis. "First Name")merge_tag(wajib): Nama placeholder unik (mis.first_name)data_type(wajib): Salah satu daritext,number,boolean,date
update-contact-field
Memperbarui definisi kolom kontak. Kombinasi apa pun dari name, merge_tag, dan data_type dapat diubah.
Parameter:
field_id(wajib): ID kolom kontakname(opsional): Nama tampilan barumerge_tag(opsional): Merge tag baru (harus tetap unik)data_type(opsional): Salah satu daritext,number,boolean,date
delete-contact-field
Menghapus definisi kolom kontak secara permanen berdasarkan ID.
Parameter:
field_id(wajib): ID kolom kontak yang akan dihapus
create-contact-import
Impor kontak secara massal. Mengembalikan catatan pekerjaan impor; pantau statusnya dengan get-contact-import.
Parameter:
contacts(wajib): Array entri kontak. Setiap entri memerlukan:email(wajib): Alamat email kontakfields(opsional): Nilai kolom kustom yang dikunci berdasarkan merge tag (nilai string atau angka)list_ids_included(opsional): ID daftar untuk menambahkan kontaklist_ids_excluded(opsional): ID daftar untuk menghapus kontak
get-contact-import
Mendapatkan status pekerjaan impor kontak (created/started/finished/failed) beserta jumlah created/updated/over-limit.
Parameter:
import_id(wajib): ID pekerjaan impor kontak
create-contact-export
Mengekspor kontak yang cocok dengan serangkaian filter yang digabungkan dengan AND. Mengembalikan catatan pekerjaan ekspor; pantau status dengan get-contact-export untuk mengambil URL unduhan setelah status menjadi finished.
Parameter:
filters(wajib): Array objek filter. Setiap objek memiliki:name(wajib): Kolom yang akan difilter (list_id,subscription_status,email, dll.)operator(wajib): Salah satu dariequal,not_equal,contains,not_contains,is_empty,is_not_emptyvalue(wajib): Nilai perbandingan (string, angka, boolean, atau array)
get-contact-export
Mendapatkan status pekerjaan ekspor kontak. Setelah status menjadi finished, kolom url berisi tautan unduhan CSV.
Parameter:
export_id(wajib): ID pekerjaan ekspor kontak
list-accounts
Mencantumkan akun Mailtrap yang dapat diakses oleh token API saat ini, beserta tingkat akses setiap akun.
Parameter:
- Tidak ada parameter yang diperlukan
get-billing-usage
Mendapatkan penggunaan siklus penagihan saat ini untuk akun: paket pengiriman dan pengujian, batas, dan jumlah saat ini.
Parameter:
- Tidak ada parameter yang diperlukan
list-account-accesses
Mencantumkan akses akun (pengguna, undangan, token API) untuk akun. Filter opsional mempersempit hasil ke sumber daya tertentu. Memerlukan izin admin/pemilik akun.
Parameter:
domain_uuids(opsional): Filter berdasarkan UUID domain pengirim (array string)inbox_ids(opsional): Filter berdasarkan ID kotak masuk sandbox (array string)project_ids(opsional): Filter berdasarkan ID proyek sandbox (array string)
remove-account-access
Menghapus akses akun berdasarkan ID. Untuk penentu User, ini mencabut izinnya; untuk penentu Invite atau ApiToken, ini menghapus penentu tersebut sepenuhnya. Memerlukan admin/pemilik.
Parameter:
account_access_id(wajib): ID catatan akses yang akan dihapus
get-permission-resources
Mendapatkan semua sumber daya (kotak masuk, proyek, domain, penagihan, akun) yang memiliki akses admin oleh token API, disusun berdasarkan hierarki.
Parameter:
- Tidak ada parameter yang diperlukan
bulk-update-permissions
Membuat, memperbarui, atau menghapus izin secara massal untuk satu akses akun. Pasangan (resource_type, resource_id) yang ada diperbarui; yang baru dibuat. Atur destroy: true pada entri untuk menghapusnya.
Parameter:
account_access_id(wajib): ID akses akun targetpermissions(wajib): Array entri izin. Setiap entri memiliki:resource_id(wajib): ID sumber daya (angka atau string)resource_type(wajib): Salah satu dariaccount,project,inbox,domain,billingaccess_level(opsional):admin/100atauviewer/10destroy(opsional, boolean): Jika true, menghapus izin ini alih-alih membuat/memperbaruinya
list-api-tokens
Mencantumkan semua API token untuk akun.
Parameter:
- Tidak ada parameter yang diperlukan
create-api-token
Membuat API token baru. Respons menyertakan nilai rahasia token — ini adalah satu-satunya saat token lengkap dikembalikan, jadi simpan segera. Jika hilang, buat ulang token tersebut.
Parameter:
name(wajib): Nama tampilan untuk tokenresources(opsional): Array izin sumber daya untuk membatasi cakupan token. Setiap entri memiliki:resource_type(wajib): Salah satu dariaccount,project,inbox,domain,billingresource_id(wajib): ID sumber dayaaccess_level(wajib):100(admin) atau10(viewer)
get-api-token
Mendapatkan API token berdasarkan ID. Hanya mengembalikan metadata — nilai token rahasia tidak dikembalikan di sini (hanya dari create-api-token / reset-api-token).
Parameter:
api_token_id(wajib): ID API token
reset-api-token
Mereset (memutar) API token berdasarkan ID. Respons menyertakan nilai rahasia token yang baru — hanya dikembalikan pada panggilan ini, jadi simpan segera. Token sebelumnya menjadi tidak berlaku.
Parameter:
api_token_id(wajib): ID API token yang akan direset
delete-api-token
Menghapus API token secara permanen berdasarkan ID. Token tidak dapat lagi melakukan autentikasi setelah dihapus.
Parameter:
api_token_id(wajib): ID API token yang akan dihapus
list-sub-accounts
Mencantumkan sub-akun dalam organisasi. Memerlukan variabel lingkungan MAILTRAP_ORGANIZATION_ID dan izin pengelolaan sub-akun.
Parameter:
- Tidak ada parameter yang diperlukan
create-sub-account
Membuat sub-akun baru di bawah organisasi. Memerlukan variabel lingkungan MAILTRAP_ORGANIZATION_ID dan izin pengelolaan sub-akun.
Parameter:
name(wajib): Nama tampilan untuk sub-akun baru
list-inbound-folders
Mencantumkan semua folder masuk dalam akun. Mengembalikan ringkasan terformat.
Parameter:
- Tidak ada parameter yang diperlukan
get-inbound-folder
Mendapatkan satu folder masuk berdasarkan ID. Mengembalikan catatan folder lengkap sebagai JSON.
Parameter:
folder_id(wajib): ID folder masuk
create-inbound-folder
Membuat folder masuk baru.
Parameter:
name(wajib): Nama folder
update-inbound-folder
Mengganti nama folder masuk.
Parameter:
folder_id(wajib): ID folder masukname(wajib): Nama folder baru
delete-inbound-folder
Menghapus folder masuk secara permanen beserta semua kotak masuknya.
Parameter:
folder_id(wajib): ID folder masuk
list-inbound-inboxes
Mencantumkan semua kotak masuk dalam folder masuk. Mengembalikan ringkasan terformat.
Parameter:
folder_id(wajib): ID folder masuk
get-inbound-inbox
Mendapatkan satu kotak masuk berdasarkan ID. Mengembalikan catatan kotak masuk lengkap sebagai JSON.
Parameter:
folder_id(wajib): ID folder masukinbox_id(wajib): ID kotak masuk
create-inbound-inbox
Membuat kotak masuk baru dalam sebuah folder.
Parameter:
folder_id(wajib): ID folder masukname(wajib): Nama kotak masukdomain_id(opsional): Lampirkan ke domain pengiriman kustom (kotak masuk catch-all). Kosongkan untuk kotak masuk yang dihosting Mailtrap
update-inbound-inbox
Mengganti nama kotak masuk.
Parameter:
folder_id(wajib): ID folder masukinbox_id(wajib): ID kotak masukname(wajib): Nama kotak masuk baru
delete-inbound-inbox
Menghapus kotak masuk secara permanen.
Parameter:
folder_id(wajib): ID folder masukinbox_id(wajib): ID kotak masuk
list-inbound-messages
Mencantumkan pesan yang diterima dalam kotak masuk (dipaginasi dengan kursor). Mengembalikan ringkasan terformat dengan petunjuk halaman berikutnya saat ada hasil lainnya.
Parameter:
inbox_id(wajib): ID kotak masuklast_id(opsional): Kursor paginasi darilast_idrespons sebelumnya
get-inbound-message
Mendapatkan satu pesan masuk beserta isi lengkap dan URL unduhan lampiran. Mengembalikan catatan pesan lengkap sebagai JSON.
Parameter:
inbox_id(wajib): ID kotak masukmessage_id(wajib): ID pesan
delete-inbound-message
Menghapus pesan masuk secara permanen.
Parameter:
inbox_id(wajib): ID kotak masukmessage_id(wajib): ID pesan
reply-to-inbound-message
Membalas pesan masuk (dikirim ke pengirim asli). Mengirim email sungguhan. Alamat menerima string email polos atau { email, name? }.
Parameter:
inbox_id(wajib): ID kotak masukmessage_id(wajib): ID pesan yang akan dibalastext/html(setidaknya satu disarankan): Isi balasanfrom(opsional): Pengirim. Ditolak untuk kotak masuk yang dihosting Mailtrap; wajib untuk kotak masuk domain kustomcc/bcc/reply_to(opsional): Alamat tambahancategory(opsional): Kategori pesanattachments(opsional): Array dari{ content (base64), filename, type?, disposition?, content_id? }headers/custom_variables(opsional): Objek berisi nilai string
reply-all-to-inbound-message
Membalas pesan masuk dan menyalin penerima lain dari pesan asli. Mengirim email sungguhan. Parameter sama dengan reply-to-inbound-message.
Parameter:
inbox_id(wajib): ID kotak masukmessage_id(wajib): ID pesan yang akan dibalas- Ditambah kolom pengiriman opsional yang sama seperti
reply-to-inbound-message
forward-inbound-message
Meneruskan pesan masuk ke penerima baru. Mengirim email sungguhan.
Parameter:
inbox_id(wajib): ID kotak masukmessage_id(wajib): ID pesan yang akan diteruskanto(wajib): Setidaknya satu penerima (string email polos atau{ email, name? }, atau sebuah array)- Ditambah kolom pengiriman opsional yang sama seperti
reply-to-inbound-message
list-inbound-threads
Mencantumkan utas percakapan dalam kotak masuk (dipaginasi dengan kursor). Mengembalikan ringkasan terformat dengan petunjuk halaman berikutnya saat ada hasil lainnya.
Parameter:
inbox_id(wajib): ID kotak masuklast_id(opsional): Kursor paginasi darilast_idrespons sebelumnya
get-inbound-thread
Mendapatkan satu utas masuk dengan pesan-pesannya yang disematkan (terlama terlebih dahulu). Mengembalikan catatan utas lengkap sebagai JSON.
Parameter:
inbox_id(wajib): ID kotak masukthread_id(wajib): ID utas
delete-inbound-thread
Menghapus utas masuk secara permanen.
Parameter:
inbox_id(wajib): ID kotak masukthread_id(wajib): ID utas
Pengembangan
- Klon repositori:
git clone https://github.com/mailtrap/mailtrap-mcp.git
cd mailtrap-mcp
- Instal dependensi:
npm install
Konfigurasi dengan Claude Desktop atau Cursor
[!TIP] Lihat lokasi file konfigurasi di bagian Setup.
Tambahkan konfigurasi berikut:
{
"mcpServers": {
"mailtrap": {
"command": "node",
"args": ["/path/to/mailtrap-mcp/dist/index.js"],
"env": {
"MAILTRAP_API_TOKEN": "your_mailtrap_api_token",
"DEFAULT_FROM_EMAIL": "your_sender@example.com",
"MAILTRAP_ACCOUNT_ID": "your_account_id",
"MAILTRAP_TEST_INBOX_ID": "your_test_inbox_id"
}
}
}
}
Jika Anda menggunakan asdf untuk mengelola Node.js, gunakan jalur absolut ke executable:
(contoh untuk 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": "your_sender@example.com",
"MAILTRAP_ACCOUNT_ID": "your_account_id",
"MAILTRAP_TEST_INBOX_ID": "your_test_inbox_id"
}
}
}
}
VS Code
[!TIP] Lihat lokasi file konfigurasi di bagian Setup.
{
"mcp": {
"servers": {
"mailtrap": {
"command": "node",
"args": ["/path/to/mailtrap-mcp/dist/index.js"],
"env": {
"MAILTRAP_API_TOKEN": "your_mailtrap_api_token",
"DEFAULT_FROM_EMAIL": "your_sender@example.com",
"MAILTRAP_ACCOUNT_ID": "your_account_id",
"MAILTRAP_TEST_INBOX_ID": "your_test_inbox_id"
}
}
}
}
}
Pengujian
Menjalankan alat terhadap Mailtrap sungguhan
Ada dua cara untuk menguji alat secara end-to-end terhadap akun Mailtrap sungguhan: UI browser MCP Inspector untuk eksplorasi interaktif, atau mode CLI-nya untuk panggilan sekali jalan dari shell.
Keduanya memerlukan bundle yang dibangun terlebih dahulu:
npm run build
dan MAILTRAP_API_TOKEN + MAILTRAP_ACCOUNT_ID diekspor di shell Anda (skrip mcp:cli meneruskan keduanya ke server yang dijalankan).
UI Browser
npm run dev
Inspector mencetak URL seperti http://localhost:6274. Buka URL tersebut, alihkan ke tab Tools, pilih alat (mis. get-template), isi parameter sebagai JSON, lalu tekan Run. Respons Mailtrap muncul di panel bawah.
CLI
Untuk panggilan sekali jalan tanpa UI, gunakan npm run mcp:cli. Teruskan flag CLI Inspector setelah -- agar npm meneruskannya apa adanya:
# 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=devops@example.com
Menjalankan Server MCPB
# Run the MCPB server directly
node dist/mcpb-server.js
# Or use the provided binary
mailtrap-mcpb-server
[!TIP] Untuk pengembangan dengan MCP Inspector:
npm run dev:mcpb
Penanganan Kesalahan
Server ini menggunakan penanganan kesalahan terstruktur yang selaras dengan konvensi MCP:
VALIDATION_ERROR: Kegagalan validasi inputCONFIGURATION_ERROR: Konfigurasi hilang atau tidak validEXECUTION_ERROR: Kesalahan eksekusi runtimeTIMEOUT: Waktu operasi habis (default 30 detik)
Kesalahan menyertakan pesan yang dapat ditindaklanjuti dan dicatat dalam bentuk terstruktur.
Keamanan
- Input divalidasi melalui skema Zod
- Variabel lingkungan ditangani dengan aman
- Perlindungan waktu habis pada operasi (30 detik)
- Detail sensitif dibersihkan pada keluaran kesalahan
Pencatatan Log
Log JSON terstruktur dengan level: INFO, WARN, ERROR, DEBUG.
Aktifkan pencatatan log debug dengan mengatur DEBUG=true.
# Example: enable debug logging
DEBUG=true node dist/mcpb-server.js
Penting: Server menulis log ke stderr sehingga stdout tetap dicadangkan untuk frame JSON-RPC. Ini mencegah host mengalami kesalahan penguraian JSON akibat log yang tercampur.
Contoh analisis log menggunakan 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")'
Pemecahan Masalah
Masalah umum:
- API Token hilang: pastikan
MAILTRAP_API_TOKENdiatur - Sandbox tidak berfungsi: berikan
test_inbox_iddalam panggilan alat atau atur envMAILTRAP_TEST_INBOX_ID - Kesalahan waktu habis: periksa konektivitas jaringan dan status API Mailtrap
- Kesalahan validasi: pastikan semua kolom wajib diisi
Kontribusi
Laporan bug dan pull request dipersilakan di GitHub. Proyek ini dimaksudkan sebagai ruang kolaborasi yang aman dan ramah, dan kontributor diharapkan mematuhi kode etik.
Lisensi
Paket ini tersedia sebagai sumber terbuka berdasarkan ketentuan Lisensi MIT.
Kode Etik
Semua orang yang berinteraksi dalam codebase, pelacak masalah, ruang obrolan, dan milis proyek Mailtrap diharapkan mengikuti kode etik.