AhaSend Email API & SMTP relay

आधिकारिक

ईमेल भेजें, पता लगाएं कि कोई ईमेल क्यों विफल हुआ, भेजने वाले डोमेन सेट करें, और अपने AhaSend खाते में टेम्पलेट, संपर्क, सूचियाँ और अभियान प्रबंधित करें।

AhaSend Email API & SMTP Relay MCP के साथ आप क्या कर सकते हैं?

  • ईमेल भेजें — सहायक से एक बार का ईमेल, टेम्पलेट ईमेल, या वार्तालाप ईमेल भेजने के लिए कहें, और निर्धारित भेजना रद्द करें।
  • डिलीवरी का निदान करें — संदेश खोजें, पता लगाएं कि कोई ईमेल क्यों विफल हुआ, और डिलीवरेबिलिटी, बाउंस, और डिलीवरी-समय के आँकड़े निकालें।
  • डोमेन प्रबंधित करें — भेजने वाले डोमेन की सूची बनाएं, जोड़ें, अपडेट करें, और हटाएं, और किसी डोमेन के DNS रिकॉर्ड जांचें।
  • टेम्पलेट बनाएं — टेम्पलेट और कैंपेन टेम्पलेट बनाएं, अपडेट करें, प्रकाशित करें, और संस्करण बनाएं, Simple Editor डिज़ाइन को AhaML मार्कअप के रूप में संपादित करें।
  • ऑडियंस प्रबंधित करें — संपर्क, सूचियाँ, और सेगमेंट बनाएं और अपडेट करें, सूचियों में संपर्क जोड़ें, और किसी सेगमेंट का पूर्वावलोकन करें।
  • कैंपेन चलाएं — कैंपेन बनाएं, डुप्लिकेट करें, परीक्षण करें, भेजें, और शेड्यूल करें, फिर कैंपेन के आँकड़े और प्राप्तकर्ता जांचें।

होस्ट किया गया MCP सर्वर

npx add-mcp 'https://mcp.ahasend.com/mcp'

Claude Code, Codex, Cursor और अन्य में इंस्टॉल होता है

दस्तावेज़

ahasend-mcp

AhaSend के लिए MCP टूल्स वाला एक Go मॉड्यूल। इन टूल्स की मदद से एक AI एजेंट ईमेल भेज सकता है, पता लगा सकता है कि कोई ईमेल क्यों विफल हुआ, और डोमेन, टेम्पलेट, संपर्क, सूचियाँ, कैंपेन, वेबहुक, रूट, सप्रेशन, SMTP क्रेडेंशियल और सब-अकाउंट प्रबंधित कर सकता है।

प्रत्येक टूल ahasend-go के माध्यम से AhaSend v2 API को कॉल करता है। API कुंजी के स्कोप तय करते हैं कि एजेंट क्या कर सकता है।

यह मॉड्यूल आधिकारिक Go MCP SDK के साथ एक सर्वर बनाता है। आपका प्रोग्राम तय करता है कि इसे कैसे सर्व किया जाए: stdio, HTTP, या कोई अन्य SDK ट्रांसपोर्ट।

go get github.com/AhaSend/ahasend-mcp

उदाहरण

server, err := ahasendmcp.NewServer(
	&mcp.Implementation{Name: "my-app", Version: "1.0.0"},
	ahasendmcp.Options{
		Client:           api.NewAPIClient(api.WithAPIKey(apiKey)),
		AccountID:        accountID,
		DashboardBaseURL: "https://dash.ahasend.com",
		ConfirmationKey:  key, // at least 32 random bytes
	},
)
if err != nil {
	return err
}
return server.Run(ctx, &mcp.StdioTransport{})

विकल्प

