Bir yapay zeka asistanı (MCP) bağlayın
Claude, Cursor veya VS Code'u MCP ile bağlayın; Shopify Flow e-posta şablonlarını oluşturup çevirin, kurulumu denetleyin ve başarısız gönderimleri inceleyin.
Uygulama bir MCP sunucusu çalıştırır; böylece bir yapay zeka asistanı, sizin yerinize yapılandırmaları bir oraya bir buraya kopyalamak zorunda kalmadan, kurulumunuzu inceleyebilir, e-posta şablonlarını oluşturabilir ve çevirebilir, HTTP isteklerinizi yönetebilir ve medya kitaplığınızı doğrudan düzenleyebilir.
Yapabileceği faydalı şeyler: altbilgi metinlerinizi içeren bir pazarlama şablonu hazırlamak, bir şablonu satış yaptığınız tüm dillere çevirmek, hangi e-posta şablonlarının yakında değiştirilecek bir gizli bilgiye atıfta bulunduğunu denetlemek, artık hiçbir yerde kullanılmayan tüm yüklü görselleri bulmak, dünkü gönderimlerin neden başarısız olduğunu açıklamak veya bir üçüncü taraf API’nin belgelerinden yeni bir HTTP isteği oluşturmak.
Uç nokta
POST https://shopify.workflow-transactional-email.app/api/mcpAktarım, Streamable HTTP üzerinden gerçekleştirilir. Kimlik doğrulama, REST API ile aynı taşıyıcı anahtarı kullanılır - bkz. Kimlik Doğrulama ve API Anahtarları.
Bağlanma
Uygulamanın Geliştirici sayfasındaki MCP sekmesi, Claude, Claude Desktop, Cursor, VS Code ve Gemini CLI için URL’niz ve anahtarınızın önceden girilmiş olduğu, kopyalanmaya hazır bir komut oluşturur. Elle yazmak yerine bunu kullanın.
Claude Code için komut şu şekildedir:
claude mcp add --transport http flow-transactional-email \
https://shopify.workflow-transactional-email.app/api/mcp \
--header "Authorization: Bearer fak_your_key_here"JSON yapılandırması kullanan düzenleyiciler için biçimi şöyledir:
{
"mcpServers": {
"flow-transactional-email": {
"url": "https://shopify.workflow-transactional-email.app/api/mcp",
"headers": {
"Authorization": "Bearer fak_your_key_here"
}
}
}
}Kullanılabilir araçlar
Araç seti, anahtarınızın seviyesini yansıtır. Salt okunur bir anahtar, bir yazma aracını çağırdığında sadece reddedilmez; o aracı listede hiç görmez bile; dolayısıyla bir asistanın bunu denemeye ikna edilmesi mümkün değildir.
Oku (15 araç)
E-posta şablonları: list_email_templates, get_email_template, get_layout_schema, list_template_translations, list_template_versions, get_template_version. list_email_templates işlevi, q, category (transactional veya marketing), page ve limit parametrelerini alır.
E-posta gönderenleri: list_smtp_configs, list_senders
Gizli anahtarlar: list_secret_keys (sadece adlar)
HTTP istekleri: list_http_requests, get_http_request
Medya: list_files (her bir dosyaya hâlâ hangi öğelerin referans verdiğini görmek için usage: true parametresini geçin)
Geçmiş: list_history (status'ye göre filtreleme; alıcılarının tamamı abonelikten çıkmış olan pazarlama e-postaları için SKIPPED dahil), get_history_entry, get_stats
Okuma ve yazma (12'yi toplar)
E-posta şablonları: create_email_template, update_email_template, delete_email_template
Diller: set_template_translation, delete_template_translation, promote_template_translation
Sürümler: restore_template_version, restore_template_github_version
HTTP istekleri: create_http_request, update_http_request, delete_http_request
Medya: delete_file
Okuma, yazma ve yürütme (1 eklenir)
test_http_request - gerçek hedefe yönelik olarak yapılandırılmış bir HTTP isteğini çalıştırır.
Bir asistan yardımıyla bina planları oluşturma
Asistanından önce get_layout_schema dosyasını okumasını isteyin: Bu dosya, her bloğun varsayılan ayarlarını, kullanabileceğiniz Liquid kodlarını ve sınırlamaları içeren görsel tasarım formatını açıklar; bu format, oluşturucu tarafından kendiliğinden üretilir. Ardından create_email_template işlevi bir name, bir subject ve bir bodyDesign (görsel, varsayılan) ya da bir HTML body (metin) alır. Düzen, uygulamada anında görünür ve her değişiklik sürüm geçmişinde saklanır; bu sayede asistanın yaptığı hiçbir işlem geri alınamaz değildir.
Bir düzenin e-posta olarak nasıl davranacağını belirleyen iki alan vardır:
category:transactional(varsayılan) veyamarketing. Pazarlama şablonunda, abonelikten çıkmış alıcılar atlanır ve şablona abonelikten çıkma bağlantısı ile altbilgi eklenir; bkz. Pazarlama e-postaları ve abonelikten çıkma işlemleri.marketingTexts: Ayarlar'daki mağaza metinleri yerine bir pazarlama şablonunun altbilgi metinleri;{ unsubscribeText, unsubscribeLinkLabel, companyDetails }; her alan isteğe bağlıdır;nulldeğeri, Ayarlar'daki metinlerin kullanılacağı anlamına gelir. Abonelikten çıkma cümlesi,{{ unsubscribe_link }}veya{{ unsubscribe_url }}içermelidir.
set_template_translation, bir dil şablonunu oluşturur veya tam çevrilmiş içerikle değiştirir. Bir metin şablonu için attachments öğesini de taşıyabilir (bir liste = bu dile ait dosyalar, null = şablona ait dosyalar, belirtilmezse = değişmez) ve bir pazarlama şablonu için şablona ait metinlerin üzerine o dile ait marketingTexts öğesini ekleyebilir. promote_template_translation, bir dili şablonun ana dili yapar; ikisi yer değiştirir, böylece hiçbir şey kaybolmaz.
İyi bir ilk istek:
"Sayfa şemasını okuyun, ardından 'Sipariş gönderildi' başlıklı sayfamı Almanca ve Fransızca'ya çevirin. Tüm Liquid etiketlerini ve URL'leri aynen olduğu gibi koruyun."
Uygulamada her yazma işlemi, bir kaydetme işlemi gibi kontrol edilir: Liquid’in verileri ayrıştırması gerekir, dosyalar size ait olmalıdır ve araç, hata veren alanı bildirir.
Medya kütüphanesini düzenleme
Bir asistan için iyi bir kullanım alanı. Ondan dosyalarınızı kullanım bilgilerini de ekleyerek listelemesini isteyin, ardından hiçbir şeyin atıfta bulunmadığı dosyaları silin:
"Yüklediğim dosyaları kullanım durumlarıyla birlikte listele ve hangilerinin hiç kullanılmadığını söyle. Sonra da o dosyaları sil."
Herhangi bir e-posta şablonu veya başlık/altbilgi ön ayarı hâlâ bu dosyaya atıfta bulunuyorsa, delete_file komutu 409 hatasıyla reddedilir ve reddedilme mesajında dosyayı kullanan öğenin adı belirtilir; bu nedenle, siz isteseniz bile asistan, hâlâ aktif bir e-postada gerekli olan bir logoyu silemez.
Asistanın asla göremeyeceği şey
Gizli bir değer, SMTP kullanıcı adı veya şifresi ya da posta kutusu oturum açma jetonu döndüren bir araç kasıtlı olarak bulunmamaktadır. list_secret_keys yalnızca adları döndürür.
Tasarımın amacı da budur: Bir asistanınızdan, ödeme sağlayıcınızla kimlik doğrulaması yapan bir HTTP isteği yazmasını isteyebilirsiniz; bu istek, anahtarın kendisi modelin bağlamına hiç girmeden {{ secrets.stripeApiKey }}'ye doğru şekilde atıfta bulunacaktır.
MCP aracılığıyla döndürülen geçmiş verileri, REST üzerinden olduğu gibi tam olarak maskelenir. Aynı uyarı burada da geçerlidir: Maskeleme, alan adları ve değer kalıpları üzerinde işe yarar; ancak serbest metin alanları, iletişim sırasında yine de kişisel veriler içerebilir. Bir asistanı geniş bir geçmiş aralığına yönlendirmeden önce bunu göz önünde bulundurun.
