Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Lemlist MCP connector

OAuth 2.1/DCR MarketingCRM & Sales

Connect to Lemlist MCP. Manage outbound sales campaigns, leads, email sequences, and LinkedIn outreach from your AI workflows.

Lemlist MCP connector

  1. Terminal window
    npm install @scalekit-sdk/node

    Full SDK reference: Node.js | Python

  2. Add your Scalekit credentials to your .env file. Find values in app.scalekit.com > Developers > API Credentials.

    .env
    SCALEKIT_ENVIRONMENT_URL=<your-environment-url>
    SCALEKIT_CLIENT_ID=<your-client-id>
    SCALEKIT_CLIENT_SECRET=<your-client-secret>
  3. quickstart.ts
    import { ScalekitClient } from '@scalekit-sdk/node'
    import 'dotenv/config'
    const scalekit = new ScalekitClient(
    process.env.SCALEKIT_ENV_URL,
    process.env.SCALEKIT_CLIENT_ID,
    process.env.SCALEKIT_CLIENT_SECRET,
    )
    const actions = scalekit.actions
    const connector = 'lemlistmcp'
    const identifier = 'user_123'
    // Generate an authorization link for the user
    const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
    console.log('Authorize Lemlist MCP:', link)
    process.stdout.write('Press Enter after authorizing...')
    await new Promise(r => process.stdin.once('data', r))
    // Make your first call
    const result = await actions.executeTool({
    connector,
    identifier,
    toolName: 'lemlistmcp_check_domain_health',
    toolInput: {},
    })
    console.log(result)

Connect this agent connector to let your agent:

  • Readiness validate campaign — Validate that a campaign is ready to launch by checking step content, sender configuration, DNS health, and daily limits
  • Update settings, sequence step, lead variables — Update settings for a campaign or warmup mailbox entity
  • Account test email, disconnect email, connect email — Test SMTP/IMAP connectivity of an email account
  • State set campaign — Start, pause, archive, or unarchive a campaign to change its running state
  • Senders set campaign — Assign team members as senders for a campaign’s outreach messages
  • Send message — Send a message to a contact or lead via email, LinkedIn, WhatsApp, or SMS from the Lemlist inbox

Use the exact tool names from the Tool list below when you call execute_tool. If you’re not sure which name to use, list the tools available for the current user first.

lemlistmcp_add_contacts_to_list # Add existing CRM contacts to a contact list by list ID. 2 params

Add existing CRM contacts to a contact list by list ID.

Name Type Required Description
contactIds array required Contact IDs to add to the list (max 1,000)
listId string required Target contact list ID in clt_xxx format. Get valid IDs from get_contact_lists.
lemlistmcp_add_leads_to_campaign # Add one or more leads (max 100) to a campaign. Each lead requires at least one identifying field such as email, first name, last name, or company name. 7 params

Add one or more leads (max 100) to a campaign. Each lead requires at least one identifying field such as email, first name, last name, or company name.

Name Type Required Description
campaignId string required The campaign ID (starts with cam_)
leads array required Leads to add (1..100). Each lead must have at least one identifying field.
deduplicate boolean optional Avoid duplicates across campaigns (default: false). When true, existing leads in OTHER campaigns are reported as outcome="skippedDuplicateCrossCampaign".
findEmail boolean optional ⚠️ COSTS CREDITS per lead: Find email address from other lead data (LinkedIn, name, company)
findPhone boolean optional ⚠️ COSTS CREDITS per lead: Find phone number from other lead data
linkedinEnrichment boolean optional ⚠️ COSTS CREDITS per lead: Enrich each lead with LinkedIn profile data (job title, company info, etc.)
verifyEmail boolean optional ⚠️ COSTS CREDITS per lead: Verify if the email address is valid and deliverable
lemlistmcp_add_sequence_step # Add a step to an existing campaign sequence. Use only for modifying already-created campaigns — not for initial campaign creation. 19 params

Add a step to an existing campaign sequence. Use only for modifying already-created campaigns — not for initial campaign creation.

