Mailtrap MCP Server

resmi

Mailtrap Email API ile entegre olur.

Dokümantasyon

TypeScript test NPM

MCP Mailtrap Sunucusu

Mailtrap üzerinden sandbox ortamında e-posta gönderme ve test etme araçları sağlayan bir MCP sunucusu.

Ön Koşullar

Bu MCP sunucusunu kullanmadan önce şunları yapmanız gerekir:

  1. Bir Mailtrap hesabı oluşturun
  2. Alan adınızı doğrulayın
  3. API anahtarınızı Mailtrap API ayarlarından alın
  4. Hesap Kimliğinizi Mailtrap hesap yönetiminden alın

Gerekli Ortam Değişkenleri:

  • MAILTRAP_API_TOKEN - Tüm işlevler için gereklidir
  • MAILTRAP_ACCOUNT_ID - Şablonlar, istatistikler, e-posta günlükleri, sandbox listeleme/gösterme ve gönderim alan adları için gereklidir. Yalnızca send-email ve send-sandbox-email için isteğe bağlıdır.

İsteğe Bağlı (araç parametreleri olarak da iletilebilir):

  • DEFAULT_FROM_EMAIL - send-email veya send-sandbox-email'e from sağlanmadığında varsayılan gönderici e-postası. from parametresi aracılığıyla çağrı başına gönderici değiştirmeyi sağlar.
  • MAILTRAP_TEST_INBOX_ID - test_inbox_id sağlanmadığında sandbox araçları için varsayılan test gelen kutusu kimliği. test_inbox_id parametresi aracılığıyla çağrı başına gelen kutuları arasında geçiş yapmayı sağlar.
  • MAILTRAP_SANDBOX_ID - sandbox_id sağlanmadığında sandbox araçları için varsayılan sandbox kimliği. sandbox_id parametresi aracılığıyla çağrı başına sandbox'lar arasında geçiş yapmayı sağlar.
  • MAILTRAP_ORGANIZATION_ID - Organizasyon araçları için gereklidir (list-sub-accounts, create-sub-account).
  • MAILTRAP_ORGANIZATION_API_TOKEN - Organizasyon kapsamlı API anahtarı. Organizasyon araçları için gereklidir (MAILTRAP_API_TOKEN'ten ayrıdır).

Hızlı Kurulum

Install in Cursor

Install with Node in VS Code

Smithery CLI

Smithery, tüm yapay zeka istemcileriyle çalışan MCP sunucuları için bir kayıt defteri yükleyicisi ve yöneticisidir.

npx @smithery/cli install mailtrap

Smithery, istemci yapılandırmasını otomatik olarak yönetir ve etkileşimli bir kurulum süreci sunar. MCP sunucularını yerel olarak kullanmaya başlamanın en kolay yoludur.

Kurulum

Claude Desktop

Mailtrap sunucusunu yüklemek için MCPB'yi kullanın. Bu dosyaları Sürümler bölümünde bulabilirsiniz.
.MCPB dosyasını indirin ve açın. Claude Desktop yüklüyse, dosyayı açacak ve yapılandırmayı önerecektir.

Claude Desktop veya Cursor

Aşağıdaki yapılandırmayı ekleyin:

{
  "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"
      }
    }
  }
}

Node.js'i yönetmek için asdf kullanıyorsanız, çalıştırılabilir dosyanın mutlak yolunu kullanmalısınız (Mac için örnek)

{
  "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"
      }
    }
  }
}

Claude Desktop yapılandırma dosyası konumu

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

Windows: %APPDATA%\Claude\claude_desktop_config.json

Cursor yapılandırma dosyası konumu

Mac: ~/.cursor/mcp.json

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

VS Code

Yapılandırmayı manuel olarak değiştirme

Komut Paletinde çalıştırın: Preferences: Open User Settings (JSON)

Ardından, ayarlar dosyasına aşağıdaki yapılandırmayı ekleyin:

{
  "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"
        }
      }
    }
  }
}

[!İPUCU] "env" bölümünü değiştirdikten sonra MCP sunucunuzu yeniden başlatmayı unutmayın.

MCP Bundle (MCPB)

MCP Bundle'larını destekleyen ana bilgisayarlara kolay kurulum için bir .mcpb bundle dosyası dağıtabilirsiniz.

# 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

Bu, manifest.json deposunu ve dist/ içindeki derlenmiş yapıtları kullanarak mailtrap-mcp.mcpb oluşturur.

Kullanım

Yapılandırıldıktan sonra, ajandan e-posta göndermesini ve şablonları yönetmesini isteyebilirsiniz, örneğin:

E-posta Gönderme İşlemleri:

  • "[email protected] adresine 'Yarınki Toplantı' konulu ve yaklaşan toplantımız hakkında dostça bir hatırlatma içeren bir e-posta gönder."
  • "[email protected] adresine proje güncellemesi hakkında e-posta gönder ve [email protected] adresindeki ekibi CC'ye ekle"
  • "Hoş geldin şablonunu (uuid b81aabcd-1a1e-41cf-91b6-eca0254b3d96) { name: 'Alex' } değişkenleriyle [email protected] adresine gönder"
  • "Hoş geldin e-postamızın nasıl göründüğünü önizlemek için [email protected] adresine 'Test Şablonu' konulu bir sandbox e-postası gönder"

E-posta Günlükleri (teslimat hata ayıklama):

  • "Son gönderilen e-posta günlüklerimi listele"
  • "[email protected] adresine gönderilen e-postaların e-posta günlüklerini göster"
  • "Teslimat durumunu kontrol etmek için abc-123-uuid kimlikli e-posta günlük mesajını getir"

Gönderim İstatistikleri:

  • "Ocak 2025 için gönderim istatistiklerini getir"
  • "Geçen ay için alan adına göre ayrılmış teslimat oranlarını göster"
  • "2025-01-01 ile 2025-01-31 arasındaki kategoriye göre e-posta istatistiklerim nelerdir?"

Sandbox İşlemleri:

  • "Sandbox gelen kutumdaki tüm mesajları getir"
  • "Sandbox mesajlarının ilk sayfasını göster"
  • "Sandbox gelen kutumda 'test' içeren mesajları ara"
  • "5159037506 kimlikli sandbox mesajının ayrıntılarını göster"

