Use Warmerly with AI (MCP)
Warmerly runs a Model Context Protocol server, so an AI assistant you already use (Claude, ChatGPT, Claude Code, Cursor, or any other MCP client) can look things up in your Warmerly workspace directly: your mailboxes and their health, campaigns, leads, inbox conversations, and deliverability checks, all without you copy-pasting data back and forth. You sign in once with your normal Warmerly login; after that the assistant asks Warmerly, not you.
Available on every plan, including Free. There's no separate API key or add-on required to connect, just your Warmerly account.
#Server URL
https://app.warmerly.com/api/mcpEvery client below connects to this one URL.
#Connect
#claude.ai
- Go to Settings → Connectors → Add custom connector.
- Paste
https://app.warmerly.com/api/mcpas the server URL. - Sign in with your Warmerly account when prompted.
#ChatGPT
- Go to Settings → Apps & Connectors, and turn on Advanced (or Developer mode) if you don't already see an option to add an MCP server.
- Add a new MCP server and paste
https://app.warmerly.com/api/mcpas the URL. - Sign in with your Warmerly account when prompted.
Connector availability depends on your ChatGPT plan, if you don't see the option, it isn't enabled on your current plan.
#Claude Code
claude mcp add --transport http warmerly https://app.warmerly.com/api/mcpThen run /mcp inside Claude Code and follow the prompt to sign in with your Warmerly account.
#Cursor
Add this to ~/.cursor/mcp.json:
{
"mcpServers": {
"warmerly": {
"url": "https://app.warmerly.com/api/mcp"
}
}
}Cursor will prompt you to sign in with your Warmerly account the first time it calls a tool.
#Claude plugin and skills
The connection gives an assistant Warmerly's tools; skills teach it how to use them well. Warmerly publishes four, each a workflow rather than a list of tools:
- launch-outreach-campaign: from your ideal customer to a verified lead list, a sequence that follows cold-email best practice, a readiness check and a launch.
- deliverability-doctor: why mail lands in spam or bounces (mailbox health, SPF, DKIM, DMARC, MX, blocklists, placement tests) and exactly what to fix.
- reply-triage: separate real replies from autoresponders and unsubscribes, draft answers, and suppress anyone who asked to be left alone.
Every skill asks before bulk sends, launches or replies unless you tell it it may act on its own, and your plan limits and suppression list apply exactly as in the dashboard.
The plugin is open source at github.com/WarmerlyApp/claude-plugin.
Claude Code installs the server and all four skills as one plugin:
/plugin marketplace add WarmerlyApp/claude-plugin
/plugin install warmerly@warmerlyThen run /mcp and sign in. (Already connected with claude mcp add? The plugin adds the same server, so you can remove the manual one.)
claude.ai: add the connector as above, then upload each skill's .zip under Settings → Capabilities → Skills. To build the zips, clone the plugin repo and run node build-skill-zips.mjs (Node 18+, no dependencies); they land in dist/.
Ready-to-paste configs for every other MCP client (VS Code, Windsurf, Codex CLI, Gemini CLI and more) are in github.com/WarmerlyApp/mcp.
#What happens when you sign in
Signing in opens the normal Warmerly login (or lets you use an existing session), then a consent screen where you choose how much of your account that connection gets:
- One workspace (the default). Every tool call from that assistant is scoped to the workspace you picked. It can't see or touch your other workspaces.
- All my workspaces. The assistant can list every workspace you belong to and switch between them (
list_workspaces,switch_workspace). It acts in one workspace at a time, starting in the one you picked, and the name of the workspace is in every switch reply so it can check before it writes. New workspaces you create later are included. The screen only offers this when you have more than one workspace.
You can see which kind each connection is, and revoke it, under Settings, Connected apps.
#Tools
Agents can read your workspace and act in it: create and edit draft campaigns, add leads, reply to your inbox, verify and find email addresses, and manage suppression. The same guardrails below apply to every one of those actions. No tool can start or resume a campaign's sending: you do that yourself in the Warmerly dashboard.
| Tool | What it does |
|---|---|
search_docs | Search the Warmerly documentation for pages relevant to a question. |
read_doc | Read the full content of a Warmerly docs page by slug. |
get_account_overview | Snapshot of the workspace: plan, quota usage, mailbox/campaign counts, setup gaps. |
list_workspaces | The workspaces this connection can act in, and which one it is acting in now. |
switch_workspace | Move a connection made for all your workspaces to another one. A single-workspace connection refuses. |
get_connect_mailbox_link | Get the URL to connect a mailbox yourself (mailbox credentials never pass through an MCP client). |
list_mailboxes | List the workspace's connected mailboxes, their status and health. |
get_mailbox_health | A mailbox's daily health history plus its latest SPF/DKIM/DMARC/MX check. |
set_warmup | Turn warmup on or off for a mailbox. Turning it off is refused for the free sandbox mailbox. |
update_mailbox_settings | Change a mailbox's sending capacity: its daily campaign-send cap (the ceiling a campaign's ramp can never exceed), the minimum wait between sends and the daily warmup send volume. Only the fields you pass change. Refused on the free sandbox mailbox. |
check_domain | Run a live SPF/DKIM/DMARC/MX check against any domain. |
run_placement_test | Send a placement test from a mailbox and score where it landed. |
search_leads | Search Warmerly's lead database with a natural-language query or structured filters (up to 25 companies per call). Returns company details and whether each has a contact email, not the address itself, use add_leads_from_search to put them in a campaign. |
count_leads | Count how many leads match a search, without fetching rows. |
verify_email | Check whether an email address is likely to be deliverable. |
find_email | Start a job to find an email address for a person or company. |
get_find_email_result | Poll a find_email job for its result. |
suppress_emails | Add addresses to the workspace's suppression list. |
list_campaigns | List the workspace's campaigns with status and send/reply counts. |
get_campaign | Get one campaign's settings, sequence steps and readiness to start. |
create_campaign | Create a new draft campaign. |
set_campaign_sequence | Set a campaign's sequence of send steps. Custom merge tags (anything beyond the built-in name, company and sender tags) must already exist on the campaign's leads, so add leads first. Editing a running campaign keeps leads on their current step, and removing a step that leads are sitting on is refused. |
update_campaign_settings | Change a campaign's sending schedule and volume ramp (daily limit, sending days, hours and timezone, minimum wait, stop-on-reply behaviour, tracking options, ramp, reply and lead targets). Only the fields you pass change. It does not change the campaign's status, name or AI-opener brief, and never starts sending. |
add_leads | Add up to 1,000 leads you supply (your own list, a CRM export) to a campaign. Addresses already in the campaign are skipped. |
add_leads_from_search | Add the leads matching a lead-database search to a campaign (up to 500 per call, 50 by default); companies with no contact email are skipped, and each lead added counts against your lead-export allowance. |
prepare_campaign_launch | Check a campaign is ready to send and get the link where you press Launch or Resume yourself. It never starts sending. |
pause_campaign | Pause a running campaign. |
get_campaign_stats | Get a campaign's send/open/reply/bounce numbers. |
list_conversations | List inbox conversations (email/LinkedIn), newest activity first. |
get_conversation | Get one conversation's message timeline and any draft reply. |
draft_reply | Generate and autosave an AI-drafted reply, without sending it. |
send_reply | Reply to an existing conversation over email or LinkedIn, only after you have approved the exact message: the call must carry confirm: true. It cannot start a new conversation. Leave out the subject to reply in the thread ("Re: …"). |
categorize_message | Set an inbox message's category: lead, not_relevant or spam. |
#Guardrails
Every action a connected assistant takes goes through the exact same checks as the dashboard, there is no separate, looser path for AI:
- Same plan limits, quotas and capacity as the dashboard. A tool call is refused under the identical conditions a dashboard click would be, through the same underlying function, and spends the allowance of the workspace the connection belongs to.
- The billing lock applies. If the workspace is locked (a payment is overdue, it's over its plan's limits, its plan is paused, or no plan is chosen), every action that sends or changes something is refused. Reading still works, and so do the actions that help you get back under your limits: pausing a campaign, turning warmup off, suppressing addresses and categorising messages. A deleted workspace allows no actions until it is restored.
- The suppression list is enforced. An AI-sent reply or campaign send never reaches an address that unsubscribed or bounced, the same as a human-sent one.
- Replies respect your mailbox's health.
send_replywon't send from a mailbox that is paused, needs reconnecting, or has campaign sending paused while its reputation recovers, and each sending account can send at most 50 replies a day through connected apps. - An assistant can never start sending.
prepare_campaign_launchchecks readiness (no leads, no senders, an unsupported channel on the current plan) and returns a link; you review the campaign and press Launch or Resume in Warmerly. Nothing is mailed to anyone until you do. - Rate limited. 60 tool calls per minute per connection; sends (a reply) additionally share a tighter 20-per-minute budget per connection and 40 per minute across all your connections, so a runaway assistant can't blow through your sending reputation even if it can call tools freely.
- Every action is logged. Everything that sends or changes something is recorded to the workspace's audit log with the connected app's name, so "what did the AI do" is always answerable. Reads are not logged.
- No passwords ever pass through the AI. Connecting a mailbox, or anything else that needs a password or OAuth grant, always happens in the Warmerly dashboard itself. The assistant can at most hand you a link to open.
- Revocable any time. Every connection shows up under Settings → Connected apps, where you can revoke it, the assistant loses access immediately.
- Scoped to what you chose. A connection made for one workspace can only ever see and act in that workspace. A connection made for All my workspaces acts in one workspace at a time and can switch between the workspaces you belong to.
#Documentation for LLMs
If you are building on the REST API with an AI coding assistant, or want a model to answer questions about Warmerly, give it the docs in a form it can read in one go:
| URL | What it is |
|---|---|
| warmerly.com/docs/llms.txt | An index of every docs page, with a one-line summary and a link to its Markdown |
| warmerly.com/docs/llms-full.txt | The entire documentation (guides and the full API reference) as one Markdown file |
warmerly.com/docs/<page>.md | Any single page as Markdown, e.g. /campaigns.md or /authentication.md |
They are generated from these pages, so they are always current. Paste the llms-full.txt URL into Claude, ChatGPT or Cursor (or save the file into your project) and ask it to write your integration.
#Troubleshooting
- The assistant says it got a 401 / lost access. The connection was revoked or its token expired, reconnect using the steps above.
- The assistant is looking at the wrong workspace. A connection made for one workspace stays in it. Reconnect and choose All my workspaces at the consent screen, then ask the assistant to switch workspace. Or reconnect and pick the other workspace, and keep both connections.
ChatGPT and Claude
Connect your AI assistant.
Connect Claude or ChatGPT, sign in once, and ask about your campaigns in plain words.