Instantly × Claude · MCP Playbook

Stop replying to leads by hand. Run Instantly from Claude.

A full technical setup for connecting your Instantly account to Claude through MCP, plus the exact workflow for reading real reply threads, judging fit, and drafting follow-ups that match what you actually said last.

Setup time ~10 min No code required Instantly API v2 Read-only by default
Jump to a section 01 · What you get 02 · Before you start 03 · API key 04 · Connect MCP 05 · Verify 06 · Tool map 07 · The blind spot 08 · Safety rules 09 · Reply workflow 10 · Fit judgment 11 · Prompt library 12 · Troubleshooting
01

What you get once this is connected

MCP (Model Context Protocol) is the cable between Claude and Instantly. Once it is plugged in, Claude can read your account live and act inside it from a normal chat. No CSV exports, no tab switching.

  • Pull every reply across campaigns and separate real interest from auto-responders and rejections.
  • Read a full thread, both what they sent and what you sent, before a single word gets drafted.
  • Judge fit against your own rules and tell you to skip a lead instead of wasting a follow-up on it.
  • Draft the reply that continues the conversation instead of repeating a pitch you already sent.
  • Audit campaign health: reply rates, bounce rates, sending accounts, warmup, DNS records.
  • Build and edit sequences, manage leads and lists, and run blocklist hygiene.

The real win is not speed. It is that nothing gets answered without the thread being read first. That single habit is what keeps warm threads from going cold.

02

Before you start

  • An Instantly account with API access on your plan.
  • A Claude account. Custom connectors are available on paid plans.
  • Admin rights on the Instantly workspace you want to connect.
  • Ten minutes and somewhere safe to store a key.

Security first. Your API key is a full set of house keys to your outbound. Never paste it into a screenshot, a Loom, a shared doc, or a LinkedIn post. If you use the URL method below, the key sits inside the connector URL, so that URL is a secret too.

03

Step 1 · Generate your Instantly API key

  1. Log in to Instantly.
  2. Open Settings, then the Integrations or API section.
  3. Choose API keys and click Create key (use API v2).
  4. Name it something you will recognise later, for example claude-mcp.
  5. Set the scopes. Start read-only, and add write scopes later once you trust the setup.
  6. Copy the key immediately. Most platforms show it once.

While you are on that page, look for the MCP server URL Instantly provides. You will need it in the next step.

Scope discipline. One key per tool. If you ever need to cut Claude's access, you revoke that one key and nothing else in your stack breaks.

04

Step 2 · Connect the MCP to Claude

Two methods. Method A is the one most people should use.

Method A · Custom connector in Claude settings

  1. In Claude, open Settings and find Connectors.
  2. Click Add custom connector.
  3. Name it Instantly MCP.
  4. Paste the MCP server URL from Instantly and replace the placeholder with your own API key.
  5. Click Add. The connector goes live, and you can open Configure to control which actions Claude is allowed to perform.
Connector URL shape
https://mcp.instantly.ai/mcp/<YOUR_CREDENTIAL_STRING>

# Instantly gives you this URL on the API page.
# The credential portion IS your secret. Treat the whole URL as a password.

Method B · JSON config (Claude Desktop and Claude Code)

If you prefer to declare the server in a config file, use the header form so the key is not sitting in a URL path.

mcp config
{
  "mcpServers": {
    "instantly": {
      "url": "https://mcp.instantly.ai/mcp",
      "headers": {
        "Authorization": "PASTE_YOUR_API_KEY_HERE"
      }
    }
  }
}

Save, then fully restart the Claude app so the server is picked up.

Turn off what you do not need

Open the connector's settings and disable the destructive tools until you actually want them: anything named delete, plus campaign activation and send actions. You can enable them per task later.

05

Step 3 · Verify the connection

Do not start with a real task. Start with something harmless that proves the pipe works.

Connection test

Using Instantly, list my campaigns with their status, and tell me which ones are currently active. Read only, do not change anything.

If you get a list back with real campaign names, you are connected. If you get an authentication error, jump to troubleshooting.