Şablon İşlemleri:

  • "Mailtrap hesabımdaki tüm e-posta şablonlarını listele"
  • "'Hoş Geldin E-postası' adında, 'Platformumuza hoş geldiniz!' konulu yeni bir e-posta şablonu oluştur"
  • "12345 kimlikli şablonu, konuyu 'Güncellenmiş Hoş Geldin Mesajı' olarak değiştirecek şekilde güncelle"
  • "67890 kimlikli şablonu sil"

Gönderim Alan Adları:

  • "Gönderim alan adlarımı listele"
  • "3938 kimlikli gönderim alan adını getir"
  • "example.com için bir gönderim alan adı oluştur"
  • "3938 gönderim alan adını sil"
  • "DNS kurulum talimatlarıyla birlikte 3938 gönderim alan adını getir"

Mevcut Araçlar

send-email

Mailtrap üzerinden bir işlem e-postası gönderir. Birbirini dışlayan iki modu destekler — satır içi içerik (subject + text/html) veya şablon tabanlı (template_uuid).

Parametreler:

  • from (isteğe bağlı): Bir e-posta dizesi veya { email, name? } olarak gönderici. Sağlanmazsa, DEFAULT_FROM_EMAIL kullanılır.
  • to (isteğe bağlı): Alıcı(lar) — tek bir e-posta/{ email, name? } veya bir dizi. cc veya bcc sağlanmışsa isteğe bağlıdır; to / cc / bcc'den en az biri bir alıcı içermelidir.
  • cc (isteğe bağlı): CC alıcıları dizisi (her biri e-posta dizeleri veya { email, name? }).
  • bcc (isteğe bağlı): BCC alıcıları dizisi (her biri e-posta dizeleri veya { email, name? }).
  • subject (koşullu): E-posta konu satırı. Satır içi gönderimler için gereklidir; template_uuid ayarlandığında atlanmalıdır.
  • text (koşullu): E-posta gövde metni. Satır içi gönderimler için (html ile birlikte veya onun yerine) gereklidir; template_uuid ayarlandığında atlanmalıdır.
  • html (koşullu): E-posta gövdesinin HTML sürümü. Satır içi gönderimler için (text ile birlikte veya onun yerine) gereklidir; template_uuid ayarlandığında atlanmalıdır.
  • category (isteğe bağlı): İzleme ve analitik için e-posta kategorisi. template_uuid ayarlandığında atlanmalıdır.
  • template_uuid (isteğe bağlı): Satır içi içerik yerine bir Mailtrap e-posta şablonu kullanın. Ayarlandığında, subject / text / html / category atlanmalıdır (Mailtrap API'sine göre).
  • template_variables (isteğe bağlı): template_uuid tarafından başvurulan şablona yerleştirilen değişkenler nesnesi. Yalnızca template_uuid ile birlikte kullanılabilir.

batch-send-transactional-email

Tek bir Mailtrap API çağrısında bir grup işlem e-postası gönderir (varsayılan gönderim akışı). Paylaşılan alanlar base üzerinde; alıcı başına geçersiz kılmalar requests[] içinde yer alır. Her istek, to, cc veya bcc aracılığıyla en az bir alıcı içermelidir. send-email ile aynı satır içi-şablon karşılıklı dışlama — temel ile her istek birleştirildikten sonra kontrol edilir.

Parametreler:

  • base (isteğe bağlı): Grup genelinde paylaşılan alanları içeren nesne.
    • from (isteğe bağlı): Bir e-posta dizesi veya { email, name? } olarak gönderici. DEFAULT_FROM_EMAIL'ye geri döner.
    • reply_to (isteğe bağlı): Yanıtlama adresi.
    • subject / text / html / category (isteğe bağlı, satır içi mod): Her istek için varsayılan içerik.
    • template_uuid / template_variables (isteğe bağlı, şablon modu): Varsayılan şablon + değişkenler. Satır içi alanlarla karşılıklı olarak dışlayıcıdır.
    • custom_variables (isteğe bağlı): Varsayılan özel değişkenler (dize değerli).
    • headers (isteğe bağlı): Varsayılan özel başlıklar.
  • requests (gerekli): Alıcı başına mesajların boş olmayan dizisi. Her giriş şunları içerir:
    • to (isteğe bağlı): Alıcı(lar) — dize, { email, name? } veya bir dizi. cc veya bcc sağlanmışsa isteğe bağlıdır; to / cc / bcc'den en az biri bir alıcı içermelidir.
    • cc, bcc, reply_to (isteğe bağlı).
    • Satır içi (subject/text/html/category) veya şablon (template_uuid/template_variables) geçersiz kılmaları; atlanan herhangi bir alan, eşleşen base değerine geri döner.
    • custom_variables, headers (isteğe bağlı).

batch-send-bulk-email

Mailtrap'in toplu akış API'si üzerinden bir grup toplu e-posta gönderir. batch-send-transactional-email ile aynı base + requests[] şekline, doğrulamaya ve satır içi-şablon kurallarına sahiptir — tek fark, bu aracın çağrıyı işlem uç noktası yerine toplu uç nokta üzerinden yönlendirmesidir. Yukarıdaki parametrelere bakın.

list-email-logs

İsteğe bağlı sayfalama ve filtrelerle gönderilen e-posta günlüklerini (teslimat geçmişi) listeler. IDE'den teslimat sorunlarını ayıklamak için kullanın.

Parametreler:

  • search_after (isteğe bağlı): Önceki yanıtın next_page_cursor değerinden sayfalama imleci
  • sent_after (isteğe bağlı): ISO 8601 tarih/saat; yalnızca bu saatten sonra gönderilen günlükler
  • sent_before (isteğe bağlı): ISO 8601 tarih/saat; yalnızca bu saatten önce gönderilen günlükler
  • from_email (isteğe bağlı): Gönderici e-postasına göre filtrele; from_operator ile kullanın (varsayılan: ci_equal)
  • to_email (isteğe bağlı): Alıcı e-postasına göre filtrele; to_operator ile kullanın (varsayılan: ci_equal)
  • status (isteğe bağlı): Teslimat durumuna göre filtrele: delivered, not_delivered, enqueued, opted_out; status_operator ile kullanın (varsayılan: equal)
  • subject (isteğe bağlı): E-posta konusuna göre filtrele; subject_operator ile kullanın (varsayılan: ci_contain). Konunun varlığına göre filtrelemek için subject_operator: empty/not_empty kullanın.
  • sending_domain_id (isteğe bağlı): Gönderim alan adı kimliğine (sayı) göre filtrele; sending_domain_id_operator ile kullanın (varsayılan: equal)
  • sending_stream (isteğe bağlı): Akışa göre filtrele: transactional veya bulk; sending_stream_operator ile kullanın (varsayılan: equal)
  • events (isteğe bağlı): Olay tür(ler)ine göre filtrele: delivery, open, click, bounce, spam, unsubscribe, soft_bounce, reject, suspension; events_operator ile kullanın (include_event / not_include_event)
  • clicks_count / opens_count (isteğe bağlı): Tıklama/açılma sayısına göre filtrele; *_operator ile kullanın: equal, greater_than, less_than
  • client_ip / sending_ip (isteğe bağlı): IP'ye göre filtrele; *_operator ile kullanın: equal, not_equal, contain, not_contain
  • email_service_provider_response (isteğe bağlı): Sağlayıcı yanıt metnine göre filtrele; *_operator ile kullanın (ci_contain, vb.)
  • email_service_provider (isteğe bağlı): Sağlayıcıya göre filtrele (tam); *_operator ile kullanın: equal, not_equal
  • recipient_mx (isteğe bağlı): Alıcı MX'e göre filtrele; recipient_mx_operator ile kullanın (ci_contain, vb.)
  • category (isteğe bağlı): E-posta kategorisine göre filtrele; category_operator ile kullanın: equal, not_equal

Tüm parametreler isteğe bağlıdır.

get-email-log-message

Kimliğe (UUID) göre tek bir e-posta günlük mesajı getirir: okunabilir bir özet (kimden, kime, konu, gönderim zamanı, durum, kategori, akış, etkileşim, teslimat bağlamı), ardından ayrıntılı olay geçmişi. İsteğe bağlı olarak, include_content: true ile, Mailtrap bir ham mesaj URL'si sunduğunda mesaj gövdesini (HTML ve düz metin) de yükleyip gösterebilirsiniz.

Parametreler:

  • message_id (gerekli): E-posta günlük mesajının UUID'si (gönderim yanıtından veya list-email-logs'tan). Mesaj kimliklerini bulmak için list-email-logs kullanın.
  • include_content (isteğe bağlı): true olduğunda, ham EML'yi getirir (raw_message_url mevcutsa) ve show-sandbox-email-message'a benzer şekilde ayrıştırılmış HTML ve düz metin gövde bölümlerini ekler.

