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

112 lines • 4.49 kB
/** * 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