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
544 lines • 23.3 kB
JavaScript
/**
* SmartLead MCP Server - Smart Delivery Tools
*
* MCP tools for smart delivery API endpoints.
* Provides tools for placement tests, spam analysis, and delivery optimization.
*
* @author LeadMagic Team
* @version 1.5.0
*/
import { z } from 'zod';
// ================================
// SCHEMAS
// ================================
const CreateManualPlacementTestSchema = z.object({
test_name: z.string(),
email_content: z.string(),
subject: z.string(),
from_email: z.string().email(),
to_emails: z.array(z.string().email()),
});
const CreateAutomatedPlacementTestSchema = z.object({
test_name: z.string(),
email_content: z.string(),
subject: z.string(),
from_email: z.string().email(),
schedule: z.object({
frequency: z.string(),
time: z.string(),
}),
});
const GetSpamTestDetailsSchema = z.object({
test_id: z.number().int().positive(),
});
const DeleteTestsInBulkSchema = z.object({
test_ids: z.array(z.number().int().positive()),
});
const StopAutomatedTestSchema = z.object({
test_id: z.number().int().positive(),
});
const ListAllTestsSchema = z.object({
page: z.number().int().positive().optional(),
limit: z.number().int().positive().optional(),
status: z.string().optional(),
});
const GetProviderWiseReportSchema = z.object({
test_id: z.number().int().positive(),
date_range: z
.object({
start_date: z.string(),
end_date: z.string(),
})
.optional(),
});
const GetGeoWiseReportSchema = z.object({
test_id: z.number().int().positive(),
date_range: z
.object({
start_date: z.string(),
end_date: z.string(),
})
.optional(),
});
const GetSenderAccountWiseReportSchema = z.object({
test_id: z.number().int().positive(),
});
const GetSpamFilterReportSchema = z.object({
test_id: z.number().int().positive(),
});
const GetDkimDetailsSchema = z.object({
test_id: z.number().int().positive(),
});
const GetSpfDetailsSchema = z.object({
test_id: z.number().int().positive(),
});
const GetRdnsReportSchema = z.object({
test_id: z.number().int().positive(),
});
const GetSenderAccountListSchema = z.object({
test_id: z.number().int().positive(),
});
const GetBlacklistsSchema = z.object({
test_id: z.number().int().positive(),
});
const GetDomainBlacklistSchema = z.object({
test_id: z.number().int().positive(),
});
const GetSpamTestEmailContentSchema = z.object({
test_id: z.number().int().positive(),
});
const GetIpBlacklistCountSchema = z.object({
test_id: z.number().int().positive(),
});
const GetEmailReplyHeadersSchema = z.object({
test_id: z.number().int().positive(),
});
const GetScheduleHistorySchema = z.object({
test_id: z.number().int().positive(),
});
const GetIpDetailsSchema = z.object({
test_id: z.number().int().positive(),
});
const GetMailboxSummarySchema = z.object({
test_id: z.number().int().positive(),
});
const GetMailboxCountSchema = z.object({
test_id: z.number().int().positive(),
});
const CreateFolderSchema = z.object({
name: z.string(),
description: z.string().optional(),
});
const GetFolderByIdSchema = z.object({
folder_id: z.number().int().positive(),
});
const DeleteFolderSchema = z.object({
folder_id: z.number().int().positive(),
});
// ================================
// TOOL REGISTRATION
// ================================
/**
* Register smart delivery tools with the MCP server
*/
export function registerSmartDeliveryTools(server, client, formatSuccessResponse, handleError) {
// Region wise Provider IDs
server.registerTool('smartlead_get_region_wise_provider_ids', {
title: 'Get Region Wise Provider IDs',
description: 'Retrieve provider IDs organized by geographic regions for smart delivery optimization.',
inputSchema: z.object({}).shape,
}, async (params) => {
try {
const result = await client.smartDelivery.getRegionWiseProviderIds();
return formatSuccessResponse('Retrieved region wise provider IDs', result, `Provider mapping available for delivery optimization`);
}
catch (error) {
return handleError(error);
}
});
// Create a Manual Placement Test
server.registerTool('smartlead_create_manual_placement_test', {
title: 'Create Manual Placement Test',
description: 'Create a manual placement test to check email deliverability across different providers.',
inputSchema: CreateManualPlacementTestSchema.shape,
}, async (params) => {
try {
const validatedParams = CreateManualPlacementTestSchema.parse(params);
const result = await client.smartDelivery.createManualPlacementTest(validatedParams);
return formatSuccessResponse(`Created manual placement test: ${validatedParams.test_name}`, result, `Testing ${validatedParams.to_emails.length} email addresses`);
}
catch (error) {
return handleError(error);
}
});
// Create an Automated Placement Test
server.registerTool('smartlead_create_automated_placement_test', {
title: 'Create Automated Placement Test',
description: 'Create an automated placement test that runs on a schedule for continuous monitoring.',
inputSchema: CreateAutomatedPlacementTestSchema.shape,
}, async (params) => {
try {
const validatedParams = CreateAutomatedPlacementTestSchema.parse(params);
const result = await client.smartDelivery.createAutomatedPlacementTest(validatedParams);
return formatSuccessResponse(`Created automated placement test: ${validatedParams.test_name}`, result, `Scheduled: ${validatedParams.schedule.frequency} at ${validatedParams.schedule.time}`);
}
catch (error) {
return handleError(error);
}
});
// Spam Test Details
server.registerTool('smartlead_get_spam_test_details', {
title: 'Get Spam Test Details',
description: 'Retrieve detailed results and analysis for a specific spam test.',
inputSchema: GetSpamTestDetailsSchema.shape,
}, async (params) => {
try {
const validatedParams = GetSpamTestDetailsSchema.parse(params);
const result = await client.smartDelivery.getSpamTestDetails(validatedParams.test_id);
return formatSuccessResponse(`Retrieved spam test details for test ${validatedParams.test_id}`, result, `Spam analysis results available`);
}
catch (error) {
return handleError(error);
}
});
// Delete Smart Delivery Tests in Bulk
server.registerTool('smartlead_delete_tests_in_bulk', {
title: 'Delete Tests in Bulk',
description: 'Delete multiple smart delivery tests at once for cleanup purposes.',
inputSchema: DeleteTestsInBulkSchema.shape,
}, async (params) => {
try {
const validatedParams = DeleteTestsInBulkSchema.parse(params);
const result = await client.smartDelivery.deleteTestsInBulk(validatedParams);
return formatSuccessResponse(`Deleted ${validatedParams.test_ids.length} tests in bulk`, result);
}
catch (error) {
return handleError(error);
}
});
// Stop an Automated Smart Delivery Test
server.registerTool('smartlead_stop_automated_test', {
title: 'Stop Automated Test',
description: 'Stop a running automated placement test.',
inputSchema: StopAutomatedTestSchema.shape,
}, async (params) => {
try {
const validatedParams = StopAutomatedTestSchema.parse(params);
const result = await client.smartDelivery.stopAutomatedTest(validatedParams.test_id);
return formatSuccessResponse(`Stopped automated test ${validatedParams.test_id}`, result);
}
catch (error) {
return handleError(error);
}
});
// List all Tests
server.registerTool('smartlead_list_all_tests', {
title: 'List All Tests',
description: 'Retrieve a list of all smart delivery tests with optional filtering.',
inputSchema: ListAllTestsSchema.shape,
}, async (params) => {
try {
const validatedParams = ListAllTestsSchema.parse(params);
const result = await client.smartDelivery.listAllTests(validatedParams);
return formatSuccessResponse('Retrieved all smart delivery tests', result, `Page ${validatedParams.page || 1}, Status: ${validatedParams.status || 'all'}`);
}
catch (error) {
return handleError(error);
}
});
// Provider wise report
server.registerTool('smartlead_get_provider_wise_report', {
title: 'Get Provider Wise Report',
description: 'Retrieve a detailed report showing performance across different email providers.',
inputSchema: GetProviderWiseReportSchema.shape,
}, async (params) => {
try {
const validatedParams = GetProviderWiseReportSchema.parse(params);
const result = await client.smartDelivery.getProviderWiseReport(validatedParams);
return formatSuccessResponse(`Retrieved provider wise report for test ${validatedParams.test_id}`, result, `Performance analysis by email provider`);
}
catch (error) {
return handleError(error);
}
});
// Geo wise report
server.registerTool('smartlead_get_geo_wise_report', {
title: 'Get Geo Wise Report',
description: 'Retrieve a detailed report showing performance across different geographic regions.',
inputSchema: GetGeoWiseReportSchema.shape,
}, async (params) => {
try {
const validatedParams = GetGeoWiseReportSchema.parse(params);
const result = await client.smartDelivery.getGeoWiseReport(validatedParams);
return formatSuccessResponse(`Retrieved geo wise report for test ${validatedParams.test_id}`, result, `Performance analysis by geographic region`);
}
catch (error) {
return handleError(error);
}
});
// Sender Account wise report
server.registerTool('smartlead_get_sender_account_wise_report', {
title: 'Get Sender Account Wise Report',
description: 'Retrieve a detailed report showing performance for different sender accounts.',
inputSchema: GetSenderAccountWiseReportSchema.shape,
}, async (params) => {
try {
const validatedParams = GetSenderAccountWiseReportSchema.parse(params);
const result = await client.smartDelivery.getSenderAccountWiseReport(validatedParams.test_id);
return formatSuccessResponse(`Retrieved sender account wise report for test ${validatedParams.test_id}`, result, `Performance analysis by sender account`);
}
catch (error) {
return handleError(error);
}
});
// Spam filter report
server.registerTool('smartlead_get_spam_filter_report', {
title: 'Get Spam Filter Report',
description: 'Retrieve a detailed spam filter analysis report for a test.',
inputSchema: GetSpamFilterReportSchema.shape,
}, async (params) => {
try {
const validatedParams = GetSpamFilterReportSchema.parse(params);
const result = await client.smartDelivery.getSpamFilterReport(validatedParams.test_id);
return formatSuccessResponse(`Retrieved spam filter report for test ${validatedParams.test_id}`, result, `Spam filter analysis available`);
}
catch (error) {
return handleError(error);
}
});
// DKIM Details
server.registerTool('smartlead_get_dkim_details', {
title: 'Get DKIM Details',
description: 'Retrieve DKIM authentication details for a specific test.',
inputSchema: GetDkimDetailsSchema.shape,
}, async (params) => {
try {
const validatedParams = GetDkimDetailsSchema.parse(params);
const result = await client.smartDelivery.getDkimDetails(validatedParams.test_id);
return formatSuccessResponse(`Retrieved DKIM details for test ${validatedParams.test_id}`, result, `DKIM authentication analysis available`);
}
catch (error) {
return handleError(error);
}
});
// SPF Details
server.registerTool('smartlead_get_spf_details', {
title: 'Get SPF Details',
description: 'Retrieve SPF record details for a specific test.',
inputSchema: GetSpfDetailsSchema.shape,
}, async (params) => {
try {
const validatedParams = GetSpfDetailsSchema.parse(params);
const result = await client.smartDelivery.getSpfDetails(validatedParams.test_id);
return formatSuccessResponse(`Retrieved SPF details for test ${validatedParams.test_id}`, result, `SPF record analysis available`);
}
catch (error) {
return handleError(error);
}
});
// rDNS report
server.registerTool('smartlead_get_rdns_report', {
title: 'Get rDNS Report',
description: 'Retrieve reverse DNS lookup report for a specific test.',
inputSchema: GetRdnsReportSchema.shape,
}, async (params) => {
try {
const validatedParams = GetRdnsReportSchema.parse(params);
const result = await client.smartDelivery.getRdnsReport(validatedParams.test_id);
return formatSuccessResponse(`Retrieved rDNS report for test ${validatedParams.test_id}`, result, `Reverse DNS analysis available`);
}
catch (error) {
return handleError(error);
}
});
// Sender Account List
server.registerTool('smartlead_get_sender_account_list', {
title: 'Get Sender Account List',
description: 'Retrieve list of sender accounts used in a specific test.',
inputSchema: GetSenderAccountListSchema.shape,
}, async (params) => {
try {
const validatedParams = GetSenderAccountListSchema.parse(params);
const result = await client.smartDelivery.getSenderAccountList(validatedParams.test_id);
return formatSuccessResponse(`Retrieved sender account list for test ${validatedParams.test_id}`, result, `Sender account information available`);
}
catch (error) {
return handleError(error);
}
});
// Blacklists
server.registerTool('smartlead_get_blacklists', {
title: 'Get Blacklists',
description: 'Retrieve blacklist status for a specific test.',
inputSchema: GetBlacklistsSchema.shape,
}, async (params) => {
try {
const validatedParams = GetBlacklistsSchema.parse(params);
const result = await client.smartDelivery.getBlacklists(validatedParams.test_id);
return formatSuccessResponse(`Retrieved blacklist status for test ${validatedParams.test_id}`, result, `Blacklist analysis available`);
}
catch (error) {
return handleError(error);
}
});
// Domain Blacklist
server.registerTool('smartlead_get_domain_blacklist', {
title: 'Get Domain Blacklist',
description: 'Retrieve domain blacklist status for a specific test.',
inputSchema: GetDomainBlacklistSchema.shape,
}, async (params) => {
try {
const validatedParams = GetDomainBlacklistSchema.parse(params);
const result = await client.smartDelivery.getDomainBlacklist(validatedParams.test_id);
return formatSuccessResponse(`Retrieved domain blacklist status for test ${validatedParams.test_id}`, result, `Domain blacklist analysis available`);
}
catch (error) {
return handleError(error);
}
});
// Spam Test Email Content
server.registerTool('smartlead_get_spam_test_email_content', {
title: 'Get Spam Test Email Content',
description: 'Retrieve the email content used in a specific spam test.',
inputSchema: GetSpamTestEmailContentSchema.shape,
}, async (params) => {
try {
const validatedParams = GetSpamTestEmailContentSchema.parse(params);
const result = await client.smartDelivery.getSpamTestEmailContent(validatedParams.test_id);
return formatSuccessResponse(`Retrieved email content for test ${validatedParams.test_id}`, result, `Test email content available`);
}
catch (error) {
return handleError(error);
}
});
// IP Blacklist Count
server.registerTool('smartlead_get_ip_blacklist_count', {
title: 'Get IP Blacklist Count',
description: 'Retrieve IP blacklist count for a specific test.',
inputSchema: GetIpBlacklistCountSchema.shape,
}, async (params) => {
try {
const validatedParams = GetIpBlacklistCountSchema.parse(params);
const result = await client.smartDelivery.getIpBlacklistCount(validatedParams.test_id);
return formatSuccessResponse(`Retrieved IP blacklist count for test ${validatedParams.test_id}`, result, `IP blacklist count available`);
}
catch (error) {
return handleError(error);
}
});
// Email Reply Headers
server.registerTool('smartlead_get_email_reply_headers', {
title: 'Get Email Reply Headers',
description: 'Retrieve email reply headers for a specific test.',
inputSchema: GetEmailReplyHeadersSchema.shape,
}, async (params) => {
try {
const validatedParams = GetEmailReplyHeadersSchema.parse(params);
const result = await client.smartDelivery.getEmailReplyHeaders(validatedParams.test_id);
return formatSuccessResponse(`Retrieved email reply headers for test ${validatedParams.test_id}`, result, `Email headers analysis available`);
}
catch (error) {
return handleError(error);
}
});
// Schedule History
server.registerTool('smartlead_get_schedule_history', {
title: 'Get Schedule History',
description: 'Retrieve schedule history for automated tests.',
inputSchema: GetScheduleHistorySchema.shape,
}, async (params) => {
try {
const validatedParams = GetScheduleHistorySchema.parse(params);
const result = await client.smartDelivery.getScheduleHistory(validatedParams.test_id);
return formatSuccessResponse(`Retrieved schedule history for test ${validatedParams.test_id}`, result, `Schedule history available`);
}
catch (error) {
return handleError(error);
}
});
// IP Details
server.registerTool('smartlead_get_ip_details', {
title: 'Get IP Details',
description: 'Retrieve IP address details for a specific test.',
inputSchema: GetIpDetailsSchema.shape,
}, async (params) => {
try {
const validatedParams = GetIpDetailsSchema.parse(params);
const result = await client.smartDelivery.getIpDetails(validatedParams.test_id);
return formatSuccessResponse(`Retrieved IP details for test ${validatedParams.test_id}`, result, `IP address information available`);
}
catch (error) {
return handleError(error);
}
});
// Mailbox Summary
server.registerTool('smartlead_get_mailbox_summary', {
title: 'Get Mailbox Summary',
description: 'Retrieve mailbox summary for a specific test.',
inputSchema: GetMailboxSummarySchema.shape,
}, async (params) => {
try {
const validatedParams = GetMailboxSummarySchema.parse(params);
const result = await client.smartDelivery.getMailboxSummary(validatedParams.test_id);
return formatSuccessResponse(`Retrieved mailbox summary for test ${validatedParams.test_id}`, result, `Mailbox summary available`);
}
catch (error) {
return handleError(error);
}
});
// Mailbox Count
server.registerTool('smartlead_get_mailbox_count', {
title: 'Get Mailbox Count',
description: 'Retrieve mailbox count for a specific test.',
inputSchema: GetMailboxCountSchema.shape,
}, async (params) => {
try {
const validatedParams = GetMailboxCountSchema.parse(params);
const result = await client.smartDelivery.getMailboxCount(validatedParams.test_id);
return formatSuccessResponse(`Retrieved mailbox count for test ${validatedParams.test_id}`, result, `Mailbox count available`);
}
catch (error) {
return handleError(error);
}
});
// Get All Folders
server.registerTool('smartlead_get_all_folders', {
title: 'Get All Folders',
description: 'Retrieve all smart delivery folders.',
inputSchema: z.object({}).shape,
}, async (params) => {
try {
const result = await client.smartDelivery.getAllFolders();
return formatSuccessResponse('Retrieved all smart delivery folders', result, `Found ${result.length || 0} folders`);
}
catch (error) {
return handleError(error);
}
});
// Create Folder
server.registerTool('smartlead_create_folder', {
title: 'Create Folder',
description: 'Create a new smart delivery folder.',
inputSchema: CreateFolderSchema.shape,
}, async (params) => {
try {
const validatedParams = CreateFolderSchema.parse(params);
const result = await client.smartDelivery.createFolder(validatedParams);
return formatSuccessResponse(`Created folder: ${validatedParams.name}`, result, `Folder ID: ${result.id || 'N/A'}`);
}
catch (error) {
return handleError(error);
}
});
// Get Folder by ID
server.registerTool('smartlead_get_folder_by_id', {
title: 'Get Folder by ID',
description: 'Retrieve a specific smart delivery folder by ID.',
inputSchema: GetFolderByIdSchema.shape,
}, async (params) => {
try {
const validatedParams = GetFolderByIdSchema.parse(params);
const result = await client.smartDelivery.getFolderById(validatedParams.folder_id);
return formatSuccessResponse(`Retrieved folder ${validatedParams.folder_id}`, result, `Folder: ${result.name || 'N/A'}`);
}
catch (error) {
return handleError(error);
}
});
// Delete Folder
server.registerTool('smartlead_delete_folder', {
title: 'Delete Folder',
description: 'Delete a smart delivery folder by ID.',
inputSchema: DeleteFolderSchema.shape,
}, async (params) => {
try {
const validatedParams = DeleteFolderSchema.parse(params);
const result = await client.smartDelivery.deleteFolder(validatedParams.folder_id);
return formatSuccessResponse(`Deleted folder ${validatedParams.folder_id}`, result);
}
catch (error) {
return handleError(error);
}
});
}
//# sourceMappingURL=smart-delivery.js.map