get-sending-stats

Bir tarih aralığı için e-posta gönderme istatistiklerini (teslimat, geri dönme, açılma, tıklanma, spam oranları) getirir. İsteğe bağlı olarak alan adı, kategori, e-posta servis sağlayıcısı veya tarihe göre döküm alın. Düzenleyiciden ayrılmadan teslimat oranlarını kontrol edin.

Parametreler:

  • start_date (zorunlu): İstatistik aralığı için başlangıç tarihi (YYYY-AA-GG)
  • end_date (zorunlu): İstatistik aralığı için bitiş tarihi (YYYY-AA-GG)
  • breakdown (isteğe bağlı): İstatistiklerin nasıl gruplandırılacağı: aggregated (varsayılan), by_domain, by_category, by_email_service_provider veya by_date
  • sending_domain_ids (isteğe bağlı): Sonuçları bu gönderim alanı kimlikleriyle sınırla (tamsayı dizisi)
  • sending_streams (isteğe bağlı): transactional ve/veya bulk ile sınırla (dize dizisi)
  • categories (isteğe bağlı): Bu e-posta kategorileriyle sınırla (dize dizisi)
  • email_service_providers (isteğe bağlı): Bu sağlayıcılarla sınırla, örn. Google, Yahoo, Outlook (dize dizisi)

create-template

Mailtrap hesabınızda yeni bir e-posta şablonu oluşturur.

Parametreler:

  • name (zorunlu): Şablonun adı
  • subject (zorunlu): E-posta konu satırı
  • html (veya text zorunludur): Şablonun HTML içeriği
  • text (veya html zorunludur): Şablonun düz metin sürümü
  • category (isteğe bağlı): Şablon kategorisi (varsayılan "General")

list-templates

Mailtrap hesabınızdaki tüm e-posta şablonlarını listeler.

Parametreler:

  • Parametre gerekmez

get-template

Kimliğe göre tek bir e-posta şablonunu, konu, kategori ve HTML/metin gövdesi dahil olmak üzere getirir.

Parametreler:

  • template_id (zorunlu): Getirilecek şablonun kimliği

update-template

Mevcut bir e-posta şablonunu günceller.

Parametreler:

  • template_id (zorunlu): Güncellenecek şablonun kimliği
  • name (isteğe bağlı): Şablon için yeni ad
  • subject (isteğe bağlı): Yeni e-posta konu satırı
  • html (isteğe bağlı): Şablonun yeni HTML içeriği
  • text (isteğe bağlı): Şablonun yeni düz metin sürümü
  • category (isteğe bağlı): Şablon için yeni kategori

[!NOTE] Bir güncelleme gerçekleştirmek için update-template çağrılırken en az bir güncellenebilir alan (ad, konu, html, metin veya kategori) sağlanmalıdır.

delete-template

Mevcut bir e-posta şablonunu siler.

Parametreler:

  • template_id (zorunlu): Silinecek şablonun kimliği

send-sandbox-email

Geliştirme ve test amaçları için Mailtrap test gelen kutunuza bir e-posta gönderir. Gerçek alıcılara e-posta göndermeden şablonları test etmek için idealdir. send-email ile aynı iki modu destekler — satır içi içerik veya şablon tabanlı (template_uuid).

