Lemlist MCP

Live

API KEY

MARKETING

Marketing

Give your agent per-user access to Lemlist — so it can launch sequences, enrich leads, and track replies tied to the account owner who authorized it.

  • Acts as the user: Campaign launches, lead additions, and reply tracking stay tied to the Lemlist account owner who authorized the agent — not a shared service credential.
  • Credentials stay vaulted: AES-256, resolved at request time, never in LLM context.
  • Scoped before every call: Permissions enforced per-user. 90-day audit trail.
Lemlist MCP
agent · Acme Q3
Run
Which sequences have the highest reply rates this month?
S
lemlist_campaigns_list
85ms
Lemlist MCP agent
Found 3 top sequences this month. 'Q3 SaaS Outbound' at 18% reply rate, 'Trial Expiry Follow-up' at 14%, 'Event Invite Wave' at 11%.
Sources: 3 campaigns, Jun 1 to Jun 21
lemlistmcpmcp
3 campaigns
18:29
Message Claude...

Tools your outbound sales agent reaches for on Lemlist MCP, scoped per user.

CALL ANY TOOL
Lemlist MCP exposes tools for managing campaigns, leads, sequences, and replies — giving agents control over the full multichannel outreach lifecycle.
lemlistmcp_add_contacts_to_list
List add contacts to
Add existing CRM contacts to a contact list by list ID.
Parameters
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 Leads To Campaign
lemlistmcp_add_sequence_step
Add Sequence Step
lemlistmcp_add_unsubscribe
Add Unsubscribe
lemlistmcp_bulk_enrich_data
Bulk Enrich Data
lemlistmcp_bulk_get_enrichment_results
Bulk Get Enrichment Results
lemlistmcp_call_api
Call Api
lemlistmcp_check_domain_health
Check Domain Health
lemlistmcp_connect_email_account
Connect Email Account
lemlistmcp_create_campaign_from_proposal
Create Campaign From Proposal
lemlistmcp_create_campaign_with_sequence
Create Campaign With Sequence
lemlistmcp_create_contact_list
List create contact
lemlistmcp_create_or_update_company
Create Or Update Company
lemlistmcp_create_or_update_contact
Create Or Update Contact
lemlistmcp_create_webhook
Create Webhook
lemlistmcp_delete_company
Delete Company
lemlistmcp_delete_memory
Delete Memory
lemlistmcp_delete_sequence_step
Delete Sequence Step
lemlistmcp_delete_unsubscribe
Delete Unsubscribe
lemlistmcp_delete_watch_list
List delete watch
lemlistmcp_delete_webhook
Delete Webhook
lemlistmcp_disconnect_email_account
Disconnect Email Account
lemlistmcp_enrich_lead
Enrich Lead
lemlistmcp_get_campaign_details
Get Campaign Details
lemlistmcp_get_campaign_sequences
Get Campaign Sequences
lemlistmcp_get_campaigns
Get Campaigns
lemlistmcp_get_campaigns_reports
Get Campaigns Reports
lemlistmcp_get_campaigns_stats
Get Campaigns Stats
lemlistmcp_get_contact_lists
Get Contact Lists
lemlistmcp_get_inbox_conversation
Get Inbox Conversation

For more tools, view docs.

Build your Agent
Same auth pattern across every framework.
Python · LlamaIndex
from langchain_mcp_adapters.client import MultiServerMCPClient
from scalekit import ScalekitClient

client = ScalekitClient(env_url=ENV_URL, client_id=CLIENT_ID, client_secret=SECRET)
token = client.agent.get_token(user_id="user_id", connector="lemlistmcp")

mcp = MultiServerMCPClient({
"lemlistmcp": {
"url": "https://mcp.scalekit.com/lemlistmcp",
"headers": {"Authorization": "Bearer " + token}
}
})
tools = await mcp.get_tools()
import OpenAI from "openai";
import { ScalekitClient } from "@scalekit-sdk/node";

const client = new ScalekitClient({ envUrl, clientId, clientSecret });
const token = await client.agent.getToken({ userId: "user_id", connector: "lemlistmcp" });

const openai = new OpenAI();
// Connect to MCP at https://mcp.scalekit.com/lemlistmcp
// Pass: Authorization: Bearer + token
import Anthropic from "@anthropic-ai/sdk";
import { ScalekitClient } from "@scalekit-sdk/node";

const client = new ScalekitClient({ envUrl, clientId, clientSecret });
const token = await client.agent.getToken({ userId: "user_id", connector: "lemlistmcp" });

const anthropic = new Anthropic();
// Connect to MCP at https://mcp.scalekit.com/lemlistmcp
// Pass: Authorization: Bearer + token
from google.adk.agents import LlmAgent
from scalekit import ScalekitClient

