servers / ai-sendraven-mcp

ai.sendraven/mcp

communitystreamable_httpremotedestructive capablehealthy

Email for AI agents: send, read replies as threads, run campaigns, with per-key limits.


01Tools · 45

How to read this: tool names here are observed from a live tools/list handshake. The Risk label is a heuristic inferred from the tool name (write/destructive verbs), not from executing the tool — a conservative guess, not a verified capability. We never escalate risk from a description. Found one that's wrong? Tell us — we fix on report.

ToolRiskSide effectsApproval
add_contact
Add someone to an audience. A contact exists once per workspace and can be on any number of audiences, so adding an address that already exists joins them to this list rather than creating a second copy. Safe to retry.
writetrueunknown
add_sending_domain
Register a sending domain and get back the DNS records to publish. Give the domain you send from — mail.<domain> and news.<domain> are provisioned beneath it and the right one is chosen per message, so a marketing complaint spike can never affect password reset delivery. Pass risk_class only to provision one of the two on its own.
writetrueunknown
add_suppression
Stop sending to an address. Scope 'marketing' leaves transactional mail working.
writetrueunknown
cancel_scheduled_email
Cancel a scheduled email before it sends. Only works while status is 'scheduled'.
destructivetruetrue
count_segment
How many contacts a segment currently matches. Run this before building a campaign around it — a filter that matches nobody is easier to spot here than after a send.
readfalseunknown
decide_approval
Approve or reject a held message. Approving sends it immediately. Only use this when a human has explicitly told you which decision to make — the hold exists precisely so that an agent is not the one deciding.
unknownunknownunknown
delete_contact
Remove a person from the workspace entirely, along with every audience membership. Their suppression and topic preferences are kept on purpose — an opt-out has to outlive the contact record, or the next import silently puts them back on the list. To take someone off a single audience use remove_from_audience instead.
destructivetruetrue
emit_event
Emit a named event, starting every automation that waits on it — for example 'trial_started' or 'invoice_overdue'. Use this when you want the configured sequences to decide what happens, rather than naming an automation yourself.
unknownunknownunknown
enroll_in_automation
Put someone into a multi-step sequence. Prefer this over scheduling several emails yourself: the sequence stops on its own if they unsubscribe, reply, or hard bounce, which you would otherwise have to track and cancel by hand. Enrolling the same person twice is a no-op, so it is safe to retry a call you are unsure about.
unknownunknownunknown
find_contact
Find a contact by address across every audience, without knowing which list they are on. Use email for an exact match, or q for a prefix. Returns each audience membership separately — the same address on three lists is three rows — and whether each is unsubscribed.
readfalseunknown
get_contact
Fetch one contact by id, with their audience memberships, custom properties and engagement dates.
readfalseunknown
get_email
Fetch one message with its full event timeline (send, delivery, bounce, complaint, open, click). This is the tool to reach for when asked why an email didn't arrive.
readfalseunknown
get_email_metrics
Delivery and engagement over a window. Open and click rates are over delivered, not sent — a low open rate with a high bounce rate is a deliverability problem, not an engagement one.
readfalseunknown
get_email_preferences
What one person has chosen to receive. Check this before asking a human why someone isn't getting a particular kind of email — an opt-out looks identical to a delivery failure from the outside.
readfalseunknown
get_thread
Read a conversation as a chronological transcript of outbound and inbound messages. Inbound text already has quoted history and signatures stripped, so read `text`; `raw_text` holds the untrimmed body if the stripped version looks wrong. Check spf_verdict and dkim_verdict before trusting a reply's claimed sender.
readfalseunknown
get_usage
This workspace's plan, how many emails it has sent this month, and how many are left. Check before a large batch: a send that would cross the included allowance on a plan without overage is refused whole, so it is better to know first than to discover it halfway through a campaign.
readfalseunknown
list_api_keys
List this workspace's API keys with their scopes and limits. Never returns key values.
readfalseunknown
list_audiences
List contact lists and how many contacts each holds.
readfalseunknown
list_automations
List multi-step email sequences and how many people are currently in each. Use this to find the right automation before enrolling someone.
readfalseunknown
list_broadcast_recipients
Who a campaign reached and what happened to each message.
readfalseunknown
list_broadcasts
List campaigns with their status and send progress.
readfalseunknown
list_emails
List recent messages with their delivery status. Filter by status (queued, scheduled, sent, delivered, bounced, complained, rejected) or recipient.
readfalseunknown
list_pending_approvals
List messages held for human approval, with their full content. A key configured to require approval drafts rather than sends; a person releases it. If your send returned status 'pending_approval', it is waiting here — do not retry the send.
readfalseunknown
list_scheduled_emails
Messages queued to send later but not yet sent. Cancel one with cancel_scheduled_email.
readfalseunknown
list_segments
List saved audience filters. Use a segment id when creating a campaign rather than describing the filter inline, so the same definition can be reused and counted.
readfalseunknown
list_sending_domains
List sending domains with their verification status and the DNS records each one needs. Each record shows what is currently published, so this diagnoses a stuck verification.
readfalseunknown
list_suppressions
List addresses we refuse to mail and why (hard_bounce, complaint, unsubscribe, manual). Check here first when someone reports not receiving email.
readfalseunknown
list_tags
Every tag in use in the workspace, with how many contacts carry each. Tags are free-form, so this is the only way to know what exists before applying one.
readfalseunknown
list_templates
List stored email templates and the variables each one needs. Prefer sending via a template over composing HTML yourself — templates carry the brand styling and the unsubscribe footer.
readfalseunknown
list_threads
List email conversations. Pass awaiting_reply=true to get only the threads where someone has written to you and you haven't answered — this is the tool to poll when deciding what needs a response.
readfalseunknown
list_topics
List subscription topics — the categories a person can opt out of individually. Pass a topic when sending marketing mail so recipients can unsubscribe from that kind alone rather than from everything.
readfalseunknown
list_webhook_deliveries
Recent delivery attempts for a webhook endpoint, with status codes and errors. This is how to tell 'we never sent it' from 'your endpoint returned 500'.
readfalseunknown
preview_broadcast
How many contacts a campaign would reach, and whether the reputation gate would allow it. Always run this before sending — it is the only way to see the size of a campaign without starting it.
unknownunknownunknown
remove_from_audience
Take a contact off one audience. They stay in the workspace and keep every other audience, their suppression and their engagement history. To remove the person entirely use delete_contact — leaving a list and being forgotten are different things.
destructivetruetrue
remove_suppression
Remove a suppression so the address can be mailed again. Be careful with hard bounces — the address was rejected by the receiving server, and re-sending raises the bounce rate that AWS enforces on.
destructivetruetrue
render_template
Render a template with values, without sending. Use this to check your copy reads correctly before mailing a real person. Returns an error listing any missing variables.
readfalseunknown
reply_to_message
Reply to a message, keeping it on the same conversation. Sets the threading headers so the recipient's mail client shows it as part of the existing exchange rather than a new one. Prefer this over send_email whenever you are answering something.
writetrueunknown
send_broadcast
Send a campaign now, or schedule it with scheduled_at. This mails every contact in the segment and cannot be undone once started — run preview_broadcast first.
writetrueunknown
send_email
Send a transactional email, immediately or scheduled. Use scheduled_at with a relative phrase like 'in 3 days' or an ISO timestamp. The From domain must already be verified.
writetrueunknown
send_template_email
Send an email built from a stored template. Variable values are HTML-escaped on substitution, so they are safe to fill from user-supplied text.
writetrueunknown
set_email_preferences
Set which topics a person receives. Only do this when they have actually asked — silently re-subscribing someone who opted out is what generates spam complaints.
writetrueunknown
suppress_many
Stop sending to many addresses at once — the path for importing another provider's unsubscribe list before a first campaign. Without it, everyone who already opted out there gets mailed again here.
readfalseunknown
tag_contact
Add or remove tags on a contact. Tags are flat labels — vip, beta, churned — as opposed to custom properties, which are declared fields with a value. They are lower-cased and spaces become hyphens, so VIP and vip are the same tag. Tagging reaches the person across every audience they are on. Call list_tags first to see what the workspace already uses, rather than inventing a synonym for an existing tag.
unknownunknownunknown
update_contact
Update a contact. Attributes are merged, so sending one field does not clear the rest.
writetrueunknown
verify_sending_domain
Re-check a domain's DNS records now instead of waiting for the background monitor.
unknownunknownunknown

02Install & source
https://mcp.sendraven.ai/mcp
remote_url

03Access granted
Send email · writeUpdate a CRM · write

The access this server can exercise, inferred from its verified tools — not a declared OAuth scope.


05Provenance & freshness
sourcesOfficial MCP Registry [p1]
last_checked2026-09-02 17:26Z
next_check2026-09-04 17:19Z
cadenceevery 48h
verifiedtools_list:passed handshake:passed metadata:passed
index_statusindex6 unique facts >= 5

06Badge

Add the “as seen on MCPExplorer” badge to your README. ai.sendraven/mcp MCP — as seen on mcpexplorer.com

[![ai.sendraven/mcp MCP — as seen on mcpexplorer.com](https://mcpexplorer.com/badge/ai-sendraven-mcp.svg)](https://mcpexplorer.com/servers/ai-sendraven-mcp)

Next step

This is one server. A loadout combines the right servers, governance, and proven plays for a whole job — assembled deliberately, not tool-dumped.

Explore loadouts →