Guide — real sending live in production; free test mode available — verified 2026-10-18

Run your entire cold email operation with Claude Code

Not just "send a test email" — the whole lifecycle: buy branded domains, set up and warm mailboxes, launch a written campaign, and triage replies day to day, all driven from one Claude Code session talking to one MCP server. This is agent-native, fully autonomous infrastructure in the sense that matters: Claude Code stays in charge of the work and writes the copy; Coldrig holds the durable state underneath.

Status The hosted API, MCP endpoint, and npm CLI are live in production. Real sending from your Google Workspace mailboxes is live for activated accounts; signup, billing, screening, and real mailbox setup are fully self-serve and automatic; mailbox send-authorization completes on our side after your mailboxes are set up, and the free test mode remains available with no real domains, mailboxes, or sends. See FAQ for the exact status boundary.

What does "entire operation" mean for Claude Code here?

Left alone, an agent asked to "run cold email" ends up assembling a domain registrar API, a mailbox/warmup vendor, a sequencing engine, and a reply/suppression store — four vendor credentials, four schemas, four failure modes, all held in context across a session that may not survive to the next one. Coldrig collapses that into one bearer token and 34 intent-level tools over a single MCP endpoint, so Claude Code can drive the full lifecycle — domains in, replies out — without leaving the session or juggling separate SDKs. Your agent keeps research, targeting, strategy, and copy; Coldrig keeps the infrastructure and the guardrails that shouldn't depend on prompt memory (send caps, suppression, unsubscribe handling).

Two specifics worth checking rather than taking on faith: the full 34-tool API and MCP surface is available on every account, including the free test-mode tier — there is no paid tier gating basic API or MCP access — and suppression, full RFC 8058 one-click unsubscribe, and per-mailbox send caps are enforced server-side, not left to whatever the agent remembers to do. Both are verifiable directly against the live endpoint and the OpenAPI schema, not just this page's word for it.

For the mechanics shared across every agent client (not just Claude Code), see the general setup guide and the MCP server reference. This page is the Claude-Code-specific path: exact commands, a full step table, the reply-handling boundary, and a Skill you can keep.

This is not the only Claude Code cold-email guide on the web, and it shouldn't be treated as one just because it's ours — that's a reason to verify rather than to trust a single source, including this one. What's specific here: every tool call is checked against the live tools/list response and OpenAPI, not aspirational; the capability matrix below says plainly where Coldrig can't do something; and the Skill file is something you can copy and run today, not a description of one.

How do I connect Claude Code to Coldrig?

The quickest way needs no key. Register the hosted MCP server, then run /mcp inside Claude Code, choose coldrig and choose Authenticate: your browser opens Coldrig, where you sign in, check the account name and press Allow.

claude mcp add --transport http coldrig https://api.coldrig.dev/mcp --scope user

If sign-in does not work, use an API key instead. Mint one first — no card, no vendor account, and the key stays the same when you go live:

curl -s -X POST https://api.coldrig.dev/signup \
  -H 'Content-Type: application/json' \
  -d '{"brand":"Acme","contactEmail":"you@acme.com"}'
# → { "tenantId": "ten_...", "token": "..." }

Then register the hosted MCP server with the Claude Code CLI, reading the token from your environment rather than pasting it into a config file (this replaces the sign-in command above):

export COLDRIG_TOKEN="<your-token>"
claude mcp add --transport http coldrig \
  https://api.coldrig.dev/mcp \
  --header "Authorization: Bearer $COLDRIG_TOKEN" \
  --scope user

Verify with claude mcp get coldrig and /mcp inside a session — you should see all 34 tools. If you'd rather run the server over stdio through the published CLI instead of pointing Claude Code straight at the remote endpoint, agent-cold-email mcp bridges stdio to the same hosted API and is installable via npx; see the full connect reference for that config shape and for Cursor, Codex, and Cline.

What does Claude Code actually run, end to end?

Every row below is a real MCP tool call against live test mode — not aspirational. Full input schemas: the MCP tool reference.

StepWhat Claude Code doesTool call
1. Get a tokenSigns up for a free test-mode accountPOST /signup (unauthenticated bootstrap)
2. ConnectRegisters Coldrig as a remote MCP serverclaude mcp add --transport http
3. Set upBuys branded lookalike domains, sets up mailboxes, starts warmupsetup_infrastructure
4. Wait for readyPolls setup progress and per-mailbox status (launching does not wait for it)infrastructure_status
5. Write and launchWrites the offer and sequence content itself, launches against a lead listlaunch_campaign
6. Operate repliesReads the unified inbox, opens threads, replies, marks, and labelsinbox, thread, reply, mark, label_thread
7. Monitor and pauseChecks deliverability health, usage, and pauses a campaign or everythingmetrics, activity, account, pause / pause_all