Parametreler:

  • test_inbox_id (isteğe bağlı): Mailtrap test gelen kutusu kimliği. MAILTRAP_TEST_INBOX_ID ayarlanmadığı sürece zorunludur; belirli bir gelen kutusunu hedeflemek için çağrı başına iletin.
  • from (isteğe bağlı): Bir e-posta dizesi veya { email, name? } olarak gönderici. Sağlanmazsa DEFAULT_FROM_EMAIL kullanılır.
  • to (isteğe bağlı): Virgülle ayrılmış dize veya e-posta dizeleri / { email, name? } nesneleri dizisi olarak alıcılar. cc veya bcc sağlanmışsa isteğe bağlıdır; to / cc / bcc arasından en az biri bir alıcı içermelidir.
  • cc (isteğe bağlı): CC alıcıları dizisi (her biri e-posta dizesi veya { email, name? }).
  • bcc (isteğe bağlı): BCC alıcıları dizisi (her biri e-posta dizesi veya { email, name? }).
  • subject (koşullu): E-posta konu satırı. Satır içi gönderimler için zorunludur; template_uuid ayarlandığında atlanmalıdır.
  • text (koşullu): E-posta gövde metni. Satır içi gönderimler için (html ile birlikte veya onun yerine) zorunludur; template_uuid ayarlandığında atlanmalıdır.
  • html (koşullu): E-posta gövdesinin HTML sürümü. Satır içi gönderimler için (text ile birlikte veya onun yerine) zorunludur; template_uuid ayarlandığında atlanmalıdır.
  • category (isteğe bağlı): İzleme için e-posta kategorisi. template_uuid ayarlandığında atlanmalıdır.
  • template_uuid (isteğe bağlı): Satır içi içerik yerine bir Mailtrap e-posta şablonu kullan. Ayarlandığında subject / text / html / category atlanmalıdır.
  • template_variables (isteğe bağlı): template_uuid tarafından başvurulan şablona yerleştirilen değişkenler nesnesi. Yalnızca template_uuid ile birlikte kullanılabilir.

[!NOTE] Sandbox araçları için, araç çağrısında test_inbox_id sağlayın veya MAILTRAP_TEST_INBOX_ID ortam değişkenini ayarlayın. test_inbox_id ileterek çağrı başına gelen kutuları arasında geçiş yapabilirsiniz.

get-sandbox-messages

Mailtrap test gelen kutunuzdaki mesajların bir listesini alır. Test sırasında sandbox'ınıza hangi e-postaların geldiğini kontrol etmek için kullanışlıdır.

Parametreler:

  • page (isteğe bağlı): Sayfalama için sayfa numarası (minimum: 1)
  • last_id (isteğe bağlı): Son mesaj kimliğini kullanarak sayfalama. Belirtilen mesaj kimliğinden sonraki mesajları döndürür (minimum: 1)
  • search (isteğe bağlı): Mesajları filtrelemek için arama sorgusu

[!NOTE] Tüm parametreler isteğe bağlıdır. Hiçbiri sağlanmazsa, gelen kutusundaki mesajların ilk sayfası döndürülür. Geleneksel sayfalama için page, imleç tabanlı sayfalama için last_id veya mesajları içeriğe göre filtrelemek için search kullanın.

show-sandbox-email-message

Mailtrap test gelen kutunuzdaki belirli bir e-posta mesajının HTML ve metin gövde içeriği dahil ayrıntılı bilgilerini ve içeriğini gösterir.

Parametreler:

  • message_id (zorunlu): Alınacak sandbox e-posta mesajının kimliği

[!NOTE] Önce mesajların listesini ve kimliklerini almak için get-sandbox-messages kullanın, ardından belirli bir mesajın tam içeriğini görüntülemek için bu aracı kullanın.

get-sandbox-project

Kimliğe göre bir sandbox projesini, gelen kutuları ve e-posta sayıları dahil olmak üzere getirir.

Parametreler:

  • project_id (zorunlu): Getirilecek projenin kimliği

update-sandbox-project

Mevcut bir sandbox projesini yeniden adlandırır.

Parametreler:

  • project_id (zorunlu): Güncellenecek projenin kimliği
  • name (zorunlu): Proje için yeni ad (2–100 karakter)

list-sandboxes

API belirtecinin erişebildiği tüm projelerdeki her sandbox'ı listeler.

Parametreler:

  • Parametre gerekmez

mark-sandbox-as-read

Bir sandbox'taki tüm mesajları okundu olarak işaretler.

Parametreler:

  • sandbox_id (zorunlu): İşlem yapılacak sandbox'ın kimliği

reset-sandbox-credentials

Bir sandbox için SMTP kimlik bilgilerini sıfırlar. Yeni kullanıcı adı/parolayı döndürür.

Parametreler:

  • sandbox_id (zorunlu): İşlem yapılacak sandbox'ın kimliği

enable-sandbox-email-address