फ़ील्डयह क्या करता है
ClientAPI कुंजी के साथ ahasend-go क्लाइंट। आवश्यक।
AccountIDवह अकाउंट जिस पर टूल्स काम करते हैं। आवश्यक।
DashboardBaseURLAhaSend डैशबोर्ड URL, जो कैंपेन लिंक में उपयोग होता है। आवश्यक।
ConfirmationKeyकम से कम 32 बाइट का एक सीक्रेट जो कैंपेन भेजने के प्रश्नों पर हस्ताक्षर करता है। आवश्यक।
ScopesAPI कुंजी के स्कोप। केवल वही टूल्स दिखाए जाते हैं जिन्हें कुंजी उपयोग कर सकती है। nil हर टूल दिखाता है।
Toolsetsकेवल ये टूलसेट दिखाएँ। nil सभी दिखाता है।
ReadOnlyकेवल वे टूल्स दिखाएँ जो कुछ भी नहीं बदलते।
Statelessयदि आप स्टेटलेस HTTP पर सर्व करते हैं तो इसे true पर सेट करें।
MaxRecipientsPerSendएक बार भेजने के लिए अधिकतम प्राप्तकर्ता। डिफ़ॉल्ट 50।
ReadInboundसंदेश टूल्स को अकाउंट द्वारा प्राप्त ईमेल लौटाने दें। डिफ़ॉल्ट रूप से बंद।
Blockedयदि सेट हो, तो हर टूल कॉल त्रुटि के रूप में यह टेक्स्ट लौटाता है और कुछ नहीं करता।
Recorderप्रति टूल कॉल एक रिकॉर्ड प्राप्त करता है: टूल का नाम, सफलता, त्रुटि का प्रकार और लिया गया समय। इनपुट या परिणाम कभी नहीं।

यदि आप कई उपयोगकर्ताओं को सर्व करते हैं, तो प्रत्येक अनुरोध के लिए उस उपयोगकर्ता की कुंजी और स्कोप के साथ एक नया सर्वर बनाएँ। यह सस्ता है। हर इंस्टेंस पर वही ConfirmationKey उपयोग करें।

Catalogue() हर टूल को उसके आवश्यक स्कोप के साथ सूचीबद्ध करता है। OfferedScopes() टूल्स द्वारा उपयोग किए जाने वाले हर स्कोप को सूचीबद्ध करता है, उस पेज के लिए जहाँ उपयोगकर्ता स्कोप चुनता है।

टूल्स

टूलसेटटूल्स
sendingsend_email, send_conversation_email, send_template_email, cancel_scheduled_email
diagnosticslist_messages, get_message, diagnose_message, get_deliverability_stats, get_bounce_stats, get_delivery_time_stats
domainslist_domains, get_domain, add_domain, check_domain_dns, update_domain, delete_domain
templateslist_templates, get_template, get_published_template, create_template, update_template, delete_template, discard_template_draft, publish_template, list_template_versions, get_template_version, restore_template_version, list_campaign_templates, get_campaign_template, create_campaign_template, update_campaign_template, delete_campaign_template
audiencelist_contacts, get_contact, create_contact, upsert_contacts, update_contact, delete_contact, list_contact_lists, list_lists, get_list, create_list, update_list, delete_list, list_list_contacts, add_contacts_to_list, upsert_list_contact, remove_contact_from_list, list_segments, get_segment, create_segment, update_segment, delete_segment, preview_segment, list_segment_contacts, list_contact_segments
campaignslist_campaigns, get_campaign, create_campaign, update_campaign, delete_campaign, duplicate_campaign, send_campaign_test, send_campaign, schedule_campaign, unschedule_campaign, get_campaign_stats, list_campaign_recipients
managementget_account, list_webhooks, get_webhook, create_webhook, update_webhook, delete_webhook, list_routes, get_route, create_route, update_route, delete_route, list_suppressions, add_suppression, remove_suppression, list_smtp_credentials, get_smtp_credential, delete_smtp_credential, list_sub_accounts, get_sub_account, create_sub_account, update_sub_account, get_sub_account_usage

प्रत्येक टूल को वे स्कोप चाहिए जो उसके API एंडपॉइंट को चाहिए। send_campaign और schedule_campaign को campaigns:read और lists:read भी चाहिए, और सेगमेंट उपयोग करने वाला कैंपेन भेजने के लिए segments:read चाहिए। कैंपेन टेम्पलेट टूल्स को campaigns:read भी चाहिए। preview_segment, list_segment_contacts और list_contact_segments को contacts:read के साथ-साथ segments:read भी चाहिए।

सूची टूल्स डिफ़ॉल्ट रूप से 20 आइटम लौटाते हैं और अधिकतम 100। अगला पेज पाने के लिए लौटाया गया कर्सर पास करें।

