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
186 lines • 7.68 kB
JavaScript
/**
* SmartLead MCP Server - Email Account Management Client
*
* Client module for email account management API endpoints.
* Handles all email account-related operations including creation, updates, warmup settings, and health metrics.
*
* @author LeadMagic Team
* @version 1.5.0
*/
import { BaseSmartLeadClient } from '../../client/base.js';
/**
* Email Account Management Client
*
* Provides methods for managing SmartLead email accounts including:
* - Creating and updating email accounts
* - Managing warmup settings and status
* - Health metrics and monitoring
* - Campaign assignment and management
*/
export class EmailAccountManagementClient extends BaseSmartLeadClient {
// ================================
// EMAIL ACCOUNT MANAGEMENT METHODS
// ================================
/**
* List Email Accounts Per Campaign
* GET /campaigns/{campaign_id}/email-accounts
*/
async listEmailAccountsPerCampaign(campaignId) {
const response = await this.withRetry(() => this.apiClient.get(`/campaigns/${campaignId}/email-accounts`), 'list email accounts per campaign');
return response.data;
}
/**
* Add Email Account To Campaign
* POST /campaigns/{campaign_id}/email-accounts
*/
async addEmailAccountToCampaign(campaignId, params) {
const response = await this.withRetry(() => this.apiClient.post(`/campaigns/${campaignId}/email-accounts`, params), 'add email account to campaign');
return response.data;
}
/**
* Remove Email Account From Campaign
* DELETE /campaigns/{campaign_id}/email-accounts/{email_account_id}
*/
async removeEmailAccountFromCampaign(campaignId, emailAccountId) {
const response = await this.withRetry(() => this.apiClient.delete(`/campaigns/${campaignId}/email-accounts/${emailAccountId}`), 'remove email account from campaign');
return response.data;
}
/**
* Get All Email Accounts
* GET /email-accounts
*/
async getAllEmailAccounts() {
const response = await this.withRetry(() => this.apiClient.get('/email-accounts'), 'get all email accounts');
return response.data;
}
/**
* Create Email Account
* POST /email-accounts
*/
async createEmailAccount(params) {
const response = await this.withRetry(() => this.apiClient.post('/email-accounts', params), 'create email account');
return response.data;
}
/**
* Update Email Account
* POST /email-accounts/{email_account_id}
*/
async updateEmailAccount(emailAccountId, params) {
const response = await this.withRetry(() => this.apiClient.post(`/email-accounts/${emailAccountId}`, params), 'update email account');
return response.data;
}
/**
* Get Email Account By ID
* GET /email-accounts/{email_account_id}
*/
async getEmailAccountById(emailAccountId) {
const response = await this.withRetry(() => this.apiClient.get(`/email-accounts/${emailAccountId}`), 'get email account by ID');
return response.data;
}
/**
* Start Email Account Warmup
* POST /email-accounts/{email_account_id}/warmup
*/
async startEmailAccountWarmup(emailAccountId, params) {
const response = await this.withRetry(() => this.apiClient.post(`/email-accounts/${emailAccountId}/warmup`, params), 'start email account warmup');
return response.data;
}
/**
* Reconnect Failed Email Accounts
* POST /email-accounts/reconnect
*/
async reconnectFailedEmailAccounts(params) {
const response = await this.withRetry(() => this.apiClient.post('/email-accounts/reconnect', params), 'reconnect failed email accounts');
return response.data;
}
/**
* Update Email Account Tag
* POST /email-accounts/{email_account_id}/tag
*/
async updateEmailAccountTag(emailAccountId, params) {
const response = await this.withRetry(() => this.apiClient.post(`/email-accounts/${emailAccountId}/tag`, params), 'update email account tag');
return response.data;
}
/**
* Test email account connection
*/
async testEmailAccountConnection(accountId) {
const response = await this.withRetry(() => this.apiClient.post(`/email-accounts/${accountId}/test-connection`), 'test email account connection');
return response.data;
}
/**
* Get email account warmup status
*/
async getEmailAccountWarmupStatus(accountId) {
const response = await this.withRetry(() => this.apiClient.get(`/email-accounts/${accountId}/warmup-status`), 'get email account warmup status');
return response.data;
}
/**
* Update email account warmup settings
*/
async updateEmailAccountWarmupSettings(accountId, params) {
const response = await this.withRetry(() => this.apiClient.put(`/email-accounts/${accountId}/warmup-settings`, params), 'update email account warmup settings');
return response.data;
}
/**
* Get email account health metrics
*/
async getEmailAccountHealthMetrics(accountId, params) {
const response = await this.withRetry(() => this.apiClient.get(`/email-accounts/${accountId}/health-metrics`, { params }), 'get email account health metrics');
return response.data;
}
/**
* Assign email accounts to campaign
*/
async assignEmailAccountsToCampaign(campaignId, accountIds) {
const response = await this.withRetry(() => this.apiClient.post(`/campaigns/${campaignId}/email-accounts/bulk`, {
email_account_ids: accountIds,
}), 'assign email accounts to campaign');
return response.data;
}
/**
* Remove email accounts from campaign
*/
async removeEmailAccountsFromCampaign(campaignId, accountIds) {
const response = await this.withRetry(() => this.apiClient.delete(`/campaigns/${campaignId}/email-accounts/bulk`, {
data: { email_account_ids: accountIds },
}), 'remove email accounts from campaign');
return response.data;
}
/**
* Update email account warmup
*/
async updateEmailAccountWarmup(emailAccountId, params) {
const response = await this.withRetry(() => this.apiClient.post(`/email-accounts/${emailAccountId}/warmup`, params), 'update email account warmup');
return response.data;
}
/**
* Get campaign email accounts
*/
async getCampaignEmailAccounts(campaignId) {
const response = await this.withRetry(() => this.apiClient.get(`/campaigns/${campaignId}/email-accounts`), 'get campaign email accounts');
return response.data;
}
/**
* Bulk update email account settings
*/
async bulkUpdateEmailAccountSettings(params) {
const response = await this.withRetry(() => this.apiClient.put('/email-accounts/bulk-update', params), 'bulk update email account settings');
return response.data;
}
/**
* Get email account sending limits
*/
async getEmailAccountSendingLimits(accountId) {
const response = await this.withRetry(() => this.apiClient.get(`/email-accounts/${accountId}/sending-limits`), 'get email account sending limits');
return response.data;
}
/**
* Update email account sending limits
*/
async updateEmailAccountSendingLimits(accountId, params) {
const response = await this.withRetry(() => this.apiClient.put(`/email-accounts/${accountId}/sending-limits`, params), 'update email account sending limits');
return response.data;
}
}
//# sourceMappingURL=client.js.map