Bir sandbox için e-posta ile alma adresini etkinleştirir (SMTP yoluyla sandbox'a mesaj ileten Mailtrap adresini açar).

Parametreler:

  • sandbox_id (zorunlu): İşlem yapılacak sandbox'ın kimliği

reset-sandbox-email-address

Bir sandbox için yeni bir e-posta ile alma adresi oluşturur.

Parametreler:

  • sandbox_id (zorunlu): İşlem yapılacak sandbox'ın kimliği

forward-sandbox-message

Bir sandbox mesajını harici bir e-posta adresine iletir. Aylık yönlendirme kotanızdan düşer.

Parametreler:

  • sandbox_id (isteğe bağlı): Sandbox kimliği. MAILTRAP_SANDBOX_ID'e geri döner.
  • message_id (zorunlu): İletilecek sandbox mesajının kimliği
  • email (zorunlu): Mesajın iletileceği e-posta adresi

update-sandbox-message

Bir sandbox mesajını okundu veya okunmadı olarak işaretler.

Parametreler:

  • sandbox_id (isteğe bağlı): Sandbox kimliği. MAILTRAP_SANDBOX_ID'a geri döner.
  • message_id (zorunlu): Güncellenecek sandbox mesajının kimliği
  • is_read (zorunlu): true okundu olarak işaretler, false okunmadı olarak işaretler

delete-sandbox-message

Tek bir sandbox mesajını siler.

Parametreler:

  • sandbox_id (isteğe bağlı): Sandbox kimliği. MAILTRAP_SANDBOX_ID'e geri döner.
  • message_id (zorunlu): Silinecek sandbox mesajının kimliği

get-sandbox-message-spam-score

Bir sandbox mesajı için SpamAssassin spam raporunu alır (puan, kurallar, tam rapor). show-sandbox-email-message üzerindeki include_spam_report: true'ye bağımsız alternatif.

Parametreler:

  • sandbox_id (isteğe bağlı): Sandbox kimliği. MAILTRAP_SANDBOX_ID'e geri döner.
  • message_id (zorunlu): Sandbox mesajının kimliği

get-sandbox-message-html-analysis

Bir sandbox mesajı için HTML analiz raporunu alır (istemci uyumluluk puanları, sorunlu öğeler). show-sandbox-email-message üzerindeki include_html_analysis: true'ye bağımsız alternatif.

Parametreler:

  • sandbox_id (isteğe bağlı): Sandbox kimliği. MAILTRAP_SANDBOX_ID'e geri döner.
  • message_id (zorunlu): Sandbox mesajının kimliği

get-sandbox-message-headers

Bir sandbox mesajı için ayrıştırılmış posta başlıklarını alır.

Parametreler:

  • sandbox_id (isteğe bağlı): Sandbox kimliği. MAILTRAP_SANDBOX_ID'e geri döner.
  • message_id (zorunlu): Sandbox mesajının kimliği

get-sandbox-message-html

Bir sandbox mesajının işlenmiş HTML gövdesini alır.

Parametreler:

  • sandbox_id (isteğe bağlı): Sandbox kimliği. MAILTRAP_SANDBOX_ID'e geri döner.
  • message_id (zorunlu): Sandbox mesajının kimliği

get-sandbox-message-text

Bir sandbox mesajının düz metin gövdesini alır.

Parametreler:

  • sandbox_id (isteğe bağlı): Sandbox kimliği. MAILTRAP_SANDBOX_ID'e geri döner.
  • message_id (zorunlu): Sandbox mesajının kimliği

get-sandbox-message-raw

Bir sandbox mesajı için ham, MIME biçimli mesajı (başlıklar + gövde) alır.

Parametreler:

  • sandbox_id (isteğe bağlı): Sandbox kimliği. MAILTRAP_SANDBOX_ID'ye geri döner.
  • message_id (zorunlu): Sandbox mesajının kimliği

get-sandbox-message-eml

Bir EML dosya yükü olarak işlenmiş mesajı alır (bir bilete eklemek veya başka bir posta istemcisine aktarmak için uygundur).

Parametreler:

  • sandbox_id (isteğe bağlı): Sandbox kimliği. MAILTRAP_SANDBOX_ID'e geri döner.
  • message_id (zorunlu): Sandbox mesajının kimliği

get-sandbox-message-html-source

Bir sandbox mesajının işlenmemiş HTML kaynağını alır (CID-bağlantı yeniden yazmaları gibi Mailtrap tarafı dönüşümlerinden önceki HTML).

Parametreler:

  • sandbox_id (isteğe bağlı): Sandbox kimliği. MAILTRAP_SANDBOX_ID'e geri döner.
  • message_id (zorunlu): Sandbox mesajının kimliği

list-sandbox-attachments

Bir sandbox mesajındaki tüm ekleri listeler (dosya adı, içerik türü, boyut, indirme yolu).

Parametreler:

  • sandbox_id (isteğe bağlı): Sandbox kimliği. MAILTRAP_SANDBOX_ID'ya geri döner.
  • message_id (zorunlu): Sandbox mesajının kimliği

get-sandbox-attachment

Tek bir ek için meta verileri ve indirme URL'sini alır.

Parametreler:

  • sandbox_id (isteğe bağlı): Sandbox kimliği. MAILTRAP_SANDBOX_ID'a geri döner.
  • message_id (zorunlu): Eki içeren sandbox mesajının kimliği
  • attachment_id (zorunlu): Getirilecek ekin kimliği

list-sending-domains

Gönderim alanlarını ve DNS doğrulama durumlarını listeler.

Parametreler:

  • Parametre gerekmez

get-sending-domain

Kimliğe göre bir gönderim alanını ve doğrulama durumunu (DNS kayıtları dahil) getirir. include_setup_instructions'yi true olarak ayarlayarak isteğe bağlı olarak DNS kurulum talimatlarını dahil edin.

Parametreler:

  • sending_domain_id (zorunlu): Gönderim alanı kimliği
  • include_setup_instructions (isteğe bağlı): true ise, yanıta DNS kurulum talimatlarını ekle. Varsayılan: false

create-sending-domain

Yeni bir gönderim alanı oluşturur. Oluşturduktan sonra, alanı doğrulamak için DNS kayıtlarını ekleyin (kayıtları görmek için include_setup_instructions: true ile get-sending-domain kullanın).

Parametreler:

  • domain_name (zorunlu): Alan adı (örn. example.com)

delete-sending-domain

Bir gönderim alanını siler.

Parametreler:

  • sending_domain_id (zorunlu): Silinecek gönderim alanı kimliği

send-sending-domain-setup-instructions

Bir gönderim alanı için DNS kurulum talimatlarını belirli bir adrese e-postayla gönderir. DNS kayıtlarını bir DevOps ekip arkadaşına iletmek için kullanışlıdır.

Parametreler:

  • sending_domain_id (zorunlu): Gönderim alanı kimliği
  • email (zorunlu): DNS kurulum talimatlarının gönderileceği e-posta adresi

list-suppressions

Engellemeleri listeler veya arar (sert geri dönmeler, spam şikayetleri, abonelikten çıkmalar, manuel içe aktarmalar). Çağrı başına 1000 sonuca kadar döndürür.

Parametreler:

  • email (isteğe bağlı): E-posta filtresi. Yalnızca bu adresle eşleşen baskılamaları döndürür.

delete-suppression

Bir baskılamayı kimliğine göre silin. Mailtrap, tekrar baskılanmadığı sürece bu e-postaya teslimatı sürdürür.

Parametreler:

  • suppression_id (zorunlu): Silinecek baskılamanın kimliği

list-webhooks

Hesap için yapılandırılmış tüm web kancalarını listeleyin. Tam web kancası kayıtlarını JSON olarak döndürür.

Parametreler:

  • Parametre gerekmez

get-webhook

Kimliğe göre tek bir web kancası alın. Tam web kancası kaydını JSON olarak döndürür. Not: signing_secret burada döndürülmez — yalnızca create-webhook yanıtında kullanılabilir.

Parametreler:

  • webhook_id (zorunlu): Alınacak web kancasının kimliği

create-webhook

Bir web kancası oluşturun. Yanıt, web kancası yük imzalarını doğrulamak için bir signing_secret içerir — bu gizli anahtar yalnızca oluşturma sırasında döndürülür, bu yüzden şimdi saklayın. Kaybederseniz, web kancasını yeniden oluşturun.

Parametreler:

  • url (zorunlu): Mailtrap'in web kancası olaylarını POST edeceği URL
  • webhook_type (zorunlu): "email_sending" veya "audit_log"
  • active (isteğe bağlı, boolean): varsayılan true
  • payload_format (isteğe bağlı): "json" veya "jsonlines". Varsayılan "json"
  • sending_stream (isteğe bağlı, yalnızca email_sending): "transactional" veya "bulk"
  • event_types (isteğe bağlı, yalnızca email_sending): delivery, soft_bounce, bounce, suspension, unsubscribe, open, spam_complaint, click, reject dizisi
  • domain_id (isteğe bağlı, yalnızca email_sending): bu web kancasını kapsayacak gönderim alanı kimliği

update-webhook

Bir web kancasının değiştirilebilir alanlarını güncelleyin. webhook_type, sending_stream ve domain_id oluşturulduktan sonra değiştirilemez — bunları değiştirmeniz gerekirse web kancasını yeniden oluşturun.

Parametreler:

  • webhook_id (zorunlu): Güncellenecek web kancasının kimliği
  • url (isteğe bağlı): Yeni web kancası URL'si
  • active (isteğe bağlı, boolean): Web kancasını etkinleştir veya devre dışı bırak
  • payload_format (isteğe bağlı): "json" veya "jsonlines"
  • event_types (isteğe bağlı, yalnızca email_sending): delivery, soft_bounce, bounce, suspension, unsubscribe, open, spam_complaint, click, reject dizisi

delete-webhook

Bir web kancasını kimliğine göre kalıcı olarak silin. Silinen web kancası kaydını döndürür.

Parametreler:

  • webhook_id (zorunlu): Silinecek web kancasının kimliği

get-contact

Kimlik veya e-posta ile bir kişi alın. Tam kişi kaydını (liste üyelikleri, durum, özel alanlar) döndürür.

Parametreler:

  • contact_identifier (zorunlu): Kişi kimliği veya e-posta adresi

create-contact

Yeni bir kişi oluşturun.

Parametreler:

  • email (zorunlu): E-posta adresi
  • fields (isteğe bağlı): Birleştirme etiketine göre anahtarlanmış özel alan değerleri (örn. first_name). Dize, sayı veya boolean değerler
  • list_ids (isteğe bağlı): Bu kişinin abone edileceği kişi listelerinin kimlikleri
  • unsubscribed (isteğe bağlı, boolean): Kişiyi unsubscribed durumunda oluştur

update-contact

Kimlik veya e-posta ile tanımlanan mevcut bir kişiyi güncelleyin. list_ids kişinin tam üyelik kümesini değiştirir; list_ids_included/list_ids_excluded geri kalanı bozmadan ekler/çıkarır.

Parametreler:

  • contact_identifier (zorunlu): Kişi kimliği veya e-posta
  • email (isteğe bağlı): Yeni e-posta adresi
  • fields (isteğe bağlı): Birleştirme etiketine göre anahtarlanmış özel alan değerleri
  • list_ids (isteğe bağlı): Üyelik kümesini bu tam liste ile değiştir
  • list_ids_included (isteğe bağlı): Eklenecek liste kimlikleri (eklemeli)
  • list_ids_excluded (isteğe bağlı): Kaldırılacak liste kimlikleri
  • unsubscribed (isteğe bağlı, boolean): unsubscribed (true) veya subscribed (false) olarak ayarla

delete-contact

Bir kişiyi kimlik veya e-posta ile kalıcı olarak silin. API yanıt verdiğinde silinen kişi kaydını döndürür; aksi takdirde bir onay yükü döndürür.

Parametreler:

  • contact_identifier (zorunlu): Kişi kimliği veya e-posta

create-contact-event

Bir kişiye (kimlik veya e-posta ile) karşı bir kişi olayı kaydedin. Kişi listesi otomasyonlarını tetiklemek için kullanılır.

Parametreler:

  • contact_identifier (zorunlu): Kişi kimliği veya e-posta
  • name (zorunlu): Olay adı (otomasyon tetikleyicileriyle eşleşir)
  • params (zorunlu): İsteğe bağlı anahtar/değer çiftleri nesnesi. Değerler dize, sayı, boolean veya null olabilir

list-contact-lists

Hesap için tüm kişi listelerini listeleyin.

Parametreler:

  • Parametre gerekmez

get-contact-list

Kimliğe göre bir kişi listesi alın.

Parametreler:

  • list_id (zorunlu): Alınacak kişi listesinin kimliği

create-contact-list

Yeni bir kişi listesi oluşturun.

Parametreler:

  • name (zorunlu): Yeni liste için ad

update-contact-list

Mevcut bir kişi listesini yeniden adlandırın.

Parametreler:

  • list_id (zorunlu): Kişi listesinin kimliği
  • name (zorunlu): Liste için yeni ad

delete-contact-list

Bir kişi listesini kimliğine göre kalıcı olarak silin.

Parametreler:

  • list_id (zorunlu): Silinecek kişi listesinin kimliği

list-contact-fields

Hesap için tüm kişi alanı tanımlarını listeleyin.

Parametreler:

  • Parametre gerekmez

get-contact-field

Kimliğe göre bir kişi alanı tanımı alın.

Parametreler:

  • field_id (zorunlu): Kişi alanının kimliği

create-contact-field

Yeni bir kişi alanı tanımı oluşturun. merge_tag hesap içinde benzersiz olmalıdır ve şablon değişkenlerinde yer tutucu adı olarak kullanılır.

Parametreler:

  • name (zorunlu): Görünen ad (örn. "Ad")
  • merge_tag (zorunlu): Benzersiz yer tutucu adı (örn. first_name)
  • data_type (zorunlu): text, number, boolean, date seçeneklerinden biri

update-contact-field

Bir kişi alanı tanımını güncelleyin. name, merge_tag ve data_type alanlarının herhangi bir kombinasyonu değiştirilebilir.

Parametreler:

  • field_id (zorunlu): Kişi alanının kimliği
  • name (isteğe bağlı): Yeni görünen ad
  • merge_tag (isteğe bağlı): Yeni birleştirme etiketi (benzersiz kalmalıdır)
  • data_type (isteğe bağlı): text, number, boolean, date seçeneklerinden biri

delete-contact-field

Bir kişi alanı tanımını kimliğine göre kalıcı olarak silin.

Parametreler:

  • field_id (zorunlu): Silinecek kişi alanının kimliği

create-contact-import

Toplu kişi içe aktarımı. Bir içe aktarma işi kaydı döndürür; durumunu get-contact-import ile sorgulayın.

Parametreler:

  • contacts (zorunlu): Kişi girişleri dizisi. Her giriş şunları içermelidir:
    • email (zorunlu): Kişi e-posta adresi
    • fields (isteğe bağlı): Birleştirme etiketine göre anahtarlanmış özel alan değerleri (dize veya sayı değerler)
    • list_ids_included (isteğe bağlı): Kişinin ekleneceği liste kimlikleri
    • list_ids_excluded (isteğe bağlı): Kişinin kaldırılacağı liste kimlikleri

get-contact-import

Bir kişi içe aktarma işinin durumunu (oluşturuldu/başlatıldı/tamamlandı/başarısız) oluşturulan/güncellenen/limit aşımı sayılarıyla birlikte alın.

Parametreler:

  • import_id (zorunlu): Kişi içe aktarma işinin kimliği

create-contact-export

VE ile birleştirilmiş bir dizi filtreyle eşleşen kişileri dışa aktarın. Bir dışa aktarma işi kaydı döndürür; status durumu finished olduğunda indirme URL'sini almak için get-contact-export ile durumu sorgulayın.

Parametreler:

  • filters (zorunlu): Filtre nesneleri dizisi. Her biri şunları içerir:
    • name (zorunlu): Filtrelenecek alan (list_id, subscription_status, email vb.)
    • operator (zorunlu): equal, not_equal, contains, not_contains, is_empty, is_not_empty seçeneklerinden biri
    • value (zorunlu): Karşılaştırma değeri (dize, sayı, boolean veya dizi)

get-contact-export

Bir kişi dışa aktarma işinin durumunu alın. status durumu finished olduğunda, url alanı CSV indirme bağlantısını içerir.

Parametreler:

  • export_id (zorunlu): Kişi dışa aktarma işinin kimliği

list-accounts

Mevcut API belirtecinin erişebileceği Mailtrap hesaplarını, her hesabın erişim seviyeleriyle birlikte listeleyin.

Parametreler:

  • Parametre gerekmez

get-billing-usage

Hesap için mevcut fatura dönemi kullanımını alın: gönderim ve test planları, limitler ve mevcut sayılar.

Parametreler:

  • Parametre gerekmez

list-account-accesses

Hesap için hesap erişimlerini (kullanıcılar, davetler, API belirteçleri) listeleyin. İsteğe bağlı filtreler sonucu belirli kaynaklara daraltır. Hesap yöneticisi/sahibi izinleri gerektirir.

Parametreler:

  • domain_uuids (isteğe bağlı): Gönderim alanı UUID'lerine göre filtrele (dize dizisi)
  • inbox_ids (isteğe bağlı): Sandbox gelen kutusu kimliklerine göre filtrele (dize dizisi)
  • project_ids (isteğe bağlı): Sandbox proje kimliklerine göre filtrele (dize dizisi)

remove-account-access

Kimliğe göre bir hesap erişimini kaldırın. User belirteçleri için bu, izinlerini iptal eder; Invite veya ApiToken belirteçleri için belirteci tamamen kaldırır. Yönetici/sahip gerektirir.

Parametreler:

  • account_access_id (zorunlu): Kaldırılacak erişim kaydının kimliği

get-permission-resources

API belirtecinin yönetici erişimine sahip olduğu tüm kaynakları (gelen kutuları, projeler, alanlar, fatura, hesap) hiyerarşiye göre iç içe olarak alın.

Parametreler:

  • Parametre gerekmez

bulk-update-permissions

Tek bir hesap erişimi için izinleri toplu olarak oluşturun, güncelleyin veya yok edin. Mevcut (resource_type, resource_id) çiftleri güncellenir; yenileri oluşturulur. Bir girişi kaldırmak için destroy: true ayarlayın.

Parametreler:

  • account_access_id (zorunlu): Hedef hesap erişim kimliği
  • permissions (zorunlu): İzin girişleri dizisi. Her biri şunları içerir:
    • resource_id (zorunlu): Kaynak kimliği (sayı veya dize)
    • resource_type (zorunlu): account, project, inbox, domain, billing seçeneklerinden biri
    • access_level (isteğe bağlı): admin/100 veya viewer/10
    • destroy (isteğe bağlı, boolean): true olduğunda, bu izni oluşturmak/güncellemek yerine kaldırır

list-api-tokens

Hesap için tüm API belirteçlerini listeleyin.

Parametreler:

  • Parametre gerekmez

create-api-token

Yeni bir API belirteci oluşturun. Yanıt, gizli token değerini içerir — bu, tam belirtecin döndürüldüğü tek zamandır, bu yüzden hemen saklayın. Kaybederseniz, belirteci yeniden oluşturun.

Parametreler:

  • name (zorunlu): Belirteç için görünen ad
  • resources (isteğe bağlı): Belirteci kapsayacak kaynak izinleri dizisi. Her giriş şunları içerir:
    • resource_type (zorunlu): account, project, inbox, domain, billing seçeneklerinden biri
    • resource_id (zorunlu): Kaynağın kimliği
    • access_level (zorunlu): 100 (yönetici) veya 10 (izleyici)

get-api-token

Kimliğe göre bir API belirteci alın. Yalnızca meta verileri döndürür — gizli belirteç değeri burada döndürülmez (yalnızca create-api-token / reset-api-token üzerinden).

Parametreler:

  • api_token_id (zorunlu): API belirtecinin kimliği

reset-api-token

Kimliğe göre bir API belirtecini sıfırlayın (döndürün). Yanıt, yeni gizli token değerini içerir — yalnızca bu çağrıda döndürülür, bu yüzden hemen saklayın. Önceki belirteç geçersiz kılınır.

Parametreler:

  • api_token_id (zorunlu): Sıfırlanacak API belirtecinin kimliği

delete-api-token

Bir API belirtecini kimliğine göre kalıcı olarak silin. Belirteç silindikten sonra artık kimlik doğrulayamaz.

Parametreler:

  • api_token_id (zorunlu): Silinecek API belirtecinin kimliği

list-sub-accounts

Kuruluştaki alt hesapları listeleyin. MAILTRAP_ORGANIZATION_ID ortam değişkeni ve alt hesap yönetim izinleri gerektirir.

Parametreler:

  • Parametre gerekmez

create-sub-account

Organizasyon altında yeni bir alt hesap oluşturun. MAILTRAP_ORGANIZATION_ID ortam değişkeni ve alt hesap yönetim izinleri gerektirir.

Parametreler:

  • name (zorunlu): Yeni alt hesap için görünen ad

Geliştirme

  1. Depoyu klonlayın:
git clone https://github.com/mailtrap/mailtrap-mcp.git
cd mailtrap-mcp
  1. Bağımlılıkları yükleyin:
npm install

Claude Desktop veya Cursor ile Yapılandırma

[!TIP] Yapılandırma dosyasının konumunu Kurulum bölümünde bulabilirsiniz.

Aşağıdaki yapılandırmayı ekleyin:

{
  "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"
      }
    }
  }
}

