Smartlead MCP Server
About
Smartlead MCP Server is a Model Context Protocol (MCP) server for Smartlead campaign management integration. It provides tools for creating and managing campaigns, updating campaign settings, and managing campaign sequences, email accounts, and leads.
Details
- Author
- lkm1developer
- GitHub stars
- 3
- Downloads
- 278
- Categories
- Other
Jump to
- Create new campaigns in Smartlead
- Update campaign schedule and general settings
- Get and list campaigns with filtering
- Manage campaign email sequences (save, get, update, delete)
- Manage email accounts in campaigns (add, update, delete)
- Manage leads in campaigns (add, update, delete, up to 100 per call)
Install dependencies with npm install, create a .env file with your SMARTLEAD_API_KEY, then build using npm run build and start with npm start. To integrate with Claude, add the server to the MCP settings file (cline_mcp_settings.json for the VSCode extension or claude_desktop_config.json for the desktop app) with the command, arguments, and environment variables.
Smartlead MCP Server
This is a Model Context Protocol (MCP) server for Smartlead campaign management integration. It provides tools for creating and managing campaigns, updating campaign settings, and managing campaign sequences.
Features
- Create new campaigns
- Update campaign schedule settings
- Update campaign general settings
- Get campaign details
- List all campaigns with filtering options
- Manage campaign email sequences (save, get, update, delete)
- Manage email accounts in campaigns (add, update, delete)
- Manage leads in campaigns (add, update, delete)
Installation
1. Clone the repository
2. Install dependencies:
npm install
3. Create a .env file based on .env.example and add your Smartlead API key:
SMARTLEAD_API_KEY=your_api_key_here
4. Build the project:
npm run build
Usage
Standalone Usage
To start the server directly:
npm start
Integration with Claude
To use this MCP server with Claude, you need to add it to the MCP settings file:
1. For Claude VSCode extension, add it to c:\Users\<username>\AppData\Roaming\Code\User\globalStorage\saoudrizwan.claude-dev\settings\cline_mcp_settings.json
2. For Claude desktop app, add it to %APPDATA%\Claude\claude_desktop_config.json on Windows
Example configuration:
{
"mcpServers": {
"smartlead": {
"command": "node",
"args": ["E:/mcp-servers/smartlead/dist/index.js"],
"env": {
"SMARTLEAD_API_KEY": "your_api_key_here"
},
"disabled": false,
"autoApprove": []
}
}
}
Replace your_api_key_here with your actual Smartlead API key.
Configuration
The server can be configured using environment variables:
- SMARTLEAD_API_KEY (required): Your Smartlead API key
- SMARTLEAD_API_URL (optional): Custom API URL (defaults to https://server.smartlead.ai/api/v1)
- SMARTLEAD_RETRY_MAX_ATTEMPTS: Maximum retry attempts for API calls (default: 3)
- SMARTLEAD_RETRY_INITIAL_DELAY: Initial delay in milliseconds for retries (default: 1000)
- SMARTLEAD_RETRY_MAX_DELAY: Maximum delay in milliseconds for retries (default: 10000)
- SMARTLEAD_RETRY_BACKOFF_FACTOR: Backoff factor for retry delays (default: 2)
Available Tools
smartlead_create_campaign
Create a new campaign in Smartlead.
Parameters:
- name (required): Name of the campaign
- client_id (optional): Client ID for the campaign
smartlead_update_campaign_schedule
Update a campaign's schedule settings.
Parameters:
- campaign_id (required): ID of the campaign to update
- timezone: Timezone for the campaign (e.g., "America/Los_Angeles")
- days_of_the_week: Days of the week to send emails (1-7, where 1 is Monday)
- start_hour: Start hour in 24-hour format (e.g., "09:00")
- end_hour: End hour in 24-hour format (e.g., "17:00")
- min_time_btw_emails: Minimum time between emails in minutes
- max_new_leads_per_day: Maximum number of new leads per day
- schedule_start_time: Schedule start time in ISO format
smartlead_update_campaign_settings
Update a campaign's general settings.
Parameters:
- campaign_id (required): ID of the campaign to update
- name: New name for the campaign
- status: Status of the campaign (active, paused, completed)
- settings: Additional campaign settings
smartlead_get_campaign
Get details of a specific campaign by ID.
Parameters:
- campaign_id (required): ID of the campaign to retrieve
smartlead_list_campaigns
List all campaigns with optional filtering.
Parameters:
- status: Filter campaigns by status (active, paused, completed, all)
- limit: Maximum number of campaigns to return
- offset: Offset for pagination
smartlead_save_campaign_sequence
Save a sequence of emails for a campaign with A/B testing variants.
Parameters:
- campaign_id (required): ID of the campaign
- sequences (required): Array of email sequence items, each with:
- id: ID of the sequence (only for updates, omit when creating)
- seq_number (required): Sequence number (order in the sequence)
- seq_delay_details (required): Delay settings with:
- delay_in_days (required): Days to wait before sending this email
- variant_distribution_type: Type of variant distribution (MANUAL_EQUAL, MANUAL_PERCENTAGE, AI_EQUAL)
- lead_distribution_percentage: Sample percentage size of the lead pool to use to find the winner
- winning_metric_property: Metric to use for determining the winning variant (OPEN_RATE, CLICK_RATE, REPLY_RATE, POSITIVE_REPLY_RATE)
- seq_variants: Array of email variants, each with:
- subject (required): Email subject line
- email_body (required): Email body content (HTML)
- variant_label (required): Label for the variant (e.g., "A", "B", "C")
- id: ID of the variant (only for updates, omit when creating)
- variant_distribution_percentage: Percentage of leads to receive this variant
- subject: Email subject line (for simple follow-ups, blank makes it in the same thread)
- email_body: Email body content (HTML) for simple follow-ups
smartlead_get_campaign_sequence
Get the sequence of emails for a campaign.
Parameters:
- campaign_id (required): ID of the campaign
smartlead_update_campaign_sequence
Update a specific email in a campaign sequence.
Parameters:
- campaign_id (required): ID of the campaign
- sequence_id (required): ID of the sequence email to update
- subject: Updated email subject line
- body: Updated email body content
- wait_days: Updated days to wait before sending this email
smartlead_delete_campaign_sequence
Delete a specific email from a campaign sequence.
Parameters:
- campaign_id (required): ID of the campaign
- sequence_id (required): ID of the sequence email to delete
smartlead_add_email_account_to_campaign
Add an email account to a campaign.
Parameters:
- campaign_id (required): ID of the campaign
- email_account_id (required): ID of the email account to add
smartlead_update_email_account_in_campaign
Update an email account in a campaign.
Parameters:
- campaign_id (required): ID of the campaign
- email_account_id (required): ID of the email account to update
- settings: Settings for the email account in this campaign
smartlead_delete_email_account_from_campaign
Remove an email account from a campaign.
Parameters:
- campaign_id (required): ID of the campaign
- email_account_id (required): ID of the email account to remove
smartlead_add_lead_to_campaign
Add leads to a campaign (up to 100 leads at once).
Parameters:
- campaign_id (required): ID of the campaign
- lead_list (required): Array of lead information objects (max 100), each with:
- email (required): Email address of the lead
- first_name: First name of the lead
- last_name: Last name of the lead
- company_name: Company name of the lead
- phone_number: Phone number of the lead
- website: Website of the lead
- location: Location of the lead
- custom_fields: Custom fields for the lead (max 20 fields)
- linkedin_profile: LinkedIn profile URL of the lead
- company_url: Company URL of the lead
- settings: Settings for lead addition:
- ignore_global_block_list: If true, uploaded leads will bypass the global block list
- ignore_unsubscribe_list: If true, leads will bypass the comparison with unsubscribed leads
- ignore_community_bounce_list: If true, uploaded leads will bypass any leads that bounced across the entire userbase
- ignore_duplicate_leads_in_other_campaign: If true, leads will NOT bypass the comparison with other campaigns
smartlead_update_lead_in_campaign
Update a lead in a campaign.
Parameters:
- campaign_id (required): ID of the campaign
- lead_id (required): ID of the lead to update
- lead (required): Updated lead information with:
- email: Email address of the lead
- first_name: First name of the lead
- last_name: Last name of the lead
- company: Company of the lead
- custom_variables: Custom variables for the lead
smartlead_delete_lead_from_campaign
Remove a lead from a campaign.
Parameters:
- campaign_id (required): ID of the campaign
- lead_id (required): ID of the lead to remove
License
MIT
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.