Name Type Required Description
campaignId string required Campaign ID (cam_xxx)
delay number required Days to wait after previous step. Must be 0 for "sendToAnotherCampaign" (the lemlist API does not accept a delay for this type, transfer is immediate).
sequenceId string required Sequence ID (seq_xxx)
userConfirmed boolean required Must be true after user confirms
altMessage string optional Alternative message variation for "linkedinSend" steps (used as second-attempt content when applicable).
conditionKey string optional Condition to check (REQUIRED when type is "conditional"). E.g. emailsOpened, linkedinInviteAccepted.
delayType string optional REQUIRED for all conditional steps. "within" = must happen within delay days, "waitUntil" = wait indefinitely. For field-check conditions (hasEmailAddress, hasLinkedinUrl, etc.), use "within" with delay 0.
emailStatusFilter array optional Only for hasEmailAddress condition. Filter by email verification status. E.g. ["deliverable"] to only match leads with deliverable email. Omit to check if any email exists.
index number optional Zero-based position where to insert the step (0 = first). Omit to append at the end. Use to insert warm-up steps before an existing step (e.g. Like + Comment before an Invite).
message string optional Message content (REQUIRED when type is "email", "linkedinSend", "whatsappMessage" or "sms"; OPTIONAL but recommended for "linkedinInvite"). For emails: the HTML body. For LinkedIn/WhatsApp/SMS/tasks: the message text.
method string optional REQUIRED when type="api". HTTP method (GET or POST) used by the webhook call. Limited to GET/POST to stay iso with the lemlist UI editor.
recordMode string optional linkedinVoiceNote only: "ai" generates audio from text via ElevenLabs (user adds the text after); "manual" (default) requires user-recorded audio after step creation.
scoreComparator string optional Only for hasScore condition. "$gte" = score is above or equal to threshold, "$lt" = score is below threshold. Defaults to "$gte".
scoreThreshold number optional Only for hasScore condition. Score threshold value (0-100). Defaults to 80.
subject string optional Email subject line. Required for the first email; omit for follow-ups to send as reply thread. Supports Liquid syntax: {{ firstName }}, {% if condition %}...{% endif %}
targetCampaignId string optional REQUIRED when type is "sendToAnotherCampaign". Target campaign ID (cam_xxx) the lead is moved to. Must belong to the same team as the parent campaign and not be archived. Avoid cycles (A -> B -> A).
title string optional Task title (for manual/phone steps). Short label displayed in the review UI.
type string optional Type of step. Use "conditional" for branching based on lead behavior, "sendToAnotherCampaign" to move a lead to another campaign, "api" to fire an outbound HTTP webhook (provide method and url).
url string optional REQUIRED when type="api". Webhook URL fired during sequence execution. Supports Liquid templating against lead variables (e.g. https://example.com/leads/{{ _id }}). For POST, the request body is automatically the lead data; custom bodies and custom headers are not supported.
lemlistmcp_add_unsubscribe # Add email to unsubscribe blocklist. Blocks all future campaign sends. Use delete_unsubscribe to reverse. 1 param

Add email to unsubscribe blocklist. Blocks all future campaign sends. Use delete_unsubscribe to reverse.

Name Type Required Description
email string required The email address to add to the unsubscribe list
lemlistmcp_bulk_enrich_data # Enrich up to 500 contacts with additional data in a single call. Returns a dataRef for polling results asynchronously. 1 param

Enrich up to 500 contacts with additional data in a single call. Returns a dataRef for polling results asynchronously.

Name Type Required Description
items array required Array of enrichment items (max 500)
lemlistmcp_bulk_get_enrichment_results # Poll the results of one or more enrichment jobs. Provide a dataRef from bulk_enrich_data or a nextPollRef from a previous poll. 2 params

Poll the results of one or more enrichment jobs. Provide a dataRef from bulk_enrich_data or a nextPollRef from a previous poll.

Name Type Required Description
dataRef string optional dataRef from bulk_enrich_data (first poll) OR nextPollRef from a previous poll result (subsequent polls). Mutually exclusive with enrichmentIds.
enrichmentIds array optional Array of enrichment IDs to poll (1-500, enr_xxx format). Mutually exclusive with dataRef.
lemlistmcp_call_api # Make a direct call to the Lemlist API using a specified endpoint and method. Requires load_skill('api-reference') to be called first in the session. 4 params

Make a direct call to the Lemlist API using a specified endpoint and method. Requires load_skill('api-reference') to be called first in the session.

Name Type Required Description
endpoint string required API endpoint path starting with /api/
method string required HTTP method
body object optional Request body for POST/PUT/PATCH (optional)
confirmed boolean optional Set to true after user confirms a write/delete action
lemlistmcp_check_domain_health # Check DNS health for email sending domains (MX, SPF, DMARC, blacklists). Returns score (0-100), per-check status, and DNS fix records. 3 params

Check DNS health for email sending domains (MX, SPF, DMARC, blacklists). Returns score (0-100), per-check status, and DNS fix records.

Name Type Required Description
domain string optional Domain to check (e.g. example.com). If omitted, checks domains from team members.
mailboxId string optional Mailbox ID to check DNS for.
scope string optional Check scope: user (current user) or team (all members). Default: team.
lemlistmcp_connect_email_account # Connect a custom SMTP/IMAP email account for sending and receiving emails in Lemlist campaigns. 12 params

Connect a custom SMTP/IMAP email account for sending and receiving emails in Lemlist campaigns.

Name Type Required Description
imap_host string required IMAP server hostname (e.g., "imap.company.com")
imap_login string required IMAP authentication login (usually the email address)
imap_password string required IMAP authentication password or app password
imap_port number required IMAP server port (typically 993 for TLS)
sender_email string required Email address to send from (e.g., "john@company.com")
sender_name string required Display name for the sender (e.g., "John Doe")
smtp_host string required SMTP server hostname (e.g., "smtp.company.com")
smtp_login string required SMTP authentication login (usually the email address)
smtp_password string required SMTP authentication password or app password
smtp_port number required SMTP server port (typically 587 for TLS or 465 for SSL)
imap_secure boolean optional Optional: Use TLS for IMAP connection (default: true)
smtp_secure boolean optional Optional: Use TLS for SMTP connection (default: true)
lemlistmcp_create_campaign_from_proposal # Create a campaign from a previously validated sequence proposal. Requires a proposal ID generated by propose_sequence. 5 params

Create a campaign from a previously validated sequence proposal. Requires a proposal ID generated by propose_sequence.

Name Type Required Description
sequenceItemId string required Workspace item id of the validated sequence (from propose_sequence)
userConfirmed boolean required Must be true after the user explicitly approves campaign creation
emoji string optional Optional emoji for the campaign
name string optional Campaign name (defaults to the sequence proposal name)
timezone string optional Timezone for the campaign (e.g. Europe/Paris)
lemlistmcp_create_campaign_with_sequence # Create campaign. If subject AND body are provided, creates the first email step. If omitted, creates an empty sequence (use add_sequence_step to add a condition or any step type as the first step). Call add_sequence_step for each additional step. Supports Liquid syntax. 5 params

Create campaign. If subject AND body are provided, creates the first email step. If omitted, creates an empty sequence (use add_sequence_step to add a condition or any step type as the first step). Call add_sequence_step for each additional step. Supports Liquid syntax.

Name Type Required Description
name string required The name of the campaign
body string optional Email body content for the first email (supports Liquid syntax). Omit both subject and body to create campaign without a first step.
emoji string optional Optional emoji for the campaign (e.g., 🚀, 💎, 🔥)
subject string optional Subject line for the first email (supports Liquid syntax). Omit both subject and body to create campaign without a first step (e.g. when first step is a condition).
timezone string optional Timezone for the campaign (e.g., Europe/Paris, America/New_York)
lemlistmcp_create_contact_list # Create a new static contact list in the CRM to organize and group contacts. 1 param

Create a new static contact list in the CRM to organize and group contacts.

Name Type Required Description
name string required Name of the contact list to create (max 200 characters)
lemlistmcp_create_or_update_company # Create a new company in the user's Lemlist company database, or update an existing one (upsert). Requires both a name AND a domain. If a company with the same domain, LinkedIn URL, or Sales Navigator URL already exists, it will be updated instead of creating a duplicate. Returns the company data and whether it was created or updated. 8 params

Create a new company in the user's Lemlist company database, or update an existing one (upsert). Requires both a name AND a domain. If a company with the same domain, LinkedIn URL, or Sales Navigator URL already exists, it will be updated instead of creating a duplicate. Returns the company data and whether it was created or updated.

Name Type Required Description
domain string required Company domain (required)
name string required Company name (required)
companyOwner string optional Company owner email or user ID (usr_xxx format)
industry string optional Company industry
linkedinUrl string optional Company LinkedIn profile URL
linkedinUrlSalesNav string optional Company LinkedIn Sales Navigator URL (used as an additional matching key for upsert)
location string optional Company location or address
picture string optional Company logo URL
lemlistmcp_create_or_update_contact # Create a new contact in the user's Lemlist contact database, or update an existing one (upsert). Requires at least an email OR linkedinUrl as identifier. If a contact with the same email or LinkedIn URL already exists, it will be updated instead of creating a duplicate. Returns the contact data and whether it was created or updated. Use search_contacts first to check if the contact already exists. 14 params

Create a new contact in the user's Lemlist contact database, or update an existing one (upsert). Requires at least an email OR linkedinUrl as identifier. If a contact with the same email or LinkedIn URL already exists, it will be updated instead of creating a duplicate. Returns the contact data and whether it was created or updated. Use search_contacts first to check if the contact already exists.

Name Type Required Description
companyDomain string optional Company domain to link the contact to a company (alternative to companyId)
companyId string optional Company ID to associate the contact with
companyLinkedinUrl string optional Company LinkedIn URL to link the contact to a company (alternative to companyId)
contactOwner string optional Contact owner email or user ID (usr_xxx format)
email string optional Contact email address (required if linkedinUrl is not provided)
firstName string optional Contact first name
jobDescription string optional Contact job description
jobTitle string optional Contact job title
lastName string optional Contact last name
linkedinUrl string optional Contact LinkedIn profile URL (required if email is not provided)
phone string optional Contact phone number
picture string optional Contact profile picture URL
salesnavUrl string optional Contact LinkedIn Sales Navigator URL (used as an additional matching key for upsert)
timezone string optional Contact timezone
lemlistmcp_create_webhook # Create a webhook for real-time campaign activity notifications. Max 200 per account, no duplicate URLs. Filter by activity type (emailsSent, emailsOpened, emailsReplied, etc.) and/or campaignId. 5 params

Create a webhook for real-time campaign activity notifications. Max 200 per account, no duplicate URLs. Filter by activity type (emailsSent, emailsOpened, emailsReplied, etc.) and/or campaignId.

Name Type Required Description
targetUrl string required The webhook URL to call (must start with http:// or https://)
campaignId string optional Optional: Filter to call webhook only for specific campaign (e.g., "cam_xxx")
isFirst boolean optional Optional: Call webhook only for first activity of this type
type string optional Optional: Filter to call webhook only for specific activity types (e.g., "emailsReplied", "emailsSent")
zapId string optional Optional: Zapier integration ID
lemlistmcp_delete_company # Permanently delete a company record from Lemlist. Only removes the Lemlist record — does not affect any connected CRM. 3 params

Permanently delete a company record from Lemlist. Only removes the Lemlist record — does not affect any connected CRM.

Name Type Required Description
companyId string required Lemlist company ID to delete (cpn_xxx).
userConfirmed boolean required REQUIRED: Must be true. Confirms user explicitly approved this deletion. Only set to true after user says yes.
force boolean optional When true, detaches any attached contacts (unsets their companyId) before deleting the company.
lemlistmcp_delete_memory # Delete a stored memory entry by topic so it is no longer recalled in future conversations. 2 params

Delete a stored memory entry by topic so it is no longer recalled in future conversations.

Name Type Required Description
topic string required The topic key to delete (e.g. "preferred_tone")
scope string optional Scope: "user" (default) or "team"
lemlistmcp_delete_sequence_step # Delete a step from a campaign sequence. Use only when removing a step added by mistake — requires user confirmation. 4 params

Delete a step from a campaign sequence. Use only when removing a step added by mistake — requires user confirmation.

Name Type Required Description
campaignId string required The campaign ID (required for status verification)
sequenceId string required The sequence ID (starts with seq_)
stepId string required The step ID to delete (starts with stp_)
userConfirmed boolean required REQUIRED: Must be true. Confirms user explicitly approved this deletion. Only set to true after user says yes.
lemlistmcp_delete_unsubscribe # Remove an email address from the unsubscribe list, allowing it to be contacted again in future campaigns. 2 params

Remove an email address from the unsubscribe list, allowing it to be contacted again in future campaigns.

Name Type Required Description
email string required The email address to remove from the unsubscribe list
confirmed boolean optional NEVER set this to true on first call. Only set to true after the user has explicitly confirmed the action (e.g. via ask_question).
lemlistmcp_delete_watch_list # Delete a watch list and immediately stop processing signals for it. 2 params

Delete a watch list and immediately stop processing signals for it.

Name Type Required Description
watchListId string required The watch list ID to delete (wat_xxx format)
confirmed boolean optional Set to true only after the user has explicitly confirmed the deletion (e.g. via ask_question).
lemlistmcp_delete_webhook # Delete a webhook from your Lemlist account, stopping all notifications to that endpoint immediately. 2 params

Delete a webhook from your Lemlist account, stopping all notifications to that endpoint immediately.

Name Type Required Description
webhookId string required The webhook ID to delete (starts with hoo_)
confirmed boolean optional Set to true only after the user has explicitly confirmed the deletion (e.g. via ask_question).
lemlistmcp_disconnect_email_account # Disconnect email account. Stops sending immediately. Cannot be undone. Use get_user_channels to find account ID. 2 params

Disconnect email account. Stops sending immediately. Cannot be undone. Use get_user_channels to find account ID.

Name Type Required Description
emailAccountId string required The email account ID to disconnect (starts with usm_)
confirmed boolean optional Set to true only after the user has explicitly confirmed the disconnection (e.g. via ask_question).
lemlistmcp_enrich_lead # Enrich existing campaign lead. ASYNC — poll with bulk_get_enrichment_results (pass enrichmentIds: [id]). For non-campaign contacts use bulk_enrich_data. ALL options COST CREDITS. 5 params

Enrich existing campaign lead. ASYNC — poll with bulk_get_enrichment_results (pass enrichmentIds: [id]). For non-campaign contacts use bulk_enrich_data. ALL options COST CREDITS.

Name Type Required Description
leadId string required The lead ID to enrich (starts with lea_)
findEmail boolean optional ⚠️ COSTS CREDITS: Find email from lead data
findPhone boolean optional ⚠️ COSTS CREDITS: Find phone number
linkedinEnrichment boolean optional ⚠️ COSTS CREDITS: Enrich with LinkedIn data
verifyEmail boolean optional ⚠️ COSTS CREDITS: Verify lead email
lemlistmcp_get_campaign_details # Get configuration and settings for ONE campaign (timezone, emoji, labels, senders, sequences). For metrics use get_campaigns_stats, for email content use get_campaign_sequences. 1 param

Get configuration and settings for ONE campaign (timezone, emoji, labels, senders, sequences). For metrics use get_campaigns_stats, for email content use get_campaign_sequences.

Name Type Required Description
campaignId string required The campaign ID (cam_xxx format)
lemlistmcp_get_campaign_sequences # Get the email sequences and their content (subject, body) for a specific campaign. Useful for reviewing copywriting and email flow. 1 param

Get the email sequences and their content (subject, body) for a specific campaign. Useful for reviewing copywriting and email flow.

Name Type Required Description
campaignId string required The campaign ID (cam_xxx format)
lemlistmcp_get_campaigns # List campaigns with optional search, filtering by labels, and sorting. 7 params

List campaigns with optional search, filtering by labels, and sorting.

Name Type Required Description
createdBy string optional Filter by creator user ID (usr_xxx format). Use your own user ID from Context to find campaigns you created.
labels array optional Filter by labels/tags. OR semantics: returns campaigns matching at least one. Accepts label names ("q2") or IDs ("lab_xxx") — both can be mixed.
limit number optional Maximum number of campaigns to return (default: 20)
offset number optional Number of campaigns to skip for pagination (default: 0). Use with limit to paginate through all campaigns.
search string optional Search campaigns by name (case-insensitive)
sortOrder string optional Sort by creation date (default: newest first)
status string optional Filter by status. OMIT this parameter to get ALL campaigns regardless of status.
lemlistmcp_get_campaigns_reports # Get lifetime stats for MULTIPLE campaigns in one call. Returns metadata, sender info, and 65+ metrics per campaign. No date filtering - for time-based analysis use get_campaigns_stats. 1 param

Get lifetime stats for MULTIPLE campaigns in one call. Returns metadata, sender info, and 65+ metrics per campaign. No date filtering - for time-based analysis use get_campaigns_stats.

Name Type Required Description
campaignIds array required Array of campaign IDs to get reports for (e.g., ["cam_xxx", "cam_yyy"])
lemlistmcp_get_campaigns_stats # Get detailed stats for one or more campaigns including lead funnel metrics, message counts, and per-step breakdowns. 7 params

Get detailed stats for one or more campaigns including lead funnel metrics, message counts, and per-step breakdowns.

Name Type Required Description
campaignIds array required Array of campaign IDs (cam_xxx format)
ABSelected string optional Optional: Filter by A/B test variant
channels array optional Optional: Filter stats by channels (mirrors the UI dropdown filter). When provided, both top-level totals and messageMetrics.perChannel are restricted to the requested channels. Omit to get the full breakdown across all 5 channels.
endDate string optional End date. Either a calendar day "YYYY-MM-DD" (interpreted as end-of-day in the resolved timezone) or a full ISO 8601 datetime with offset (used as-is). Omit for all-time stats.
sendUser string optional Optional: Filter by send user (format: usr_xxx|email@example.com)
startDate string optional Start date. Either a calendar day "YYYY-MM-DD" (interpreted as start-of-day in the resolved timezone) or a full ISO 8601 datetime with offset like "2026-04-01T00:00:00+05:30" / "2026-04-01T00:00:00Z" (used as-is, the timezone arg is ignored for that bound). Omit for all-time stats.
timezone string optional IANA timezone (e.g. "Asia/Kolkata", "America/New_York") used to interpret startDate/endDate ONLY when they are calendar days (YYYY-MM-DD). Ignored for full ISO 8601 datetimes. If omitted, falls back to the calling user's profile.timezone (if set), then to Europe/Paris. To exactly mirror what the Lemlist UI displays, prefer passing the same ISO 8601 strings the UI uses (capture from the campaignReportsTimePeriod session).
lemlistmcp_get_contact_lists # Retrieve available CRM contact lists with optional search filtering. 1 param

Retrieve available CRM contact lists with optional search filtering.

Name Type Required Description
search string optional Filter lists by name (case-insensitive)
lemlistmcp_get_inbox_conversation # Get the full conversation thread for a specific contact across all channels (email, LinkedIn, WhatsApp, SMS). 4 params

Get the full conversation thread for a specific contact across all channels (email, LinkedIn, WhatsApp, SMS).

Name Type Required Description
contactId string required The contact ID (ctc_xxx format) to get the conversation thread for. Do not use leadId or any other ID type.
limit number optional Number of activities per page (default: 20, max: 50)
markAsRead boolean optional Whether to mark the conversation as read (default: false). Note: this mutates state.
page number optional Page number for pagination (default: 1)
lemlistmcp_get_inbox_conversations # List inbox conversations with contact info and last message preview, with optional filtering by list type. 5 params

List inbox conversations with contact info and last message preview, with optional filtering by list type.

Name Type Required Description
limit number optional Number of conversations per page (default: 20, max: 50)
listId string optional Which inbox list to fetch: myConversations (default), unRead, favorites, snoozed, archived, sentOnly, teamConversations
page number optional Page number for pagination (default: 1)
search string optional Search query to filter conversations by contact name or email
userId string optional The user ID (usr_xxx format). Optional — defaults to the current authenticated user if omitted.
lemlistmcp_get_lemleads_filters # Get available filters for People Database searches. Call this FIRST before lemleads_search or display_leads/display_companies. Returns filter IDs with valid values. 0 params

Get available filters for People Database searches. Call this FIRST before lemleads_search or display_leads/display_companies. Returns filter IDs with valid values.

lemlistmcp_get_settings # Retrieve settings for a campaign or warmup mailbox entity. 2 params

Retrieve settings for a campaign or warmup mailbox entity.

Name Type Required Description
type string required The type of settings to retrieve.
id string optional Entity ID. Required for "campaign" (cam_xxx) and "lemwarm" (usm_xxx). Ignored for "sending" and "team".
lemlistmcp_get_statistics # Retrieve statistics for one or more entities of the same type (lemwarm, campaign, lead, etc.). 3 params

Retrieve statistics for one or more entities of the same type (lemwarm, campaign, lead, etc.).

Name Type Required Description
ids array required For "lemwarm": mailbox IDs (usm_xxx) — same ids used with get_settings type="lemwarm". 1-20 items.
type string required The type of statistics to retrieve. Only "lemwarm" is supported for now.
days number optional Lookback window in days (1-60). Defaults to 30. Applied to every id.
lemlistmcp_get_team_info # Get basic team info (ID, name, plan, credits remaining) and minimal identity of the caller (current user id + email). For full user details call get_users with userIds: ["me"] for the caller, userIds: ["all"] for the full member list, or userIds: ["usr_xxx", ...] for one or more team members. 0 params

Get basic team info (ID, name, plan, credits remaining) and minimal identity of the caller (current user id + email). For full user details call get_users with userIds: ["me"] for the caller, userIds: ["all"] for the full member list, or userIds: ["usr_xxx", ...] for one or more team members.

lemlistmcp_get_team_overview # Account summary: campaign count by status. Use get_campaigns for the full list with names and details. 0 params

Account summary: campaign count by status. Use get_campaigns for the full list with names and details.

lemlistmcp_get_unsubscribes # List unsubscribed emails with pagination. Use delete_unsubscribe to re-enable. 2 params

List unsubscribed emails with pagination. Use delete_unsubscribe to re-enable.

Name Type Required Description
limit number optional Maximum number of unsubscribes to return
offset number optional Number of unsubscribes to skip (for pagination)
lemlistmcp_get_user_channels # Check connected sending channels (email, LinkedIn, WhatsApp). Returns connection status, plan availability, and accounts. WhatsApp requires separate addon purchase. Use show_connect_channel to guide setup (one channel at a time). 0 params

Check connected sending channels (email, LinkedIn, WhatsApp). Returns connection status, plan availability, and accounts. WhatsApp requires separate addon purchase. Use show_connect_channel to guide setup (one channel at a time).

lemlistmcp_get_users # Retrieve team member details by user IDs, or pass 'all' to fetch all team members. 1 param

Retrieve team member details by user IDs, or pass 'all' to fetch all team members.

Name Type Required Description
userIds array required List of userIds to fetch. Each item is "all" (every team member, lightweight), "me" (caller, full profile), or a usr_xxx id (full profile). 1-20 items.
lemlistmcp_get_webhooks # List all configured webhooks. Returns array with _id, targetUrl, createdAt, type, campaignId, isFirst. 0 params

List all configured webhooks. Returns array with _id, targetUrl, createdAt, type, campaignId, isFirst.

lemlistmcp_list_watch_lists # List watch lists for the current team with optional type, status, and pagination filters. 4 params

List watch lists for the current team with optional type, status, and pagination filters.

Name Type Required Description
limit integer optional Max watch lists per page (default 50, max 100)
page integer optional Page number (1-based, default 1)
status string optional Comma-separated list of statuses to filter. Accepted values: active, inactive, draft, insufficient_credits, empty_crm_lists, error. Excludes soft-deleted by default.
type string optional Comma-separated list of watch list types (e.g. "companyIsHiring,jobChange")
lemlistmcp_load_skill # Load specialized guidance for a specific domain (e.g. campaign-builder, api-reference) to assist with complex tasks. 2 params

Load specialized guidance for a specific domain (e.g. campaign-builder, api-reference) to assist with complex tasks.

Name Type Required Description
skillName string required Name of the skill to load
section string optional Optional: specific reference section to load
lemlistmcp_preview_sequence_update # SAFE READ-ONLY: Preview what would change in an email sequence step before applying modifications. Shows current vs proposed content and campaign status. Must call this before update_sequence_step. 5 params

SAFE READ-ONLY: Preview what would change in an email sequence step before applying modifications. Shows current vs proposed content and campaign status. Must call this before update_sequence_step.

Name Type Required Description
campaignId string required Campaign ID (cam_xxx)
sequenceId string required Sequence ID (seq_xxx)
stepId string required Step ID (stp_xxx)
newMessage string optional Proposed new message body
newSubject string optional Proposed new subject line
lemlistmcp_push_leads_to_contacts # Push leads from the People Database into your CRM contacts, optionally adding them to a contact list. 3 params

Push leads from the People Database into your CRM contacts, optionally adding them to a contact list.

Name Type Required Description
profileIds array required People Database lead IDs to push to contacts (max 1,000)
enrichFeatures array optional ⚠️ COSTS CREDITS: Enrichment features to apply when pushing leads
listId string optional Target contact list ID in clt_xxx format. Omit to push to "all contacts". Get valid IDs from get_contact_lists — never invent or pass aliases like "all".
lemlistmcp_recall_memory # Retrieve stored memories from previous conversations to restore context about user preferences or past decisions. 1 param

Retrieve stored memories from previous conversations to restore context about user preferences or past decisions.

Name Type Required Description
topic string optional Exact topic key to retrieve (e.g. "preferred_tone"). Omit to retrieve all memories.
lemlistmcp_report_unsupported_case # Report a feature request or unsupported use case to the product team. Use this ONLY when the user's request is something lemlist should support but the copilot cannot do yet, AND the user has agreed to have their feedback reported. Do NOT use for off-topic requests unrelated to lemlist. Always provide inputs in English, translate if needed. 2 params

Report a feature request or unsupported use case to the product team. Use this ONLY when the user's request is something lemlist should support but the copilot cannot do yet, AND the user has agreed to have their feedback reported. Do NOT use for off-topic requests unrelated to lemlist. Always provide inputs in English, translate if needed.

Name Type Required Description
description string required What the user asked for that is not supported yet (MUST be in English)
conversationContext string optional Brief summary of the conversation context leading to this request (MUST be in English)
lemlistmcp_save_business_context # Save the user business context for future conversations. Use this after collecting company information from the user to remember it across conversations. 9 params

Save the user business context for future conversations. Use this after collecting company information from the user to remember it across conversations.

Name Type Required Description
companyName string required Company name
mainActivity string optional What the company does
painPointsSolved array optional Pain points the company solves for customers
shortDescription string optional Company and offering summary
targetCompanySizes array optional Target sizes (1-10, 11-50, etc.)
targetIndustries array optional Target industries
targetJobTitles array optional Target job titles
valueProposition string optional Main value proposition of the company
websiteUrl string optional Website URL
lemlistmcp_save_memory # Save a piece of information to persistent memory so it can be recalled in future conversations. 3 params

Save a piece of information to persistent memory so it can be recalled in future conversations.

Name Type Required Description
content string required The information to remember (max 5000 chars, in the user language)
topic string required Unique topic key in snake_case english (e.g. "preferred_tone", "icp_details", "campaign_naming")
scope string optional Scope: "user" (default, personal) or "team" (shared with all team members)
lemlistmcp_search_campaign_leads # Find leads in your campaigns by email, lead ID, or by listing all leads in a campaign. 5 params

Find leads in your campaigns by email, lead ID, or by listing all leads in a campaign.

Name Type Required Description
campaignId string optional Campaign ID. Required when listing all leads (no email/id). Optional filter when searching by email/id.
email string optional Lead email address to search for
id string optional Lead ID to search for (alternative to email)
limit number optional Max leads to return (default: 50, max: 100).
offset number optional Pagination offset (default: 0). Use nextOffset from a previous result to load more.
lemlistmcp_search_companies # Search your team's Lemlist companies. Returns a paginated list with each company's id, domain, name, owner, and a curated `crmSync` block describing how the record is synced to your active CRM (Hubspot, Salesforce, or Pipedrive). Use the `crmSyncStatus` filter to find companies in a specific sync state — most notably `unique_index_error_company` to list lemlist companies blocked from syncing because another lemlist company already occupies their CRM record. For each result in that state, look at `crmSync.errors[].metadata.alreadyExistingCompanyId` — that is the canonical lemlist company you should remap contacts to before deleting the duplicate (see `search_contacts` with companyId, then `delete_company`). 6 params

Search your team's Lemlist companies. Returns a paginated list with each company's id, domain, name, owner, and a curated `crmSync` block describing how the record is synced to your active CRM (Hubspot, Salesforce, or Pipedrive). Use the `crmSyncStatus` filter to find companies in a specific sync state — most notably `unique_index_error_company` to list lemlist companies blocked from syncing because another lemlist company already occupies their CRM record. For each result in that state, look at `crmSync.errors[].metadata.alreadyExistingCompanyId` — that is the canonical lemlist company you should remap contacts to before deleting the duplicate (see `search_contacts` with companyId, then `delete_company`).

Name Type Required Description
crmSyncStatus string optional Filter by CRM sync status. Requires a CRM (Hubspot, Salesforce, Pipedrive) to be connected on the team — otherwise the call returns NO_CRM_CONNECTED.
limit number optional Max companies per page (1-100, default 100).
page number optional Page number (1-based, default 1).
search string optional Free-text search on the company name (case insensitive, accent insensitive).
sortBy string optional Sort field (default `createdAt`).
sortOrder string optional Sort direction (default `desc`).
lemlistmcp_search_contacts # Search or list your team's Lemlist contacts by name, email, contact list, or attached company. Returns matching contacts with their details (ID, name, email, phone, job title, company, campaign count). All filters are optional — calling the tool without any filter returns the paginated list of all contacts of the team (useful for discovery, e.g. obtaining a Record ID before associating it with another resource). Use this to find if a contact already exists in Lemlist before creating a new one. You can filter by a specific contact list using listId (get valid IDs from get_contact_lists first). Use notInAnyCampaign=true to find contacts that are not part of any campaign (orphan contacts). To list contacts attached to a given company, use companyId (cpn_xxx) or one of companyDomain / companyLinkedinUrl / companySalesnavUrl — only one company* filter at a time. URL/domain filters return an empty list if no company matches. For searching leads WITHIN campaigns, use search_campaign_leads instead. For prospecting NEW leads from the People Database, use lemleads_search instead. 10 params

Search or list your team's Lemlist contacts by name, email, contact list, or attached company. Returns matching contacts with their details (ID, name, email, phone, job title, company, campaign count). All filters are optional — calling the tool without any filter returns the paginated list of all contacts of the team (useful for discovery, e.g. obtaining a Record ID before associating it with another resource). Use this to find if a contact already exists in Lemlist before creating a new one. You can filter by a specific contact list using listId (get valid IDs from get_contact_lists first). Use notInAnyCampaign=true to find contacts that are not part of any campaign (orphan contacts). To list contacts attached to a given company, use companyId (cpn_xxx) or one of companyDomain / companyLinkedinUrl / companySalesnavUrl — only one company* filter at a time. URL/domain filters return an empty list if no company matches. For searching leads WITHIN campaigns, use search_campaign_leads instead. For prospecting NEW leads from the People Database, use lemleads_search instead.

Name Type Required Description
companyDomain string optional Filter contacts by their company's website domain (resolved to a companyId). Empty list if no company matches.
companyId string optional Filter contacts by attached lemlist company ID (cpn_xxx). Mutually exclusive with companyDomain/companyLinkedinUrl/companySalesnavUrl.
companyLinkedinUrl string optional Filter contacts by their company's LinkedIn URL (resolved to a companyId). Empty list if no company matches.
companySalesnavUrl string optional Filter contacts by their company's LinkedIn Sales Navigator URL (resolved to a companyId). Empty list if no company matches.
email string optional Exact email address to search for (takes priority over search parameter)
limit number optional Maximum number of contacts to return (1-100, default: 20)
listId string optional Filter by contact list ID (clt_xxx format). Can be combined with search/email, or used alone to list all contacts in a list. Get valid IDs from get_contact_lists.
notInAnyCampaign boolean optional When true, only returns contacts that are not part of any campaign. Can be used alone or combined with other filters.
offset number optional Number of contacts to skip for pagination (default: 0)
search string optional Free-text search: matches against contact full name or email address (min 2 chars, case-insensitive)
lemlistmcp_search_help_center # Search the lemlist help center for official documentation and guides. Use this when you need to provide guidance on how to do something in lemlist that you cannot do directly via tools. Returns relevant help center articles with content excerpts and links. Do NOT use this for questions you can answer from context or tools. 1 param

Search the lemlist help center for official documentation and guides. Use this when you need to provide guidance on how to do something in lemlist that you cannot do directly via tools. Returns relevant help center articles with content excerpts and links. Do NOT use this for questions you can answer from context or tools.

Name Type Required Description
query string required Search query in English using 1-3 keywords (e.g., "inbox rotation", "email provider", "signals")
lemlistmcp_send_message # Send a message to a contact or lead via email, LinkedIn, WhatsApp, or SMS from the Lemlist inbox. 11 params

Send a message to a contact or lead via email, LinkedIn, WhatsApp, or SMS from the Lemlist inbox.

Name Type Required Description
channel string required Channel to send through.
message string required Message content (channel-specific format).
sendUserId string required User ID sending the message (usr_xxx format).
cc array optional channel="email": optional list of CC email addresses.
contactId string optional Contact ID to send to. Required if leadId is not provided.
from string optional channel="sms": sender phone number.
leadId string optional Lead ID to send to. Alternative to contactId.
sendUserEmail string optional channel="email": email address to send from.
sendUserMailboxId string optional channel="email": mailbox ID (usm_xxx) to use for sending.
sendUserWhatsappAccountId string optional channel="whatsapp": WhatsApp account ID (uwa_xxx) to use for sending.
subject string optional channel="email": email subject line.
lemlistmcp_set_campaign_senders # Assign team members as senders for a campaign's outreach messages. 2 params

Assign team members as senders for a campaign's outreach messages.

Name Type Required Description
campaignId string required Campaign ID (cam_xxx format)
senderIds array required Array of user IDs (usr_xxx format) to assign as senders. Get IDs from get_users (userIds: ["all"]).
lemlistmcp_set_campaign_state # Start, pause, archive, or unarchive a campaign to change its running state. 3 params

Start, pause, archive, or unarchive a campaign to change its running state.

Name Type Required Description
action string required "start" to launch the campaign, "pause" to pause a running campaign, "archive" to archive a campaign, "unarchive" to restore an archived campaign
campaignId string required The campaign ID (cam_xxx format)
userConfirmed boolean optional REQUIRED for action="start" and action="archive": Must be true. Confirms user explicitly approved the action. Not required for pause or unarchive.
lemlistmcp_test_email_account # Test SMTP/IMAP connectivity of an email account. No actual email sent. Use get_user_channels to find account ID. 1 param

Test SMTP/IMAP connectivity of an email account. No actual email sent. Use get_user_channels to find account ID.

Name Type Required Description
emailAccountId string required The email account ID to test (starts with usm_)
lemlistmcp_update_lead # Update standard fields on an existing lead (firstName, lastName, jobTitle, companyName, email, phone, linkedinUrl, picture, timezone, jobDescription, companyDomain). Requires leadId + at least one field to update. For custom variables, use update_lead_variables instead. 12 params

Update standard fields on an existing lead (firstName, lastName, jobTitle, companyName, email, phone, linkedinUrl, picture, timezone, jobDescription, companyDomain). Requires leadId + at least one field to update. For custom variables, use update_lead_variables instead.

Name Type Required Description
leadId string required The lead ID (starts with lea_)
companyDomain string optional Lead company domain
companyName string optional Lead company name
email string optional Lead email address
firstName string optional Lead first name
jobDescription string optional Lead job description
jobTitle string optional Lead job title
lastName string optional Lead last name
linkedinUrl string optional Lead LinkedIn profile URL
phone string optional Lead phone number
picture string optional Lead profile picture URL
timezone string optional Lead timezone
lemlistmcp_update_lead_variables # Set custom variables on an existing lead (upsert). Requires leadId + variables (key-value pairs of non-empty strings). Automatically handles both updating existing variables and adding new ones. IMPORTANT: Do NOT pass standard lead fields as variables — the following keys are FORBIDDEN and will be rejected: email, firstName, lastName, picture, phone, linkedinUrl, timezone, jobTitle, jobDescription, companyName, companyDomain. To update these fields, use the update_lead tool instead. Empty string values are rejected — omit the variable instead. 2 params

Set custom variables on an existing lead (upsert). Requires leadId + variables (key-value pairs of non-empty strings). Automatically handles both updating existing variables and adding new ones. IMPORTANT: Do NOT pass standard lead fields as variables — the following keys are FORBIDDEN and will be rejected: email, firstName, lastName, picture, phone, linkedinUrl, timezone, jobTitle, jobDescription, companyName, companyDomain. To update these fields, use the update_lead tool instead. Empty string values are rejected — omit the variable instead.

Name Type Required Description
leadId string required The lead ID (starts with lea_)
variables object required Custom variables as key-value pairs to set (e.g., {"comicFrame": "panel_3", "tone": "friendly"}). Values must be non-empty strings — omit the variable rather than passing an empty string.
lemlistmcp_update_sequence_step # Update a step in an existing campaign sequence. Requires user confirmation for email or content step changes. 15 params

Update a step in an existing campaign sequence. Requires user confirmation for email or content step changes.

Name Type Required Description
campaignId string required The campaign ID (required for status verification)
sequenceId string required The sequence ID (starts with seq_)
stepId string required The step ID to update (starts with stp_)
userConfirmed boolean required REQUIRED: Must be true. Confirms user explicitly approved this change after seeing the preview. Only set to true after user says yes.
conditionKey string optional New condition key (for conditional steps only)
delay number optional New delay value in days
delayType string optional New delay type for conditional steps. "within" = must happen within delay days, "waitUntil" = wait indefinitely. For field-check conditions, use "within" with delay 0.
emailStatusFilter array optional Only for hasEmailAddress condition. Filter by email status: ["deliverable","risky","undeliverable","unverified"].
message string optional New email body content (for email steps, supports Liquid syntax)
method string optional New HTTP method for "api" (webhook) steps. Limited to GET/POST to stay iso with the lemlist UI editor. Ignored on non-api steps.
scoreComparator string optional Only for hasScore condition. "$gte" = score above or equal, "$lt" = score below.
scoreThreshold number optional Only for hasScore condition. Score threshold (0-100).
subject string optional New subject line (supports Liquid syntax: {{ firstName }}, {% if condition %}...{% endif %})
title string optional New task title (for manual/phone steps). Short label displayed in the review UI.
url string optional New webhook URL for "api" steps. Supports Liquid templating against lead variables (e.g. https://example.com/leads/{{ _id }}). Ignored on non-api steps.
lemlistmcp_update_settings # Update settings for a campaign or warmup mailbox entity. 7 params

Update settings for a campaign or warmup mailbox entity.

Name Type Required Description
id string required Entity ID. For "lemwarm": the mailbox ID (usm_xxx) — the same id used with get_settings type="lemwarm".
type string required The type of settings to update. Only "lemwarm" is supported for now.
action string optional Optional state change. "start" activates warmup, "pause" stops it. Omit when only updating settings.
internalCommunicationPercent number optional Percentage of warmup emails sent to internal participants (0-100). Only applied when the team has the lemwarmInternalCommunication beta.
userConfirmed boolean optional REQUIRED when action="start": must be true after user confirms activating warmup.
warmEmailMax number optional Daily warmup email target (0-40). Server enforces 1-40 unless the team has the lemwarm0limit beta.
warmEmailRampup number optional Ramp-up increment per day (0-40). Server enforces 1-40 unless the team has the lemwarm0limit beta.
lemlistmcp_validate_campaign_readiness # Validate that a campaign is ready to launch by checking step content, sender configuration, DNS health, and daily limits. 2 params

Validate that a campaign is ready to launch by checking step content, sender configuration, DNS health, and daily limits.

Name Type Required Description
campaignId string optional Campaign ID (cam_xxx format). Provide this or campaignName.
campaignName string optional Campaign name to search for. Provide this or campaignId.