UNPKG

cakemail-mcp-server

Version:

Enterprise MCP server for Cakemail API integration with Claude AI - includes comprehensive template management, list management, sub-account management, BEEeditor visual email design, and advanced analytics

338 lines 12.3 kB
export const emailTools = [ { name: 'cakemail_send_email', description: 'Send an email using Cakemail v2 Email API (supports both transactional and marketing emails)', inputSchema: { type: 'object', properties: { email: { type: 'string', description: 'Recipient email address', format: 'email' }, sender_id: { type: 'string', description: 'Sender ID to use for the email' }, subject: { type: 'string', description: 'Email subject line' }, html_content: { type: 'string', description: 'HTML email content (optional if template_id provided)' }, text_content: { type: 'string', description: 'Plain text email content (optional)' }, template_id: { type: 'string', description: 'Template ID to use instead of content (optional)' }, list_id: { type: 'string', description: 'List ID for the email (optional)' }, email_type: { type: 'string', enum: ['transactional', 'marketing'], description: 'Email type (defaults to transactional)', default: 'transactional' }, }, required: ['email', 'sender_id', 'subject'], }, }, { name: 'cakemail_get_email', description: 'Retrieve email status and details by email ID', inputSchema: { type: 'object', properties: { email_id: { type: 'string', description: 'UUID of the email to retrieve', format: 'uuid' } }, required: ['email_id'], }, }, { name: 'cakemail_render_email', description: 'Render email content (get HTML/text preview)', inputSchema: { type: 'object', properties: { email_id: { type: 'string', description: 'UUID of the email to render', format: 'uuid' }, as_submitted: { type: 'boolean', description: 'Render the original submitted content', default: false }, tracking: { type: 'boolean', description: 'Enable tracking in rendered content', default: false } }, required: ['email_id'], }, }, { name: 'cakemail_get_email_logs', description: 'Retrieve email activity logs with filtering and pagination', inputSchema: { type: 'object', properties: { log_type: { type: 'string', enum: ['all', 'submitted', 'queued', 'delivered', 'rejected', 'error', 'open', 'click', 'bounce', 'spam', 'unsubscribe', 'global_unsubscribe'], description: 'Type of logs to retrieve', default: 'all' }, email_id: { type: 'string', description: 'Filter logs for specific email ID (UUID)', format: 'uuid' }, iso_time: { type: 'boolean', description: 'Convert timestamps to ISO format', default: false }, page: { type: 'integer', minimum: 1, description: 'Page number for pagination', default: 1 }, per_page: { type: 'integer', minimum: 1, maximum: 100, description: 'Number of logs per page', default: 50 }, start_time: { type: 'integer', description: 'Start time as Unix timestamp' }, end_time: { type: 'integer', description: 'End time as Unix timestamp' }, tags: { type: 'string', description: 'Tags filter as JSON string (recursive filter syntax)' }, providers: { type: 'string', description: 'Providers filter as JSON string (recursive filter syntax)' }, sort: { type: 'string', description: 'Sort field with direction (e.g., "-time", "+id")', default: '-time' } }, required: [], }, }, { name: 'cakemail_get_email_stats', description: 'Retrieve email statistics with time intervals', inputSchema: { type: 'object', properties: { interval: { type: 'string', enum: ['hour', 'day', 'week', 'month'], description: 'Time interval for statistics aggregation', default: 'day' }, iso_time: { type: 'boolean', description: 'Convert timestamps to ISO format', default: false }, start_time: { type: 'integer', description: 'Start time as Unix timestamp' }, end_time: { type: 'integer', description: 'End time as Unix timestamp' }, providers: { type: 'string', description: 'Providers filter as JSON string (recursive filter syntax)' }, tags: { type: 'string', description: 'Tags filter as JSON string (recursive filter syntax)' } }, required: [], }, }, { name: 'cakemail_send_transactional_email', description: 'Send a transactional email (helper for cakemail_send_email with type=transactional)', inputSchema: { type: 'object', properties: { email: { type: 'string', description: 'Recipient email address', format: 'email' }, sender_id: { type: 'string', description: 'Sender ID to use for the email' }, subject: { type: 'string', description: 'Email subject line' }, html_content: { type: 'string', description: 'HTML email content (optional if template_id provided)' }, text_content: { type: 'string', description: 'Plain text email content (optional)' }, template_id: { type: 'string', description: 'Template ID to use instead of content (optional)' }, list_id: { type: 'string', description: 'List ID for the email (optional)' }, }, required: ['email', 'sender_id', 'subject'], }, }, { name: 'cakemail_send_marketing_email', description: 'Send a marketing email (helper for cakemail_send_email with type=marketing)', inputSchema: { type: 'object', properties: { email: { type: 'string', description: 'Recipient email address', format: 'email' }, sender_id: { type: 'string', description: 'Sender ID to use for the email' }, subject: { type: 'string', description: 'Email subject line' }, html_content: { type: 'string', description: 'HTML email content (optional if template_id provided)' }, text_content: { type: 'string', description: 'Plain text email content (optional)' }, template_id: { type: 'string', description: 'Template ID to use instead of content (optional)' }, list_id: { type: 'string', description: 'List ID for the email (optional)' }, }, required: ['email', 'sender_id', 'subject'], }, }, { name: 'cakemail_get_email_logs_with_analysis', description: 'Retrieve email logs with automatic performance analysis and insights', inputSchema: { type: 'object', properties: { log_type: { type: 'string', enum: ['all', 'submitted', 'queued', 'delivered', 'rejected', 'error', 'open', 'click', 'bounce', 'spam', 'unsubscribe', 'global_unsubscribe'], description: 'Type of logs to retrieve', default: 'all' }, email_id: { type: 'string', description: 'Filter logs for specific email ID (UUID)', format: 'uuid' }, iso_time: { type: 'boolean', description: 'Convert timestamps to ISO format', default: false }, page: { type: 'integer', minimum: 1, description: 'Page number for pagination', default: 1 }, per_page: { type: 'integer', minimum: 1, maximum: 100, description: 'Number of logs per page', default: 50 }, start_time: { type: 'integer', description: 'Start time as Unix timestamp' }, end_time: { type: 'integer', description: 'End time as Unix timestamp' }, tags: { type: 'string', description: 'Tags filter as JSON string (recursive filter syntax)' }, providers: { type: 'string', description: 'Providers filter as JSON string (recursive filter syntax)' }, sort: { type: 'string', description: 'Sort field with direction (e.g., "-time", "+id")', default: '-time' } }, required: [], }, }, { name: 'cakemail_debug_email_access', description: 'Debug email API access and test different access patterns', inputSchema: { type: 'object', properties: { email_id: { type: 'string', description: 'Optional: specific email ID to test access (UUID)', format: 'uuid' } }, required: [], }, } ]; //# sourceMappingURL=email-tools.js.map