Node.js yönetimi için asdf kullanıyorsanız, çalıştırılabilir dosyanın mutlak yolunu kullanmalısınız:

(Mac için örnek)

{
  "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] Yapılandırma dosyasının konumunu Kurulum bölümünde bulabilirsiniz.

{
  "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"
        }
      }
    }
  }
}

Test Etme

Araçları gerçek Mailtrap'e karşı çalıştırma

Bir aracı gerçek bir Mailtrap hesabına karşı uçtan uca çalıştırmanın iki yolu vardır: etkileşimli keşif için MCP Inspector tarayıcı arayüzü veya kabuktan tek seferlik çağrılar için CLI modu.

Her ikisi de önce paketin derlenmesini gerektirir:

npm run build

ve kabuğunuzda MAILTRAP_API_TOKEN + MAILTRAP_ACCOUNT_ID dışa aktarılmış olmalıdır (mcp:cli betiği her ikisini de başlatılan sunucuya iletir).

Tarayıcı Arayüzü

npm run dev

Inspector, http://localhost:6274 gibi bir URL yazdırır. Açın, Araçlar sekmesine geçin, bir araç seçin (örn. get-template), parametreleri JSON olarak doldurun ve Çalıştır'a tıklayın. Mailtrap yanıtı aşağıdaki panelde görünür.