Second test worth running. Ask for reply counts per active campaign. It confirms Claude can reach your inbox data, which is the part that matters most for everything below.

06

Step 4 · The tool map

The connector exposes a large tool set. You do not need to memorise it. These are the ones that carry almost all real work.

ToolWhat it doesWhen you reach for it
list_campaignsAll campaigns and their statusStart of any session
get_campaignFull config: steps, schedule, limitsAuditing a sequence
list_emailsMessages from the uniboxThe core reply workflow
get_campaign_analyticsSent, opens, replies, bouncesWeekly performance review
analytics_daily_accountPer-inbox daily send volumeSpotting an inbox pulling weight it should not
list_accountsSending mailboxes and warmup stateDeliverability checks
accounts_test_vitalsMX, SPF, DKIM, DMARCWhen replies drop off a cliff
list_leads / get_leadLeads in a campaign or listSegmenting and cleanup
update_leadEdit lead fields and statusMarking outcomes
blocklist_createBlock an address or domainSomeone asks to be left alone
create_campaign / update_campaignBuild or edit sequencesLaunching new outreach
pause_campaign / activate_campaignStart and stop sendingHandle with care

The important parameter to learn is on list_emails. It takes an email type, and that single argument is where most people's workflow quietly breaks.

07

Step 5 · The blind spot that breaks everything

Here is the part nobody tells you, and it cost me a nearly embarrassing email before I caught it.

When you pull messages with the type set to received, you get only what the lead sent you. Your own replies are a separate dataset. So if you ask Claude to "read the thread" and it only pulls inbound mail, it sees their questions and never sees that you already answered them three days ago.

The result is a follow-up that re-answers a solved question. To the lead, it reads like you do not read your own emails.

What Claude sees with inbound only, versus what actually happened:

Time
Inbound only (broken)
Full thread (correct)
Day 1
Cold email sent
Cold email sent
Day 8
Lead replies with two questions
Lead replies with two questions
Day 8
not visible
You answer both, honestly, and name the one thing you cannot do
Day 12
Silence
Silence
Now
Draft: answers the two questionsalready answered · looks careless
Draft: a short nudge on your own last messagecorrect next move

The fix

  • Pull both types, sent and received, for the campaign.
  • Stitch them together on the thread ID, which is the reliable key. Sort by timestamp.
  • Identify who sent the true last message. That single fact decides the whole reply:
    • Last message was theirs → answer what they asked.
    • Last message was yours → nudge your own message, do not re-pitch.

One more trap. Some sent messages come back with an empty body even though they exist. The timestamp is there, the text is not. When that happens, do not let the assistant guess. Paste the reply in yourself, or give it the gist in one line.

08

Step 6 · Set the safety rules first

Give these rules once at the start of a working session. They are the difference between a useful assistant and a liability with access to your sending accounts.

Session ground rules

Rules for this session, follow them exactly.

1. Read only. Do not send, modify, activate, pause, or delete anything in Instantly.
2. All emails are drafts for me to review. I send everything manually.
3. Before drafting for any lead, read the FULL thread: both sent and received, stitched on thread ID and sorted by time.
4. Tell me who sent the last message before you draft.
5. If the last message was mine, draft a nudge on it. Never re-answer something I already answered.
6. If the thread shows the lead is a bad fit, say SKIP and why. Do not draft.
7. If a sent message body is empty, ask me for it instead of guessing.
8. Never claim a capability my company does not have.

  • Never let it auto-send. One badly judged email under your name is worse than a hundred unsent ones.
  • Keep destructive tools off unless you are actively using them.
  • Re-state the rules if the conversation runs long. Long sessions drift.
09

Step 7 · The reply workflow, lead by lead

This is the loop that actually produces booked meetings. Work one lead at a time. Batching feels faster and produces generic mail.

  1. Pull the replies. Every inbound message across active campaigns.
  2. Sort by real interest. The reply data carries an interest signal, positive, neutral, negative. Auto-responders and rejections drop out here.
  3. Remove anyone already booked. The lead status field carries this. Do not follow up on a meeting you already have. This one step cut my list nearly in half.
  4. Read the full thread for the lead in front of you, both directions.
  5. Judge fit before drafting. See the next section. A skip is a result.
  6. Draft, review, send manually, then move to the next lead.