API कुंजियाँ या SMTP क्रेडेंशियल बनाने, अकाउंट सेटिंग्स, बिलिंग या टीम सदस्यों को बदलने, सभी सप्रेशन हटाने, या सब-अकाउंट हटाने या निलंबित करने के लिए कोई टूल नहीं है।

Simple Editor डिज़ाइन और AhaML

टेम्पलेट, कैंपेन टेम्पलेट और कैंपेन टूल्स डैशबोर्ड के Simple Editor के एक डिज़ाइन को AhaSend Markup (AhaML) के रूप में पढ़ते और लिखते हैं, जो डिज़ाइन का एक XML रूप है, कंटेंट के markup फ़ील्ड में। get_template एक टेम्पलेट की कार्यशील प्रति लौटाता है, यानी जब तक ड्राफ़्ट मौजूद है तब वह ड्राफ़्ट, ताकि एजेंट वही संपादित करे जो उसने पढ़ा; get_published_template वह प्रति लौटाता है जिसका उपयोग कोई भेजना करता है।

सर्वर में एक संसाधन है, ahasend://docs/ahaml: AhaML संदर्भ, जिसमें हर टैग, एट्रिब्यूट, सीमा और त्रुटि कोड है। यह https://ahasend.com/docs/send-api/ahaml पर भी है। यह संसाधन हर कनेक्शन पर सूचीबद्ध होता है, ताकि वेब एक्सेस के बिना भी एक एजेंट इसे पढ़ सके।

सुरक्षा नियम

कैंपेन भेजने के लिए किसी व्यक्ति का हाँ चाहिए। send_campaign और schedule_campaign उपयोगकर्ता को भेजने का समय, संपर्कों की संख्या, कैंपेन का नाम, विषय, प्रेषक, सूचियाँ और सेगमेंट, और बहिष्कृत सूचियाँ और सेगमेंट दिखाने वाला एक फ़ॉर्म दिखाते हैं। वे तभी भेजते हैं जब उपयोगकर्ता हाँ उत्तर देता है। यदि प्रश्न के बाद कैंपेन बदल जाता है, तो टूल फिर से पूछता है। यदि क्लाइंट फ़ॉर्म नहीं दिखा सकता, तो टूल कुछ नहीं भेजता और डैशबोर्ड में कैंपेन का लिंक लौटाता है।

एकबारगी भेजने की प्राप्तकर्ता सीमा होती है। MaxRecipientsPerSend से अधिक प्राप्तकर्ताओं (डिफ़ॉल्ट 50) को एक बार भेजना अस्वीकार कर दिया जाता है। बल्क ईमेल के लिए कैंपेन उपयोग करें।

प्राप्त ईमेल डिफ़ॉल्ट रूप से छिपा रहता है। कोई भी व्यक्ति किसी अकाउंट के इनबाउंड पतों पर ईमेल भेज सकता है, और उस ईमेल में ऐसा टेक्स्ट हो सकता है जो एजेंट को धोखा देने की कोशिश करता है। जब तक ReadInbound चालू नहीं है, संदेश टूल्स प्राप्त ईमेल नहीं लौटाते। जब यह चालू होता है, तो प्राप्त संदेशों को untrusted: true के रूप में चिह्नित किया जाता है।

त्रुटियाँ

जब API किसी कॉल को अस्वीकार करता है, तो टूल API के संदेश और आगे क्या करना है के साथ एक त्रुटि लौटाता है। जब यह AhaML को अस्वीकार करता है, तो त्रुटि समस्याओं को सूचीबद्ध करती है, पहले 100 तक, प्रत्येक अपने कोड, पंक्ति, स्तंभ, पथ और संकेत के साथ; API का संदेश बताता है कि कुल कितनी हैं।

इसे स्थानीय रूप से आज़माना

cmd/ahasend-mcp-dev आपकी अपनी API कुंजी के साथ हर टूल को stdio पर सर्व करता है। यह केवल परीक्षण के लिए है।

go build -o ahasend-mcp-dev ./cmd/ahasend-mcp-dev
claude mcp add ahasend \
  -e AHASEND_API_KEY=... -e AHASEND_ACCOUNT_ID=... \
  -- ./ahasend-mcp-dev

डिफ़ॉल्ट के अलावा किसी अन्य API का उपयोग करने के लिए AHASEND_BASE_URL सेट करें।

लाइसेंस

MIT