CLI

Arayüz olmadan tek seferlik çağrılar için npm run mcp:cli kullanın. Inspector'ın CLI bayraklarını -- sonrasında iletin, böylece npm bunları olduğu gibi aktarır:

# 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]

MCPB Sunucusunu Çalıştırma

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

# Or use the provided binary
mailtrap-mcpb-server

[!TIP] MCP Inspector ile geliştirme için:

npm run dev:mcpb

Hata Yönetimi

Bu sunucu, MCP kurallarıyla uyumlu yapılandırılmış hata yönetimi kullanır:

  • VALIDATION_ERROR: Girdi doğrulama hataları
  • CONFIGURATION_ERROR: Eksik veya geçersiz yapılandırma
  • EXECUTION_ERROR: Çalışma zamanı yürütme hataları
  • TIMEOUT: İşlem zaman aşımı (varsayılan 30 saniye)

Hatalar, eyleme dönük mesajlar içerir ve yapılandırılmış biçimde günlüğe kaydedilir.

Güvenlik

  • Girdiler Zod şemaları ile doğrulanır
  • Ortam değişkenleri güvenli şekilde işlenir
  • İşlemlerde zaman aşımı koruması (30 saniye)
  • Hassas ayrıntılar hata çıktısında temizlenir

Günlük Kaydı

