Model Context Protocol · Streamable HTTP
The whole product, as tools.
Raechly exposes all 147 of its capabilities over MCP. Not a reporting subset. Your assistant orders your sending domain, finds the people a campaign should reach, writes the emails, shows them to you for approval, works the inbox and reads the send log with the errors intact.
claude mcp add --transport http raechly \
https://mcp.raechly.com/mcp \
--header "Authorization: Bearer rk_your_key"No key yet? Add the server without the header. Claude, ChatGPT and Cursor open a sign-in page that also creates the account; Claude Code and scripts use the key from Settings.
A full setup, in one message
The reason all 147 tools matter is that setup is the hard part, and setup is exactly what most integrations leave out.
You say
Order my sending domain, find heads of marketing at D2C brands in Germany and draft a three-step campaign for them. Show me the emails before anything sends.
It runs
- 1. domain_ideas → names that are free
- 2. order_senders → Raechly buys and warms it
- 3. create_campaign → draft
- 4. set_campaign_icp → a count and examples
- 5. confirm_campaign_icp → once you say yes
- 6. review_campaign_emails
- 7. approve_campaign → once you say yes
117 tools, by area
Account
whoami
readWho am I connected as: user, organization (id, name, plan) and the API key prefix.
list_api_keys
readThe organization's API keys: name, prefix, when each was created and last used.
create_api_key
Create a named API key, for example one per product or script, so each can be rotated or deleted alone.
rotate_api_key
Give an API key a new secret under the same name.
delete_api_key
Delete an API key.
Files
list_files
readThe organization's files: images and GIFs to show in emails (use each file's url in body_html) and documents to attach to a step (attachment_file_ids).
upload_file
Store a file for emails: an image or GIF (png, jpg, gif, webp) to show in a journey or template, or a document (pdf, csv, txt, ics, docx, xlsx, pptx) to attach.
update_file
Rename a file (keep its extension) or change its description (the image's alt text).
delete_file
Delete a file.
Knowledge base
get_company_profile
readThe knowledge base every campaign is written from: what the company does, who it reaches, the pain, the proof, expected volume, plus its offerings.
set_company_profile
Fill or update the knowledge base.
list_offerings
readProducts and services the campaign drafter may pitch, with benefits, links and each product's own ideal customer, job titles, pain, proof, FAQ, pricing, category and getting-started steps.
upsert_offering
Add a product or service to the knowledge base, or update one by offering_id.
delete_offering
Remove an offering from the knowledge base.
onboarding_status
Where a new workspace stands: the wizard step, whether it is done, the profile so far, and a checklist of what exists (profile, mailbox, warmup, contacts, campaign).
Domains
create_domain
Business plan: register a sending domain you own, create its Amazon SES identity, and return the DNS records to publish.
get_domain_dns
readRe-fetch the DNS records for a domain you already registered.
check_domain
Poll SES for verification status and unblock sending once DKIM succeeds.
list_domains
readList every sending domain with SES verification status and reply-capture state.
delete_domain
Delete the organization's own sending domain and its SES identity.
Mailboxes
sender_plan
readWhat this organization's plan includes for sending: included domains and senders that Raechly buys, sets up and warms, how many it has set up so far (managed), open_orders, can_order (a domain is left to order), paid (false during a trial: the domain is bought after the first payment) and own_senders (Business: may bring its own domains and inboxes).
set_extra_domains
Ask for a different number of extra sending domains (three senders each, $25 a month each) on a paid plan.
domain_ideas
readLookalike .com domains for the organization's senders, built from its website (tryacme.com, acmehq.com), each with available true (free to buy), false (taken) or null (couldn't check).
list_ready_domains
readReady domains the organization can buy now: sending domains Raechly has warmed for about 3 weeks, so they send today instead of after a new domain's warmup.
order_senders
Order the domain the plan includes, with up to 3 senders on it.
list_sender_orders
readThe organization's sender orders: open (waiting for Raechly, or for payment of a ready domain), done (set up or handed over) or canceled.
cancel_sender_order
Cancel an open sender order before Raechly sets it up, or a ready domain that isn't paid for yet (it goes back on sale).
list_mailboxes
readList mailboxes with warmup status, daily limits, sent-today counts and reply capture.
connect_mailbox
Connect the user's own inbox with an APP PASSWORD (Gmail: 2-step verification on, then Google Account → Security → App passwords).
create_mailbox
Business plan: create a sender on your own verified domain, with reply capture wired up automatically.
sync_replies
Read a connected mailbox's inbox now (the server also polls every 15 minutes and before each hourly send pass).
reconcile_reply_capture
Ensure every active mailbox has a working inbound routing rule — sends are gated on it.
check_reply_capture
readWhy an outbound SES mailbox can or can't send: for each one (or mailbox_id), whether its replies reach Raechly and, when they don't, a title, the reason, recommended steps in order (each with an action: open a link, setup = reconcile_reply_capture, check = this tool again, connect = connect_mailbox with an app password (username = the account that owns an alias), add_domain = create_domain, product_email = set_mailbox_purpose lifecycle) and alternatives, most likely first.
delete_mailbox
Remove a sender.
update_mailbox
Rename a mailbox's sender name (what recipients see next to the address) or change its daily limit.
Warmup
warmup_stats
readWarmup overview: per-mailbox progress, thread and reply counts, pool accounts.
start_warmup
Start the ramp on an older mailbox still pending. New senders start warming on their own.
skip_warmup
Raechly staff only: mark a mailbox ready immediately, bypassing the ramp.
create_warmup_pool_account
Optional: add a real inbox of your own that receives your senders’ warmup mail.
run_warmup_sends
Raechly staff only: fire a warmup send pass for every organization instead of waiting for the hourly run.
Contacts
import_contacts
Bulk import leads, upserting by email, with suppression respected.
list_contacts
readList recent leads with status: active, bounced or unsubscribed.
search_contacts
readSearch the user's own contacts, the only people they can look up: free text (name, email, company), job titles and keywords (any of, partial match), seniority, department, country, city, tags, exact company or title, and status.
list_contact_tags
readEvery tag in use with its contact count.
tag_contacts
Add or remove tags on a set of contacts by id.
Companies
list_companies
readCompanies form from contacts' email domains (free-mail addresses excepted).
get_company
readOne company with its people, researched facts (with sources) and recent sends.
update_company
Edit a company's name, website, industry, size, LinkedIn or location.
suppress_company
Stop all outreach to a company: blocklists its domain and pauses its people in every active campaign.
unsuppress_company
Lift a company suppression.
research_company
Read the company's website once and keep three to five facts with their source, for every person there; autopilot drafts open with one.
Finding contacts
set_campaign_icp
Propose who a campaign should reach (its ICP), before anyone is found.
confirm_campaign_icp
The user's yes to the campaign's ICP: find the people now.
get_campaign_icp
readA campaign's ICP: filters, count, schedule, whether the user confirmed it, how many people were found in all, the latest runs, and whether a run is still going.
list_lead_searches
readYour campaigns' ICP searches: filters, count, schedule, list, campaign, whether confirmed, and last run time.
get_lead_search_run
readA campaign's ICP search with its recent runs: requested, found, added, duplicate, rejected (counts by reason), risky, credits.
update_lead_search
Change a campaign's ICP search: name, filters, max per cycle, frequency, target list, or pause it (enabled=false).
run_lead_search
Run a campaign's confirmed ICP search again now, for more people.
list_lead_lists
readContact lists with member counts.
create_lead_list
Create an empty contact list to group people for enrollment or as a target for a saved search.
add_to_list
Add contacts to a list by id.
remove_from_list
Remove contacts from a list.
bulk_contacts
One action on many contacts: add_to_list (list_id), tag (tags), reverify (re-check the addresses), set_owner (owner_user_id).
Campaigns
list_campaigns
readList campaigns with status and send-window settings.
get_campaign
readGet one campaign with its full step sequence and per-status lead counts.
generate_campaign
Draft a campaign with AI from a brief: name, send window and 3 to 4 steps.
create_campaign
Create a campaign with its full step sequence, send window and daily cap.
update_campaign
Change a campaign's settings: name, status, send window and days, timezone, daily limit, brief, goal, booking URL, AI instructions, protection (auto-pause on bounce rate or after N unanswered steps), exclusions (lists, tags, people active or completed elsewhere), approval, and the per-company rules (max people per company, spacing days, which reply intents pause the whole company), whether emails end with an Unsubscribe link, and which senders it sends from.
preview_email
Render one contact's email for a step exactly as it would send: variables filled, opt-out link in place.
send_test_email
Send one step to an address the user owns (one of their mailboxes, or their login email) from one of their mailboxes.
get_campaign_stats
readA campaign's numbers, counted in the database: journey (enrolled, by status, unsubscribed), engagement (sent, failed, replied by intent, bounced, rates), the next seven days of scheduled sends, the per-step table and how many drafts await approval.
list_campaign_events
readThe campaign's own log: lifecycle changes, each send pass, AI drafting, user actions and system protection (auto-pause).
pause_contact
Pause one person's sequence in a campaign.
resume_contact
Resume a paused person; their next step is due at once (inside the send window).
remove_contact
Take a person out of a campaign.
list_drafts
readAutopilot drafts for a campaign, pending by default: who it goes to, the step, subject and body.
approve_draft
Approve a draft so the next send pass delivers it.
reject_draft
Reject a draft with a reason; the next send pass rewrites it, told what was wrong.
replace_campaign_steps
Replace the whole sequence of a campaign.
set_campaign_status
Activate, pause or complete a campaign.
delete_campaign
Delete a campaign that never sent an email, for good: its steps, people, drafts, logs and search go with it; the contacts stay.
review_campaign_emails
readThe real emails each person in a campaign will get, a page at a time: every step's subject and body filled in for them, signed by their sender, with the unsubscribe footer.
edit_campaign_email
Change one person's email for one step, from review_campaign_emails (contact_id and step_id).
approve_campaign
The user's approval of the emails review_campaign_emails showed.
recheck_campaign_addresses
Check again the address of everyone the campaign hasn't emailed yet, as if never checked, and put back people taken out for a bad address so the check decides again (people the user removed stay out).
enroll_contacts
Enroll leads into a campaign, assigning mailboxes round-robin and scheduling the first send.
list_campaign_contacts
readPeople enrolled in a campaign with their email, step, status, sender and next send time.
trigger_send
Raechly staff only: run the send pipeline now, instead of waiting for the hourly run.
Inbox
list_inbox
readThreads in the shared inbox, one per contact and campaign, newest reply first, with unread and reply counts and tab counts (all, unread, needs_reply, replies, bounced, interested).
get_thread
The whole exchange with one contact: what we sent (by step), what they replied (with intent and outcome), oldest first, plus the contact, their company and the enrollment.
reply_to_lead
Send an answer in the same thread, from the mailbox that received the reply, so their client keeps the conversation together.
suggest_reply_answer
Write an answer to a prospect's reply from the company brief, the campaign's goal and booking link, and the thread.
set_reply_outcome
Record what came of a reply: booked, interested, not_interested, follow_up_later, closed, or empty to clear.
block_address
Add email addresses or whole company domains to the organization's Do not email list.
unsubscribe_contact
Mark a contact unsubscribed and end every active sequence for them.
list_alerts
readThings a person has to act on: bounce spikes, reply capture lost on a mailbox, warmup paused for credits, out of credits, drafts waiting for approval.
resolve_alert
Close an alert once it is dealt with; the same condition recurring opens a new one.
Pipeline
list_pipelines
readThe workspace's pipelines with their stages in order: win %, follow-up campaign (kind followup) and staleness threshold per stage.
update_pipeline_stages
Rename a pipeline, make it the default, or set its stage list in order.
create_pipeline
Create another pipeline with its stages.
list_deals
readDeals in a pipeline (the default when omitted): each with stage, contact, company, value, days in stage and last activity, plus a per-stage forecast (count, value, value weighted by win %).
get_deal
readOne deal with its contact, company, stage, history and the contact's recent replies.
create_deal
Open a deal for a contact by hand (replies open them automatically).
move_deal
Move a deal to a stage (and optionally set title, value, currency).
close_deal
Mark a deal won or lost (with a reason).
reopen_deal
Put a won or lost deal back in its stage.
add_deal_note
Add a note to a deal's history and count it as activity.
deals_from_past_replies
One-time: open deals for every past interested or not-now reply that has none.
Results
list_activity
readRead the send log: recipient, mailbox, subject, sent or failed, and the error.
list_replies
readCaptured replies, newest first: who replied, to which campaign and step, the reply text with the quoted original stripped, classification (reply | bounce | auto_reply) and AI intent (interested | not_now | objection | unsubscribe | auto_reply | other).
get_stats
readAccount overview for the last N days: sends, replies, bounces, reply rate, and a per-day series.
sdr_report
readThe week as an SDR report: emails sent, replies, interested, meetings booked, what waits on the user (replies to answer, drafts to check, campaigns waiting for senders) and senders by state.
get_usage
readCredit balance and consumption this period: plan, included and top-up credits, used, remaining, breakdown by kind (email_send, journey_send, warmup_send, ai_campaign, ...) and whether limits are enforced.
get_credit_catalog
readWhat each action costs in credits and what each plan includes.
Billing
get_plan
readThe organization's plan, status, period, remaining credits and the plans it can move to, with price and included credits.
change_plan
Start or change a plan (starter, growth, pro, business), or cancel with none.
get_top_up_link
A checkout URL for extra credits that never expire, in multiples of the top-up unit (see get_plan).
The server has 30 more, for a feature in private beta. They aren’t listed yet.
Why the setup tools matter more than the reporting tools
Several cold email platforms now publish MCP servers, and most of them are good at the same thing: reading campaign stats and managing leads. That is genuinely useful, and it is also the easy half.
The half that costs people weeks is everything around the campaign: a sending domain, warm senders, reply capture, and working out why nothing is going out. Raechly sets up the domain and warms the senders for you, and every step is still a tool. The assistant that writes your sequence can also tell you which sender is still warming and the day it reaches full volume.
If you are comparing MCP surfaces, count what you can accomplish end to end rather than the number of tools. Ours is 147 because every screen in the dashboard has a tool behind it. See how that stacks up against Smartlead and Instantly, both of which ship their own.
MCP questions
What is an MCP server for cold email?
The Model Context Protocol is an open standard from Anthropic that lets an AI assistant call external tools. A cold email MCP server exposes your sending platform as tools the assistant can invoke, so you describe what you want in plain language instead of clicking through an interface.
Which clients can connect to the Raechly MCP server?
Anything that speaks Streamable HTTP MCP, including Claude, ChatGPT, Claude Code, Cursor and VS Code. Claude, ChatGPT and Cursor sign you in with OAuth. Claude Code and scripts send an API key from Settings › API keys in the Authorization header.
Is my API key sent to Anthropic?
No. The key is held by your MCP client and sent to the Raechly MCP server as a bearer token, which forwards it to the Raechly API. It is the tenant boundary: the API resolves your organization from the key.
Do I need an account before I connect?
No. Add the server without a key and Claude, ChatGPT or Cursor opens a sign-in page that also creates the account. Nothing works without signing in.
Can the assistant send email without me approving it?
Tool calls follow your client’s approval settings, and the destructive tools are annotated so clients can prompt before running them. Beyond that, the same server-side guardrails apply to every path: send windows, daily caps and the reply-capture gate do not care whether a human or an assistant made the call.
Add the server and sign in.
Sign in from Claude or Cursor with OAuth, or paste an organization key, and every tool appears in the conversation.