Sequence matters. Booked and bad-fit leads get removed before anything is written. Otherwise you spend your best thinking on leads that were never going to close.

10

Step 8 · Teach it your fit rules

An assistant that drafts a beautiful email to a lead you should have dropped is not helping you. Give it your disqualifiers explicitly, in writing, and let it call the skip.

These are anonymised patterns from real threads in my own campaigns. Yours will differ, but the shape holds.

What the thread showedCallWhy
Wanted money upfront before any resultSkipHead-on conflict with a firm payment policy. No pitch fixes a policy conflict.
Model charged the worker to get placedSkipEthical line. Not a negotiation.
Needed a service outside our core offerSkipNever claim a capability you do not have. It collapses on the call.
Needed local supply, we only do the oppositeSkipMy own earlier reply had already surfaced the mismatch. Thread was dead.
Destination market we do not serve right nowSkipGeography rules out otherwise good leads. Say so early.
Recurring high volume, core roles, clean termsDraftBest lead in the batch. Lead with the policy that reassures them, then the value.
Asked for one specific guarantee we can meetDraftConfirm exactly that, keep it short, go straight to a call.
Said yes to a call weeks ago, never scheduledDraftWarm lead lost to no follow-through. Offer two concrete slots.

Where the assistant should push back on you. One lead of mine looked like an upfront-payment problem. Reading the thread properly showed he was refusing to pay upfront himself, which was the same position as mine, not the opposite. A good assistant flags that distinction instead of agreeing with your first read. Ask it to argue with you.

11

Step 9 · Prompt library

Copy these. They are the ones I actually reuse.

Find every lead who replied

Using Instantly, pull all received emails from my active campaigns. Group them by interest signal: genuinely interested, neutral or auto-reply, not interested. For the interested ones, give me the sender address, company, and a one-line summary of what they asked for. Read only.

Remove the ones already booked

From that list, check the lead status on each and remove anyone with a meeting already booked. Show me the removed list separately so I can confirm, then give me the clean follow-up list.

Read one full thread

For [lead email], pull the complete thread. Include both sent and received messages, match them on thread ID, and sort by timestamp. Show me each message with the direction and date. Then tell me who sent the last message and what is still unanswered.

Judge fit, then draft or skip

Based on that full thread, decide whether this lead is a real fit for us. My hard rules: [your rules]. If it is not a fit, say SKIP and explain why in two lines. If it is a fit, draft the follow-up that continues from the true last message. Do not repeat anything I already said.

Weekly campaign health check

Using Instantly, give me a health check on my active campaigns: sent volume, reply rate, and bounce rate for each. Flag any campaign with a bounce rate that looks dangerous, and any sending account whose warmup or volume looks off. Then check the DNS records for my sending domains.

Pre-launch sequence audit

Read the full config of campaign [name], including every step, the sending accounts, daily limits, and schedule. Tell me what would stop this from landing in the primary inbox, and what you would change before I activate it. Do not change anything yourself.

12

Step 10 · Troubleshooting

SymptomFix
Authentication or credential errorThe key is wrong, expired, or missing a scope. Regenerate it, update the connector, restart the app.
Connector added but no tools appearFully quit and reopen Claude. Config is read at startup.
Claude says it cannot see your sent mailIt pulled inbound only. Tell it to pull the sent type as well and stitch on thread ID.
A sent message has no body textKnown gap in the export. Paste the message yourself.
Result too large to readNarrow it. One campaign at a time, smaller page size, or one thread at a time.
Draft ignores what you already sentRe-state the ground rules. Ask it to show the thread before drafting, every time.
It invents a capability you do not haveAdd your hard limits to the ground rules and correct it once. Then check every factual claim in a draft before sending.

The habit that makes this work. Before you send anything it wrote, ask yourself one question: does this reply prove I read the thread? If the answer is no, do not send it.