INFO, WARN, ERROR, DEBUG seviyelerinde yapılandırılmış JSON günlükleri.

DEBUG=true ayarlayarak hata ayıklama günlüklerini etkinleştirin.

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

Önemli: Sunucu, günlükleri stderr'e yazar, böylece stdout JSON-RPC çerçeveleri için ayrılmış kalır. Bu, ana bilgisayarların serpiştirilmiş günlükler nedeniyle JSON ayrıştırma hatalarıyla karşılaşmasını önler.

jq kullanarak günlük analizi örneği:

# 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")'

Sorun Giderme

Yaygın sorunlar:

  1. Eksik API Anahtarı: MAILTRAP_API_TOKEN ayarlandığından emin olun
  2. Sandbox çalışmıyor: araç çağrısında test_inbox_id sağlayın veya MAILTRAP_TEST_INBOX_ID ortam değişkenini ayarlayın
  3. Zaman aşımı hataları: ağ bağlantısını ve Mailtrap API durumunu kontrol edin
  4. Doğrulama hataları: tüm zorunlu alanların sağlandığından emin olun

Katkıda Bulunma

Hata raporları ve çekme istekleri GitHub üzerinde memnuniyetle karşılanır. Bu proje, iş birliği için güvenli ve davetkâr bir alan olmayı amaçlar ve katkıda bulunanların davranış kurallarına uyması beklenir.

Lisans

Paket, MIT Lisansı koşulları altında açık kaynak olarak sunulmaktadır.

Davranış Kuralları

Mailtrap projesinin kod tabanlarında, sorun takipçilerinde, sohbet odalarında ve e-posta listelerinde etkileşimde bulunan herkesin davranış kurallarına uyması beklenir.