OAuth (recommended)
With OAuth, you don’t need to create an API key. Your AI client handles authentication automatically via your browser.- Claude Desktop
- Claude Code
In Claude Desktop, open the sidebar, click the + icon next to Connectors, then choose Add custom connector. Set:
- Name:
lemlist - URL:
https://app.lemlist.com/mcp
claude_desktop_config.json:mcp-remote handles the full OAuth flow automatically: discovery, client registration, browser-based consent, token exchange (PKCE), and token refresh.With API Key
If you prefer using an API key, first create one in lemlist:- Go to app.lemlist.com
- Navigate to Settings > Team > Integrations
- Click Generate
- Save your API key somewhere safe
- Cursor
- Claude Code
- Claude Desktop (macOS/Linux)
- Claude Desktop (Windows)
Go to Settings > Tools & MCP > New MCP Server, then add:
Available tools
The MCP server exposes a growing set of tools that evolve regularly. Simply ask your AI assistant what lemlist operations it can perform, and it will provide the most up-to-date list. Current capabilities include:- Campaign management — create, update, start, pause campaigns and sequences
- Lead management — add, search, update leads across campaigns
- Lead sourcing — search the 450M+ B2B database by role, industry, company size, location
- Email enrichment — find and verify email addresses
- Team & stats — view team info, campaign performance metrics
- Webhooks — manage event subscriptions
Some operations (email finding, verification, phone enrichment) consume credits. Your AI assistant will warn you before using them.
Advanced: limit the exposed tools
By default the server exposes every tool your team has access to. If your AI assistant only needs part of lemlist, add a?bucket= parameter to the connector URL to expose a smaller, focused set:
?bucket=prospecting&bucket=crm.
Every bucket also ships with a small always-available core: campaigns and team context, settings, memory, help center search, and the generic
call_api tool. That core is what keeps a narrowed connector usable, since anything outside your bucket stays reachable through call_api.
Ask for ?bucket=core to get that core on its own. Combining it with a bucket changes nothing, since it is always included: ?bucket=core,crm and ?bucket=crm expose exactly the same tools.
Omit the parameter to keep the full tool list. An unrecognized bucket name is ignored, and if none of the names match the server falls back to the full list, so a typo never leaves your assistant without tools.
That’s it. No SDK, no boilerplate, no tears. Just ask.