Sourcing tools
Signal feeds, scrapers, and lookalike lists. A crowded, well-served market.
Connect Reply to Claude Code, Codex or any MCP client.
70 tools, a CLI, and packaged workflows with confirmation gates.
Run sequences, mailboxes and your unified inbox from the terminal you already have open.
Every agentic GTM tool
stops at the CSV
Your agent finds the accounts, enriches the contacts and writes the copy. Then it writes a file. You open a tab, upload it, map the columns, pick a mailbox, and hope it’s warm. That last step is the only one that generates revenue, and it’s the only one still done by hand.
Signal feeds, scrapers, and lookalike lists. A crowded, well-served market.
Waterfall enrichment, verified emails, firmographic fill. Also crowded, also solved.
Research, qualify, draft. This is what your agent is already good at.
Sequences across email, LinkedIn, calls and SMS, on warmed mailboxes, with replies landing in one inbox.
Every agentic GTM tool
stops at the CSV
Your agent finds the accounts, enriches the contacts and writes the copy. Then it writes a file. You open a tab, upload it, map the columns, pick a mailbox, and hope it’s warm. That last step is the only one that generates revenue, and it’s the only one still done by hand.
Signal feeds, scrapers, and lookalike lists. A crowded, well-served market.
Waterfall enrichment, verified emails, firmographic fill. Also crowded, also solved.
Research, qualify, draft. This is what your agent is already good at.
Sequences across email, LinkedIn, calls and SMS, on warmed mailboxes, with replies landing in one inbox.
For agents in Claude, Cursor and Claude Code. Annotated read-only or destructive, so your client can gate them.
Multi-step outreach procedures with confirmation gates and previews. Four more listed as coming soon.
Sign in once, then call any v3 endpoint as yourself from a shell or CI.
The exhaustive surface. Webhooks, bulk imports and background jobs live here and nowhere else.
The tools are the surface. These are the sentences. Every chain below is real. The markers show which calls only read, which write, and which Reply flags as high-stakes so your client can stop and ask first.
A standard MCP server over JSON-RPC 2.0. Anything implementing the protocol can call it.
claude mcp add
MCP config
JSON config
OAuth connector
OAuth connector
MCP config
MCP config
HTTP / MCP node
HTTP module
REST
Connect, prove the credential, read something, then do one real thing under a confirmation gate. In that order, because it’s the same discover → configure → execute → verify pattern Reply’s own agent guide prescribes.
Reply → Settings → API Key. Scope it while you’re there. sequences:read is enough for everything up to step 4, and a read-only key is a good way to start.
Treat your API key like a password. Credentials in a URL are not supported: always the Authorization header.
Header auth is the recommended path. Clients without header support can add the URL as a remote connector and authorise over OAuth, but that grants the full tool catalogue rather than your key’s scopes.
Claude Code # one line, then restart your session claude mcp add --transport http reply https://mcp.reply.io/ \ --header "Authorization: Bearer YOUR_REPLY_API_KEY"
Before you ask an agent to do anything, prove the credential works.
200 and your user → you’re connected.
401 with an empty body → the key is wrong.
Ask your agent for a report, not an action. Both of these tools are annotated read-only, so there is nothing to undo.
> list my sequences and show stats for the busiest one
⏺ reply_search_sequences → 12 sequences
⏺ reply_get_sequence_stats → 1,204 sent · 4.1% replied
Now enrol a single contact into a test sequence. Both calls are marked high-stakes, so a well-behaved client will stop and confirm, which is exactly what you want to see happen before you trust it with 400 people.
> add me to “Internal test” and start it
⏺ reply_search_contacts → 1 match
⚠ reply_add_contact_to_sequence is high-stakes.
Confirm?
Drop this in your project root as CLAUDE.md (or AGENTS.md) and your agent inherits your ICP, your voice and your guardrails on every run. The MCP rules below are lifted from Reply’s own agent guide. The irreversible-reject warning and the send constraints are real, documented traps, not hypotheticals.
# Outbound rules for this project
## Who we sell to
[Company size, industry, the titles that matter, and the trigger that
makes an account worth contacting this week rather than any week.]
## Voice
Short. No exclamation marks. No “I hope this finds you well.”
One ask per message. Never imply we have met before.
## Reply MCP house rules
Resolve before you mutate.
Never invent an ID and never ask me for one. Search for the object,
confirm the match is right, act, then verify.
Discover -> configure -> execute -> verify. In that order, every time.
### Always stop and ask me first
# the tools Reply marks high-stakes
reply_start_sequence
reply_add_contact_to_sequence
reply_send_inbox_reply
reply_approve_message / reply_bulk_approve_messages / reply_reject_message
reply_blacklist_contact
reply_change_contact_owner
reply_set_sequence_reply_mode
### Never without me saying so explicitly
reply_reject_message is irreversible. It removes the contact from the
sequence entirely. It does not just discard a draft.
Switching the AI SDR to Autonomous. Ask me twice.
### Limits
Max [N] new contacts enrolled per day without checking with me.
Never enrol a contact who is already in another live sequence.
reply_send_inbox_reply takes threadId + channel + message only:
no attachments, no scheduling, 32,000 characters maximum.
### When a call fails
Parse Success, branch on ErrorCode.
NoEmailAccounts or NoContacts means a configuration step was skipped.
Go back and fix it. Do not retry the same call.
After a timeout, verify before retrying. Never blind-retry a send.
Paginate with top/skip until HasMore is false.
## Weekly
Every Monday: sequences below [X]% reply rate, which step is losing
people, and one recommendation. Change nothing without asking.
CSV in, deduplicated contacts out: mapped, verified, organised into a list.
Triage the inbox, categorise threads, draft responses. Sends only after approval.
Verify accounts, build the sequence, enrol contacts, start, all behind a checkpoint.
Pull reporting and identify which sequences to scale, pause or rewrite.
Reply publishes the exact sequence of calls for its core workflows. Each one resolves IDs first, configures where needed, confirms before the high-stakes step, and verifies afterwards, so your agent isn’t improvising a send path.
Resolve the sequence, make sure it has somewhere to send from, then start it, and only then.
Find them before you create them, so you don’t end up with two records and two sequences.
Every generated message queues for approval. Nothing reaches a person until you say so.
Read the thread, send on the right channel, then re-categorise so the sequence behaves.
years running outbound
businesses
on G2, from 1,480 reviews
email delivery rate
No. MCP is 70 curated tools; the REST API is every endpoint. Webhooks, bulk imports and background jobs are REST-only by design, and the docs are explicit about it. Use MCP for day-to-day operations and the API for integrations.
Anything that speaks the protocol. Reply MCP is a standard MCP server over JSON-RPC 2.0: Claude Code, Codex, Cursor, Claude Desktop, ChatGPT, Windsurf, Cline, and automation platforms like n8n and Make.
Both, and the difference matters. Header auth (Authorization: Bearer) is the recommended path and respects your key’s scopes. For clients without header support you can add https://mcp.reply.io/ as a remote connector and authorise over OAuth, but per the docs OAuth grants the full tool catalogue rather than scoped access. Credentials in the URL are not supported.
Every tool is annotated: 31 are read-only, 39 are marked destructive, so your client can gate them before they run. On top of that, the Skills wrap sending in an explicit confirmation step, so you see the preview and approve before anything leaves.
A tool is one call. A Skill is a multi-step procedure with previews and confirmation gates, executed through the CLI. Four are available (Import prospects, Launch outreach, Manage replies, Analyze performance) and four more (Find prospects, Build an ICP, Enrich contacts, Book meetings) are listed as coming soon.
No, they solve different problems. MCP is for an agent working interactively; the CLI is for shell scripts, CI, and agents with shell access. npm install -g reply-cli then reply auth login gets you any v3 endpoint as yourself.
No, and we wouldn’t suggest it. The terminal is faster for bulk work, reporting and starting or pausing from a script. The dashboard is genuinely better for reading a thread, judging tone, and watching mailbox health. Same account, two surfaces.
Some do, some don’t. reply_get_contact_statistics, reply_get_sequence_step_stats, reply_get_sequence_clicks and reply_mark_contacts_as_replied always consume credits. reply_get_sequence_details may. Listing sequences, enrolling contacts, starting or pausing a sequence, and connecting accounts do not.
100 requests per minute and roughly 3,000 per hour, per user. A 429 comes back with a Retry-After header telling you exactly how long to wait. The budget is shared across MCP, the CLI and the API, so one limit covers every surface you touch.
Yes. Every surface is included in the free trial. Get your key from Settings → API Key and connect.