UNPKG

smartlead-mcp-by-leadmagic

Version:

💜 The Premier Model Context Protocol Server for SmartLead's Cold Email Automation Platform - Complete API coverage with 116+ tools for campaign management, lead tracking, smart delivery, and analytics. Beautiful purple-gradient installer, zero-config set

277 lines • 11.8 kB
/** * SmartLead MCP Server - Main Client * * Main client that combines all API modules into a single interface. * Provides a unified API for accessing all SmartLead functionality. * * @author LeadMagic Team * @version 1.5.0 */ import { AnalyticsClient } from '../modules/analytics/client.js'; import { CampaignManagementClient } from '../modules/campaigns/client.js'; import { ClientManagementClient } from '../modules/client-management/client.js'; import { EmailAccountManagementClient } from '../modules/email-accounts/client.js'; import { LeadClient } from '../modules/leads/client.js'; import { SmartDeliveryClient } from '../modules/smart-delivery/client.js'; import { SmartSendersClient } from '../modules/smart-senders/client.js'; import { StatisticsClient } from '../modules/statistics/client.js'; import { WebhooksClient } from '../modules/webhooks/client.js'; import { BaseSmartLeadClient } from './base.js'; /** * Main SmartLead API Client * * Unified client that provides access to all SmartLead API functionality * through modular sub-clients for different API categories. */ export class SmartLeadClient extends BaseSmartLeadClient { campaigns; leads; analytics; emailAccounts; clientManagement; webhooks; smartDelivery; statistics; smartSenders; constructor(config) { super(config); // Initialize all module clients this.campaigns = new CampaignManagementClient(config); this.leads = new LeadClient(config); this.analytics = new AnalyticsClient(config); this.emailAccounts = new EmailAccountManagementClient(config); this.clientManagement = new ClientManagementClient(config); this.webhooks = new WebhooksClient(config); this.smartDelivery = new SmartDeliveryClient(config); this.statistics = new StatisticsClient(config); this.smartSenders = new SmartSendersClient(config); } // ================================ // LEGACY COMPATIBILITY METHODS // ================================ // These methods maintain backward compatibility with the existing server implementation // while the server is being refactored to use the new modular structure // Campaign methods (delegate to campaigns module) async createCampaign(params) { return this.campaigns.createCampaign(params); } async updateCampaignSchedule(campaignId, params) { return this.campaigns.updateCampaignSchedule(campaignId, params); } async updateCampaignSettings(campaignId, params) { return this.campaigns.updateCampaignSettings(campaignId, params); } async updateCampaignStatus(campaignId, status) { return this.campaigns.updateCampaignStatus(campaignId, status); } async getCampaign(campaignId) { return this.campaigns.getCampaign(campaignId); } async listCampaigns(params) { return this.campaigns.listCampaigns(params); } async saveCampaignSequence(campaignId, sequence) { return this.campaigns.saveCampaignSequence(campaignId, sequence); } async getCampaignSequence(campaignId) { return this.campaigns.getCampaignSequence(campaignId); } async getCampaignsWithAnalytics(params) { return this.campaigns.getCampaignsWithAnalytics(params); } async deleteCampaign(campaignId) { return this.campaigns.deleteCampaign(campaignId); } async exportCampaignData(campaignId, params) { return this.campaigns.exportCampaignData(campaignId, params); } async fetchCampaignAnalyticsByDateRange(campaignId, params) { return this.campaigns.fetchCampaignAnalyticsByDateRange(campaignId, params); } async getCampaignSequenceAnalytics(campaignId, params) { return this.campaigns.getCampaignSequenceAnalytics(campaignId, params); } async fetchAllCampaignsUsingLeadId(leadId) { return this.campaigns.fetchAllCampaignsUsingLeadId({ lead_id: leadId }); } // Lead methods (delegate to leads module) async listLeadsByCampaign(campaignId, params) { const leadsParams = params ? { campaign_id: campaignId, ...params, } : { campaign_id: campaignId }; return this.leads.listLeadsByCampaign(campaignId, leadsParams); } async fetchLeadCategories() { return this.leads.fetchLeadCategories(); } async fetchLeadByEmail(email) { return this.leads.fetchLeadByEmail(email); } async addLeadsToCampaign(campaignId, leads) { return this.leads.addLeadsToCampaign(campaignId, leads); } async resumeLeadByCampaign(campaignId, leadId) { return this.leads.resumeLeadByCampaign(campaignId, leadId); } async pauseLeadByCampaign(campaignId, leadId) { return this.leads.pauseLeadByCampaign(campaignId, leadId); } async deleteLeadByCampaign(campaignId, leadId) { return this.leads.deleteLeadByCampaign(campaignId, leadId); } async unsubscribeLeadFromCampaign(campaignId, leadId) { return this.leads.unsubscribeLeadFromCampaign(campaignId, leadId); } async unsubscribeLeadFromAllCampaigns(leadId) { return this.leads.unsubscribeLeadFromAllCampaigns(leadId); } async addLeadToGlobalBlocklist(email) { return this.leads.addLeadToGlobalBlocklist(email); } async fetchAllLeadsFromAccount(params) { return this.leads.fetchAllLeadsFromAccount(params); } async fetchLeadsFromGlobalBlocklist(params) { return this.leads.fetchLeadsFromGlobalBlocklist(params); } async updateLeadById(leadId, leadData) { return this.leads.updateLeadById(leadId, leadData); } async updateLeadCategory(campaignId, leadId, category) { return this.leads.updateLeadCategory(campaignId, leadId, category); } async fetchLeadMessageHistory(campaignId, leadId) { return this.leads.fetchLeadMessageHistory(campaignId, leadId); } async replyToLeadFromMasterInbox(campaignId, leadId, message) { const replyMessage = { campaign_id: campaignId, lead_id: leadId, message: message.message, subject: message.subject, }; return this.leads.replyToLeadFromMasterInbox(campaignId, leadId, replyMessage); } async forwardReply(campaignId, leadId, forwardData) { const forwardRequest = { forward_to_email: forwardData.forward_to, message: forwardData.message, include_original: true, }; return this.leads.forwardReply(campaignId, leadId, forwardRequest); } // Analytics methods (delegate to analytics module) async getAnalyticsCampaignList(params) { return this.analytics.getCampaignList(params); } async getAnalyticsClientList(params) { return this.analytics.getClientList(params); } async getAnalyticsClientMonthWiseCount(params) { return this.analytics.getClientMonthWiseCount(params); } async getAnalyticsOverallStatsV2(params) { return this.analytics.getOverallStatsV2(params); } async getAnalyticsDayWiseOverallStats(params) { return this.analytics.getDayWiseOverallStats(params); } async getAnalyticsDayWisePositiveReplyStats(params) { return this.analytics.getDayWisePositiveReplyStats(params); } async getAnalyticsCampaignOverallStats(params) { return this.analytics.getCampaignOverallStats(params); } async getAnalyticsClientOverallStats(params) { return this.analytics.getClientOverallStats(params); } async getAnalyticsMailboxNameWiseHealthMetrics(params) { return this.analytics.getMailboxNameWiseHealthMetrics(params); } async getAnalyticsMailboxDomainWiseHealthMetrics(params) { return this.analytics.getMailboxDomainWiseHealthMetrics(params); } async getAnalyticsMailboxProviderWiseOverallPerformance(params) { return this.analytics.getMailboxProviderWiseOverallPerformance(params); } async getAnalyticsTeamBoardOverallStats(params) { return this.analytics.getTeamBoardOverallStats(params); } async getAnalyticsLeadOverallStats(params) { return this.analytics.getLeadOverallStats(params); } async getAnalyticsLeadCategoryWiseResponse(params) { return this.analytics.getLeadCategoryWiseResponse(params); } async getAnalyticsCampaignLeadsTakeForFirstReply(params) { return this.analytics.getCampaignLeadsTakeForFirstReply(params); } async getAnalyticsCampaignFollowUpReplyRate(params) { return this.analytics.getCampaignFollowUpReplyRate(params); } async getAnalyticsCampaignLeadToReplyTime(params) { return this.analytics.getCampaignLeadToReplyTime(params); } async getAnalyticsCampaignResponseStats(params) { return this.analytics.getCampaignResponseStats(params); } async getAnalyticsCampaignStatusStats(params) { return this.analytics.getCampaignStatusStats(params); } async getAnalyticsMailboxOverallStats(params) { return this.analytics.getMailboxOverallStats(params); } // Email Account methods (delegate to email accounts module) async addEmailAccount(params) { return this.emailAccounts.createEmailAccount(params); } async getAllEmailAccounts() { return this.emailAccounts.getAllEmailAccounts(); } async getEmailAccountById(accountId) { return this.emailAccounts.getEmailAccountById(accountId); } async updateEmailAccount(accountId, params) { return this.emailAccounts.updateEmailAccount(accountId, params); } async deleteEmailAccount(_accountId) { // Note: Delete functionality not available in current API throw new Error('Delete email account functionality not available in current SmartLead API'); } async testEmailAccountConnection(accountId) { return this.emailAccounts.testEmailAccountConnection(accountId); } async getEmailAccountWarmupStatus(accountId) { return this.emailAccounts.getEmailAccountWarmupStatus(accountId); } async updateEmailAccountWarmupSettings(accountId, params) { return this.emailAccounts.updateEmailAccountWarmupSettings(accountId, params); } async getEmailAccountHealthMetrics(accountId, params) { return this.emailAccounts.getEmailAccountHealthMetrics(accountId, params); } async assignEmailAccountsToCampaign(campaignId, accountIds) { return this.emailAccounts.assignEmailAccountsToCampaign(campaignId, accountIds); } async removeEmailAccountsFromCampaign(campaignId, accountIds) { return this.emailAccounts.removeEmailAccountsFromCampaign(campaignId, accountIds); } async listEmailAccountsPerCampaign(campaignId) { return this.emailAccounts.listEmailAccountsPerCampaign(campaignId); } } export { AnalyticsClient } from '../modules/analytics/client.js'; export { CampaignManagementClient } from '../modules/campaigns/client.js'; export { ClientManagementClient } from '../modules/client-management/client.js'; export { EmailAccountManagementClient } from '../modules/email-accounts/client.js'; export { LeadClient } from '../modules/leads/client.js'; export { SmartDeliveryClient } from '../modules/smart-delivery/client.js'; export { SmartSendersClient } from '../modules/smart-senders/client.js'; export { StatisticsClient } from '../modules/statistics/client.js'; export { WebhooksClient } from '../modules/webhooks/client.js'; // Export the main client and all modules export { BaseSmartLeadClient, SmartLeadError } from './base.js'; //# sourceMappingURL=index.js.map