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
399 lines • 15.4 kB
TypeScript
/**
* 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 type { SmartLeadConfig } from '../types/config.js';
import type { AnalyticsCampaignFollowUpReplyRateRequest, AnalyticsCampaignLeadsTakeForFirstReplyRequest, AnalyticsCampaignLeadToReplyTimeRequest, AnalyticsCampaignListRequest, AnalyticsCampaignOverallStatsRequest, AnalyticsCampaignResponseStatsRequest, AnalyticsCampaignStatusStatsRequest, AnalyticsClientListRequest, AnalyticsClientMonthWiseCountRequest, AnalyticsClientOverallStatsRequest, AnalyticsDayWiseOverallStatsRequest, AnalyticsLeadCategoryWiseResponseRequest, AnalyticsLeadOverallStatsRequest, AnalyticsMailboxDomainWiseHealthMetricsRequest, AnalyticsMailboxNameWiseHealthMetricsRequest, AnalyticsMailboxOverallStatsRequest, AnalyticsMailboxProviderWiseOverallPerformanceRequest, AnalyticsOverallStatsV2Request, AnalyticsTeamBoardOverallStatsRequest, CreateCampaignRequest, EmailSequence, ExportCampaignDataRequest, FetchCampaignAnalyticsByDateRangeRequest, GetCampaignSequenceAnalyticsRequest, GetCampaignsWithAnalyticsRequest, Lead, ListCampaignsRequest, ListLeadsRequest, UpdateCampaignScheduleRequest, UpdateCampaignSettingsRequest, UpdateLeadRequest } from '../types.js';
import { BaseSmartLeadClient } from './base.js';
interface EmailAccountRequest {
email: string;
password: string;
smtp_host: string;
smtp_port: number;
imap_host: string;
imap_port: number;
name?: string;
}
interface UpdateEmailAccountRequest {
name?: string;
settings?: Record<string, unknown>;
status?: 'active' | 'inactive' | 'warmup';
}
interface WarmupSettings {
email_account_id: number;
emails_per_day?: number;
warmup_reputation?: boolean;
ramp_up_increment?: number;
reply_rate_percentage?: number;
}
interface EmailAccountHealthParams {
start_date?: string;
end_date?: string;
metrics?: string[];
}
/**
* Main SmartLead API Client
*
* Unified client that provides access to all SmartLead API functionality
* through modular sub-clients for different API categories.
*/
export declare class SmartLeadClient extends BaseSmartLeadClient {
readonly campaigns: CampaignManagementClient;
readonly leads: LeadClient;
readonly analytics: AnalyticsClient;
readonly emailAccounts: EmailAccountManagementClient;
readonly clientManagement: ClientManagementClient;
readonly webhooks: WebhooksClient;
readonly smartDelivery: SmartDeliveryClient;
readonly statistics: StatisticsClient;
readonly smartSenders: SmartSendersClient;
constructor(config: SmartLeadConfig);
createCampaign(params: CreateCampaignRequest): Promise<{
success: boolean;
message?: string | undefined;
data?: unknown;
}>;
updateCampaignSchedule(campaignId: number, params: UpdateCampaignScheduleRequest): Promise<{
success: boolean;
message?: string | undefined;
data?: unknown;
}>;
updateCampaignSettings(campaignId: number, params: UpdateCampaignSettingsRequest): Promise<{
success: boolean;
message?: string | undefined;
data?: unknown;
}>;
updateCampaignStatus(campaignId: number, status: string): Promise<{
success: boolean;
message?: string | undefined;
data?: unknown;
}>;
getCampaign(campaignId: number): Promise<{
success: boolean;
message?: string | undefined;
data?: unknown;
}>;
listCampaigns(params?: ListCampaignsRequest): Promise<{
success: boolean;
message?: string | undefined;
data?: unknown;
}>;
saveCampaignSequence(campaignId: number, sequence: EmailSequence): Promise<{
success: boolean;
message?: string | undefined;
data?: unknown;
}>;
getCampaignSequence(campaignId: number): Promise<{
success: boolean;
message?: string | undefined;
data?: unknown;
}>;
getCampaignsWithAnalytics(params?: GetCampaignsWithAnalyticsRequest): Promise<{
success: boolean;
message?: string | undefined;
data?: unknown;
}>;
deleteCampaign(campaignId: number): Promise<{
success: boolean;
message?: string | undefined;
data?: unknown;
}>;
exportCampaignData(campaignId: number, params?: ExportCampaignDataRequest): Promise<{
success: boolean;
message?: string | undefined;
data?: unknown;
}>;
fetchCampaignAnalyticsByDateRange(campaignId: number, params: FetchCampaignAnalyticsByDateRangeRequest): Promise<{
success: boolean;
message?: string | undefined;
data?: unknown;
}>;
getCampaignSequenceAnalytics(campaignId: number, params?: GetCampaignSequenceAnalyticsRequest): Promise<{
success: boolean;
message?: string | undefined;
data?: unknown;
}>;
fetchAllCampaignsUsingLeadId(leadId: number): Promise<{
success: boolean;
message?: string | undefined;
data?: unknown;
}>;
listLeadsByCampaign(campaignId: number, params?: {
limit?: number;
offset?: number;
search?: string;
status?: string;
}): Promise<{
success: boolean;
message?: string | undefined;
data?: unknown;
}>;
fetchLeadCategories(): Promise<{
success: boolean;
message?: string | undefined;
data?: unknown;
}>;
fetchLeadByEmail(email: string): Promise<{
success: boolean;
message?: string | undefined;
data?: unknown;
}>;
addLeadsToCampaign(campaignId: number, leads: Lead[]): Promise<{
success: boolean;
message?: string | undefined;
data?: unknown;
}>;
resumeLeadByCampaign(campaignId: number, leadId: number): Promise<{
success: boolean;
message?: string | undefined;
data?: unknown;
}>;
pauseLeadByCampaign(campaignId: number, leadId: number): Promise<{
success: boolean;
message?: string | undefined;
data?: unknown;
}>;
deleteLeadByCampaign(campaignId: number, leadId: number): Promise<{
success: boolean;
message?: string | undefined;
data?: unknown;
}>;
unsubscribeLeadFromCampaign(campaignId: number, leadId: number): Promise<{
success: boolean;
message?: string | undefined;
data?: unknown;
}>;
unsubscribeLeadFromAllCampaigns(leadId: number): Promise<{
success: boolean;
message?: string | undefined;
data?: unknown;
}>;
addLeadToGlobalBlocklist(email: string): Promise<{
success: boolean;
message?: string | undefined;
data?: unknown;
}>;
fetchAllLeadsFromAccount(params?: ListLeadsRequest): Promise<{
success: boolean;
message?: string | undefined;
data?: unknown;
}>;
fetchLeadsFromGlobalBlocklist(params?: ListLeadsRequest): Promise<{
success: boolean;
message?: string | undefined;
data?: unknown;
}>;
updateLeadById(leadId: number, leadData: UpdateLeadRequest): Promise<{
success: boolean;
message?: string | undefined;
data?: unknown;
}>;
updateLeadCategory(campaignId: number, leadId: number, category: string): Promise<{
success: boolean;
message?: string | undefined;
data?: unknown;
}>;
fetchLeadMessageHistory(campaignId: number, leadId: number): Promise<{
success: boolean;
message?: string | undefined;
data?: unknown;
}>;
replyToLeadFromMasterInbox(campaignId: number, leadId: number, message: {
subject: string;
message: string;
}): Promise<{
success: boolean;
message?: string | undefined;
data?: unknown;
}>;
forwardReply(campaignId: number, leadId: number, forwardData: {
forward_to: string;
message?: string;
}): Promise<{
success: boolean;
message?: string | undefined;
data?: unknown;
}>;
getAnalyticsCampaignList(params?: AnalyticsCampaignListRequest): Promise<{
success: boolean;
message?: string | undefined;
data?: unknown;
}>;
getAnalyticsClientList(params?: AnalyticsClientListRequest): Promise<{
success: boolean;
message?: string | undefined;
data?: unknown;
}>;
getAnalyticsClientMonthWiseCount(params?: AnalyticsClientMonthWiseCountRequest): Promise<{
success: boolean;
message?: string | undefined;
data?: unknown;
}>;
getAnalyticsOverallStatsV2(params?: AnalyticsOverallStatsV2Request): Promise<{
success: boolean;
message?: string | undefined;
data?: unknown;
}>;
getAnalyticsDayWiseOverallStats(params?: AnalyticsDayWiseOverallStatsRequest): Promise<{
success: boolean;
message?: string | undefined;
data?: unknown;
}>;
getAnalyticsDayWisePositiveReplyStats(params?: AnalyticsDayWiseOverallStatsRequest): Promise<{
success: boolean;
message?: string | undefined;
data?: unknown;
}>;
getAnalyticsCampaignOverallStats(params?: AnalyticsCampaignOverallStatsRequest): Promise<{
success: boolean;
message?: string | undefined;
data?: unknown;
}>;
getAnalyticsClientOverallStats(params?: AnalyticsClientOverallStatsRequest): Promise<{
success: boolean;
message?: string | undefined;
data?: unknown;
}>;
getAnalyticsMailboxNameWiseHealthMetrics(params?: AnalyticsMailboxNameWiseHealthMetricsRequest): Promise<{
success: boolean;
message?: string | undefined;
data?: unknown;
}>;
getAnalyticsMailboxDomainWiseHealthMetrics(params?: AnalyticsMailboxDomainWiseHealthMetricsRequest): Promise<{
success: boolean;
message?: string | undefined;
data?: unknown;
}>;
getAnalyticsMailboxProviderWiseOverallPerformance(params?: AnalyticsMailboxProviderWiseOverallPerformanceRequest): Promise<{
success: boolean;
message?: string | undefined;
data?: unknown;
}>;
getAnalyticsTeamBoardOverallStats(params?: AnalyticsTeamBoardOverallStatsRequest): Promise<{
success: boolean;
message?: string | undefined;
data?: unknown;
}>;
getAnalyticsLeadOverallStats(params?: AnalyticsLeadOverallStatsRequest): Promise<{
success: boolean;
message?: string | undefined;
data?: unknown;
}>;
getAnalyticsLeadCategoryWiseResponse(params?: AnalyticsLeadCategoryWiseResponseRequest): Promise<{
success: boolean;
message?: string | undefined;
data?: unknown;
}>;
getAnalyticsCampaignLeadsTakeForFirstReply(params?: AnalyticsCampaignLeadsTakeForFirstReplyRequest): Promise<{
success: boolean;
message?: string | undefined;
data?: unknown;
}>;
getAnalyticsCampaignFollowUpReplyRate(params?: AnalyticsCampaignFollowUpReplyRateRequest): Promise<{
success: boolean;
message?: string | undefined;
data?: unknown;
}>;
getAnalyticsCampaignLeadToReplyTime(params?: AnalyticsCampaignLeadToReplyTimeRequest): Promise<{
success: boolean;
message?: string | undefined;
data?: unknown;
}>;
getAnalyticsCampaignResponseStats(params?: AnalyticsCampaignResponseStatsRequest): Promise<{
success: boolean;
message?: string | undefined;
data?: unknown;
}>;
getAnalyticsCampaignStatusStats(params?: AnalyticsCampaignStatusStatsRequest): Promise<{
success: boolean;
message?: string | undefined;
data?: unknown;
}>;
getAnalyticsMailboxOverallStats(params?: AnalyticsMailboxOverallStatsRequest): Promise<{
success: boolean;
message?: string | undefined;
data?: unknown;
}>;
addEmailAccount(params: EmailAccountRequest): Promise<{
success: boolean;
message?: string | undefined;
data?: unknown;
}>;
getAllEmailAccounts(): Promise<{
success: boolean;
message?: string | undefined;
data?: unknown;
}>;
getEmailAccountById(accountId: number): Promise<{
success: boolean;
message?: string | undefined;
data?: unknown;
}>;
updateEmailAccount(accountId: number, params: UpdateEmailAccountRequest): Promise<{
success: boolean;
message?: string | undefined;
data?: unknown;
}>;
deleteEmailAccount(_accountId: number): Promise<void>;
testEmailAccountConnection(accountId: number): Promise<{
success: boolean;
message?: string | undefined;
data?: unknown;
}>;
getEmailAccountWarmupStatus(accountId: number): Promise<{
success: boolean;
message?: string | undefined;
data?: unknown;
}>;
updateEmailAccountWarmupSettings(accountId: number, params: WarmupSettings): Promise<{
success: boolean;
message?: string | undefined;
data?: unknown;
}>;
getEmailAccountHealthMetrics(accountId: number, params?: EmailAccountHealthParams): Promise<{
success: boolean;
message?: string | undefined;
data?: unknown;
}>;
assignEmailAccountsToCampaign(campaignId: number, accountIds: number[]): Promise<{
success: boolean;
message?: string | undefined;
data?: unknown;
}>;
removeEmailAccountsFromCampaign(campaignId: number, accountIds: number[]): Promise<{
success: boolean;
message?: string | undefined;
data?: unknown;
}>;
listEmailAccountsPerCampaign(campaignId: number): Promise<{
success: boolean;
message?: string | undefined;
data?: unknown;
}>;
}
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 { SmartLeadConfig } from '../types/config.js';
export { BaseSmartLeadClient, SmartLeadError } from './base.js';
//# sourceMappingURL=index.d.ts.map