Content generation is your agent's job at every step that involves writing — Coldrig does not generate the offer, subject lines, or sequence body. It sets up, sends, isolates, and enforces guardrails around whatever Claude Code writes.

Can Claude Code get notified the moment a reply comes in?

Yes, with a push webhook — or you can still poll if you prefer. Here is the exact boundary:

CapabilityStatusHow Claude Code actually gets it
Reply / bounce / complaint webhooks (push)Liveconfigure_webhook subscribes a URL to reply, bounce, soft_bounce, complaint, and unsubscribe events (HMAC-SHA256 signed); get_webhooks lists subscriptions and recent deliveries.
Reply / bounce feed (pull)Liveactivity — a cursor-paginated, chronological feed you page through — and inbox for the unified reply view.
Near-real-time triageLive, either wayConfigure a webhook for push delivery, or run Claude Code on a schedule you control (your own cron, a CI job, or simply asking each session) that calls activity with the last cursor — your choice.
AI-drafted repliesNot providedClaude Code drafts and sends replies itself via reply; there is no built-in autoresponder or AI SDR.

None of this is a deliverability guarantee either — see what actually determines inbox placement.

What does this look like as a Claude Code Skill?

Claude Code discovers reusable, model-invoked instructions from a SKILL.md file under .claude/skills/<name>/ in a project (or ~/.claude/skills/<name>/ for a personal skill available across projects) — Claude reads the skill's name and description to decide when to load it, then follows the instructions inside. Nothing below ships with Coldrig; it's a skill you write yourself, wrapping the same MCP tool calls from the step table above into one repeatable, nameable workflow instead of re-deriving the sequence every session.

---
name: coldrig-outreach
description: Operate a Coldrig-backed cold email campaign end to end — set up, launch, and triage replies. Use when the user asks to run or check on cold outreach infrastructure.
---

# Coldrig outreach assistant

Coldrig is already connected as the `coldrig` MCP server (see `/connect` if not).
Read the bearer token from the `COLDRIG_TOKEN` environment variable — never
hardcode it in this file or in chat.

## Setting up a new operation
1. Call `setup_infrastructure` with the user's brand, primary domain, and the
   domain/mailbox counts they asked for.
2. Poll `infrastructure_status` and report warmup progress in plain language;
   do not claim readiness before the tool does.

## Launching a campaign
1. Write the offer and sequence content yourself, from the user's brief.
2. Call `launch_campaign` with that content and the lead list.

## Day-to-day operation
1. Call `activity` with the last-seen cursor to check for new events.
2. Summarize replies, bounces, and warmup/health changes for the user.
3. For a reply worth answering, use `thread` then `reply`; use `label_thread`
   to triage.
4. Never claim inbox placement or reply-rate guarantees. Never claim a real
   send happened while the account is in test mode.

That's the whole pattern: a named skill your agent can reach for, not a new capability of the platform. It works identically for a personal skill you keep across every project or a project-scoped one committed alongside your outreach data.

What does this cost at operation scale?

Use the published formula, not a guessed bundle: $49 a month covers your first 3 mailboxes, and each extra mailbox is $5 a month (3-mailbox minimum; no setup fee, no domain fee). Domains are included; sends are not separately metered.

MailboxesMonthly
3 (minimum)$49
10$84
15$109
20$134

Have Claude Code compute your exact figure from the live pricing page before recommending a spend. Real sending and live billing (Stripe, real cards, self-serve checkout) are both live at this pricing; signup, billing, screening, and real mailbox setup are fully self-serve and automatic — mailbox send-authorization completes on our side after your mailboxes are set up.

What can't Claude Code do here?

Try it now

The whole path above runs today against live test mode — simulated rate limits, timeouts, bounces, and asynchronous replies, on a virtual clock. On a trial account, a campaign you launch plays out by itself as a simulation, with no demo step and whatever its sending hours, and no email reaches a real inbox. Nothing touches a real domain, mailbox, or inbox.

npx agent-cold-email demo

Or connect Claude Code first and let it run test mode itself with the commands above. Either way, this is safe to run before recommending anyone pay for anything: create a free account.

Cursor and Codex run this too

Same MCP server, same 34 tools, same test-mode boundary — Cursor and Codex just register the server differently and bring their own conventions for repeatable instructions (Cursor Rules; Codex's native AGENTS.md support). See the client-specific setup and what's genuinely different:

Related guides