MCP serverai.sendraven/mcp
Email infrastructure for AI agents: send, read replies as threads, campaigns, per-key limits.
Overview
Score?
UNRATED 0.673
of what a free look can see, on 25 looks
Looks
31
last 14 hr ago
Tools
55
changed 10 days ago
More info
URL
mcp.sendraven.ai/mcp
streamable-http
Says it is
sendraven 0.4.20
protocol 2025-06-18
In the record since
29 days ago
Among servers18,413 with a card
0median 0.606 · this server 0.673 · highest on record 0.8561
Toolsfrom sha256:5820cca843…88e7e7 · +0 −0 10 days ago
| Tool | Schema |
|---|---|
| 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 |
input · no output |
| add_sending_domain Register a sending domain and get back the DNS records to publish. It takes the domain mail is sent from — mail.<domain> and news.<domain> are provisioned beneath it and the right |
input · no output |
| add_suppression Stop sending to an address. Scope 'marketing' leaves transactional mail working; the default is 'all'. Reason 'unsubscribe' is a real opt-out: it also cancels the person's queued s |
input · no output |
| cancel_scheduled_email Cancel a scheduled email before it sends. Only works while status is 'scheduled': a message that has already started sending, or is in any other state, answers 409 invalid_state na |
input · no output |
| count_segment How many contacts a segment currently matches. A filter that matches nobody shows up here as 0, before any campaign is built around it or sent. |
input · no output |
| create_automation Define a multi-step sequence as a draft; nothing is sent until it is activated, from the dashboard or with set_automation_status. Unlike several separately scheduled emails, it end |
input · no output |
| create_broadcast Create a campaign as a draft. Nothing is sent: preview_broadcast reports its reach and send_broadcast sends it. identity_id must be a marketing sending domain (see list_sending_dom |
input · no output |
| decide_approval Approve or reject a held message. Approving releases it: it sends now, or at its scheduled_at when the draft was scheduled for later. If every recipient unsubscribed or was suppres |
input · no output |
| 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 conta |
input · no output |
| emit_event Emit a named event, starting every automation that waits on it — for example 'trial_started' or 'invoice_overdue'. The configured sequences decide what happens, rather than the cal |
input · no output |
| enroll_in_automation Put someone into a multi-step sequence. Unlike several separately scheduled emails, the sequence stops on its own if they unsubscribe (from everything or from the automation's topi |
input · no output |
| find_contact Find a contact by address across every audience, without knowing which list they are on, or list the workspace's contacts by tag or subscription. email matches exactly, and q match |
input · no output |
| get_automation Fetch one automation: its status, trigger, steps, exit rules and how many people are in each state. The same object list_automations returns, for a caller that already holds the id |
input · no output |
| get_broadcast One campaign, with a 'progress' object while it is sending, paused or testing: how many addresses are still pending, sent, failed, or skipped because the person opted out after the |
input · no output |
| get_contact Fetch one contact by id, with their audience memberships, custom properties and engagement dates. |
input · no output |
| get_email Fetch one message with its full event timeline (send, delivery, bounce, complaint, open, click). The timeline shows why an email didn't arrive. |
input · no output |
| 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 on |
input · no output |
| get_email_preferences What one person has chosen to receive. It shows whether someone who isn't getting a particular kind of email opted out of it — an opt-out looks identical to a delivery failure from |
input · no output |
| get_thread Read a conversation as a chronological transcript of outbound and inbound messages. Inbound `text` already has quoted history and signatures stripped; `raw_text` holds the untrimme |
input · no output |
| get_usage This workspace's plan, what it has sent this billing period, what the period costs so far, and — the fields worth branching on — sending_locked and lock_reason, which name the exac |
input · no output |
| import_contacts Import up to 5,000 contacts into an audience in one call, with names, tags, custom properties and subscription status. This is the migration tool: the previous provider's unsubscri |
input · no output |
| list_audiences List contact lists, newest first, with each one's id and contact_count. Paged: at most 100 per call; while has_more is true, more lists are on later pages, returned when next_curso |
input · no output |
| list_automation_enrollments The people in one automation, newest enrolment first: each row has the email, status, current_step, next_due_at and, for a cancelled one, cancel_reason. It answers 'is this person |
input · no output |
| list_automations List multi-step email sequences and how many people are currently in each, with the id each one is enrolled by. Newest first, at most 100 per call; while has_more is true, next_cur |
input · no output |
| list_broadcast_recipients Who a campaign reached and what happened to each message, with the A/B variant when there is one. At most 200 per call; while has_more is true, next_cursor (a message id) passed ba |
input · no output |
| list_broadcasts List campaigns, newest first, with their status. Paged: at most 100 per call; while has_more is true, next_cursor passed back as cursor returns the next page. Each row is the campa |
input · no output |
| list_emails List messages newest first with their delivery status, including held, scheduled, skipped and failed ones and the mail campaigns and automations sent. Filter by status or recipient |
input · no output |
| 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. A send that returned status 'pe |
input · no output |
| list_scheduled_emails Messages queued to send later but not yet sent, newest first; cancel_scheduled_email cancels one. At most 100 per call; while has_more is true, next_cursor passed back as cursor re |
input · no output |
| list_segments List saved audience filters. A campaign created with a segment id, rather than a filter described inline, shares one definition that can be reused and counted. |
input · no output |
| 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. mail_ |
input · no output |
| list_suppressions List addresses we refuse to mail and why (hard_bounce, complaint, unsubscribe, manual, list_hygiene), newest first, each with its scope. When someone reports not receiving email, t |
input · no output |
| 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. |
input · no output |
| list_templates List stored email templates and the variables each one needs. Unlike HTML composed at send time, templates carry the workspace's reviewed subject, copy and styling. They do not car |
input · no output |
| list_threads List email conversations. awaiting_reply=true returns only the threads where someone has written in and no answer has been sent, which is what needs a response. A reply held for ap |
input · no output |
| list_topics List subscription topics — the categories a person can opt out of individually. Marketing mail sent under a topic lets recipients unsubscribe from that kind alone rather than from |
input · no output |
| list_webhook_deliveries Recent delivery attempts for a webhook endpoint: each with event, status, attempts, last_status_code, last_error and delivered_at (null until it succeeds). This is what tells 'we n |
input · no output |
| mark_thread_handled Clear a conversation's awaiting_reply flag without sending anything, for when the last inbound message needs no answer — a "thanks, all sorted" — so it stops appearing in list_thre |
input · no output |
| pick_broadcast_winner Decide an A/B test now instead of waiting for decide_at. 'variant' names the winning key; without it the metric decides on the figures so far. The rest of the audience is then sent |
input · no output |
| preview_broadcast How many contacts a campaign would reach, and whether the reputation gate would allow it. It is the only way to see the size of a campaign without starting it. For an A/B test it a |
input · no output |
| 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. delete_contact removes the person entirel |
input · no output |
| remove_suppression Remove a suppression so the address can be mailed again. A hard bounce means the address was rejected by the receiving server, and re-sending raises the bounce rate that AWS enforc |
input · no output |
| render_template Render a template with values, without sending, showing how the copy reads before it mails a real person. A missing variable answers 422 missing_variables with the list in `missing |
input · no output |
| 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, |
input · no output |
| resume_broadcast Continue a paused campaign now. It mails only the addresses still pending — the audience was frozen when the campaign started and everyone already reached is marked — so calling th |
input · no output |
| send_broadcast Send a draft or scheduled campaign now, or schedule it with scheduled_at. This mails every contact in the segment and cannot be undone once started; preview_broadcast shows the cou |
input · no output |
| send_email Send a transactional email, immediately or scheduled. scheduled_at takes a relative phrase like 'in 3 days' or an ISO timestamp. The From domain must already be verified. Every acc |
input · no output |
| 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. Nothing is sent when a value is miss |
input · no output |
| set_automation_status Activate, pause or return an automation to draft. A new automation is a draft and sends nothing until it is set to 'active'. Pausing ('paused' or 'draft') holds everyone on their c |
input · no output |
| set_email_preferences Set which topics a person receives, recording what they asked for — silently re-subscribing someone who opted out is what generates spam complaints. Every key must be an existing t |
input · no output |
| 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 m |
input · no output |
| 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 space |
input · no output |
| update_automation Change the rules that take someone out of a sequence (topic_key, exit_tags, required_tags, exit_on_reply), its reply_to, its reenrollment, or its default_variables (replaces the wh |
input · no output |
| update_contact Update a contact. Attributes are merged, so sending one field does not clear the rest. unsubscribed: true is a real opt-out: it suppresses the address for marketing, cancels their |
input · no output |
| verify_sending_domain Re-check a domain's DNS records now instead of waiting for the background monitor. Also restarts bounce-path (mail_from) verification when SES gave up before the MX record existed. |
input · no output |
Verify it yourself
npx teppi-check https://mcp.sendraven.ai/mcpcurl -s https://api.teppi.xyz/v1/trust/mcp/mcs_01M1RE4J2SP9PX5J23SA63VGCQ