client = ScalekitClient(env_url=ENV_URL, client_id=CLIENT_ID, client_secret=SECRET)
token = client.agent.get_token(user_id="user_id", connector="lemlistmcp")
# Connect to MCP at https://mcp.scalekit.com/lemlistmcp
# Pass: Authorization: Bearer + token
Try these prompts
Paste any prompt into your agent to get started.
Analyze & report
Copy the prompt
Copied
Which of my active campaigns has the highest reply rate this month and what's the subject line of its first email step?
Copy the prompt
Copied
Show me all leads who opened but never replied across my last 3 campaigns.
Copy the prompt
Copied
What is my current bounce rate and how does it compare to the previous 30-day period?
Copy the prompt
Copied
List every campaign launched in the last 90 days with their open, click, and reply rates side by side.
Manage leads
Copy the prompt
Copied
Add these 12 leads to my 'Q3 SaaS Outbound' campaign and skip any that are already enrolled.
Copy the prompt
Copied
Remove all leads marked 'notInterested' from my active campaigns and add them to the unsubscribe list.
Copy the prompt
Copied
List all leads in my 'Trial Expiry Follow-up' sequence who are still on step 1 after 5 days.
Deliverability & hygiene
Copy the prompt
Copied
Fetch sender stats for my primary email account for the last 30 days and flag if bounce rate exceeds 3%.
Copy the prompt
Copied
Unsubscribe anyone who replied with 'unsubscribe' or 'remove me' across all campaigns this week.
Copy the prompt
Copied
Pause any campaign where the bounce rate for the last 50 sends exceeds 5%.
SEE HOW AUTH WORKS
User authorises once. Every agent call after uses their token with scope enforcement.
1
Authorize
Your user connects
Lemlist MCP
once. We tie it to their identity and the meetings they approved — no shared bot account, no org-wide access
Who:
user ‘A’
when:
Once per user
access:
Limited to user
2
Store
Their
Lemlist MCP
token lives in a vault scoped to them. User A's meetings are never reachable by an agent acting for user B, even on the same connection
vault:
encrypted
scope:
per-user
tokens:
auto-refreshed
3
Resolve
When your agent calls a
Lemlist MCP
tool, we fetch the right token server-side. It never touches your agent, never appears in the LLM context, never shows up in your logs
speed:
~40ms
check:
before every call
seen by:
nobody
4
Audit
Every
Lemlist MCP
tool call is logged — who triggered it, which meeting was fetched, what came back. 90 days of history, tied to the user who authorized it
history:
90 days
export:
SIEM-ready
logged:
every call
Test other agents
See the same per-user auth pattern across other connectors.
SALES
Outbound prospecting agent
Build targeted prospect lists with Apollo, enrich with firmographic data, and draft personalised outreach. Runs on a schedule.
GTM
HubSpot to Slack updates agent
Watch HubSpot deal stage changes and post structured updates to the right Slack channel. Reps stop checking the CRM all day.
Why Scalekit
Secure your agent's access. Connectors ship in minutes
Other connector libraries treat auth as a demo afterthought.
01.
Shared tokens break per-user analytics
A shared API key looks fine in a demo. In production every campaign action traces back to a service account, not the rep who owns the sequence. Scalekit resolves the real user credential so Lemlist audit logs stay meaningful.
// shared key
audit → bot_service_account

// scalekit
audit → rep_alice ✓
02.
Authentication is not authorization
03.
Multi-tenancy is architectural
04.
Lemlist MCP today. Others tomorrow.
“Our agents act across Salesforce, Gong, Google Drive, and more, on behalf of every customer. Scalekit behind the scenes meant we can keep adding tools without ever rebuilding how credentials or tool calling work.”
Venu Madhav Kattagoni
Head of Engineering / Von
FAQs
Frequently Asked Questions
Does the agent access Lemlist as the user or through a shared API key?
Scalekit resolves a per-user credential for each call. The Lemlist activity log shows the real account owner, not a shared service key, so campaign attribution and deliverability metrics stay accurate per sender.
Where is the Lemlist API key stored?
In Scalekit's AES-256 encrypted vault, isolated per tenant. Keys are resolved at request time and never passed through LLM context. Rotation or revocation takes effect immediately across all agents without code changes.
Can I limit what the agent is allowed to do in Lemlist?
Pass a toolNames filter to listScopedTools. Scalekit enforces the approved set before every API call — the agent cannot invoke tools outside that list, so you can restrict it to read-only reporting or block destructive operations like lead deletion.
What happens when a user revokes Lemlist access?
The credential is invalidated at the next tool call. The agent fails closed rather than falling back to a shared key. Other users' sessions are unaffected, and the revocation event is written to the audit log with a timestamp.
Can the agent accidentally add contacts to the wrong campaign or trigger unintended sends?
Scope your agent to a named toolNames list that excludes lemlist_leads_add and lemlist_campaigns_launch if you want read-only access. Scalekit enforces that list before every call, so write tools are unreachable unless you explicitly permit them. You can also restrict by campaign_id at the application layer before passing arguments to the tool.
Start in your coding agent
Up and running in one command
Install the Scalekit skill in your editor of choice. Connector, auth, tools, prompt, all wired up
Claude Code REPL
/plugin marketplace add scalekit-inc/claude-code-authstack
/plugin install agentkit@scalekit-auth-stack
Cursor Code REPL
# ~/.cursor/mcp.json
{
""mcpServers"": {
""lemlistmcp"": {
""url"": ""https://mcp.scalekit.com/lemlistmcp"",
""headers"": { ""Authorization"": ""Bearer $SCALEKIT_TOKEN"" }
}
}
}
Codex Code REPL
# ~/.codex/config.toml
[mcp_servers.lemlistmcp]
url = ""https://mcp.scalekit.com/lemlistmcp""
auth_env = ""SCALEKIT_TOKEN""
Copilot Code REPL
# .vscode/mcp.json
{
""servers"": {
""lemlistmcp"": {
""url"": ""https://mcp.scalekit.com/lemlistmcp"",
""type"": ""http""
}
}
}