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
112 lines • 4.49 kB
JavaScript
/**
* SmartLead MCP Server - Smart Senders Tools
*
* MCP tools for smart senders API endpoints.
* Provides tools for domain management, vendor integration, and mailbox automation.
*
* @author LeadMagic Team
* @version 1.5.0
*/
import { z } from 'zod';
// ================================
// SCHEMAS
// ================================
const SearchDomainSchema = z.object({
domain: z.string(),
});
const AutoGenerateMailboxesSchema = z.object({
domain: z.string(),
count: z.number().int().positive(),
vendor_id: z.number().int().positive(),
naming_pattern: z.string().optional(),
});
const PlaceOrderForMailboxesSchema = z.object({
domain: z.string(),
mailboxes: z.array(z.object({
email: z.string().email(),
password: z.string(),
})),
vendor_id: z.number().int().positive(),
});
// ================================
// TOOL REGISTRATION
// ================================
/**
* Register smart senders tools with the MCP server
*/
export function registerSmartSendersTools(server, client, formatSuccessResponse, handleError) {
// Search Domain
server.registerTool('smartlead_search_domain', {
title: 'Search Domain',
description: 'Search for domain availability and information for smart senders setup.',
inputSchema: SearchDomainSchema.shape,
}, async (params) => {
try {
const validatedParams = SearchDomainSchema.parse(params);
const result = await client.smartSenders.searchDomain(validatedParams);
return formatSuccessResponse(`Searched domain: ${validatedParams.domain}`, result, `Domain status: ${result.data?.status || 'N/A'}`);
}
catch (error) {
return handleError(error);
}
});
// Get Vendors
server.registerTool('smartlead_get_vendors', {
title: 'Get Vendors',
description: 'Retrieve a list of available vendors for smart senders integration.',
inputSchema: z.object({}).shape,
}, async (params) => {
try {
const result = await client.smartSenders.getVendors();
return formatSuccessResponse('Retrieved available vendors', result, `Found ${result.data?.length || 0} vendors`);
}
catch (error) {
return handleError(error);
}
});
// Auto-generate-mailboxes
server.registerTool('smartlead_auto_generate_mailboxes', {
title: 'Auto Generate Mailboxes',
description: 'Automatically generate mailboxes for a domain with specified count and naming pattern.',
inputSchema: AutoGenerateMailboxesSchema.shape,
}, async (params) => {
try {
const validatedParams = AutoGenerateMailboxesSchema.parse(params);
const result = await client.smartSenders.autoGenerateMailboxes(validatedParams);
return formatSuccessResponse(`Generated ${validatedParams.count} mailboxes for domain ${validatedParams.domain}`, result, `Vendor ID: ${validatedParams.vendor_id}`);
}
catch (error) {
return handleError(error);
}
});
// Place order for mailboxes
server.registerTool('smartlead_place_order_for_mailboxes', {
title: 'Place Order for Mailboxes',
description: 'Place an order for specific mailboxes with a vendor.',
inputSchema: PlaceOrderForMailboxesSchema.shape,
}, async (params) => {
try {
const validatedParams = PlaceOrderForMailboxesSchema.parse(params);
const result = await client.smartSenders.placeOrderForMailboxes(validatedParams);
return formatSuccessResponse(`Placed order for ${validatedParams.mailboxes.length} mailboxes on domain ${validatedParams.domain}`, result, `Vendor ID: ${validatedParams.vendor_id}`);
}
catch (error) {
return handleError(error);
}
});
// Get Domain List
server.registerTool('smartlead_get_domain_list', {
title: 'Get Domain List',
description: 'Retrieve a list of all domains configured for smart senders.',
inputSchema: z.object({}).shape,
}, async (params) => {
try {
const result = await client.smartSenders.getDomainList();
return formatSuccessResponse('Retrieved domain list', result, `Found ${result.data?.length || 0} domains`);
}
catch (error) {
return handleError(error);
}
});
}
//# sourceMappingURL=smart-senders.js.map