此 MCP 可以做什么
Sends email, reads threaded replies, and runs campaigns with per-key limits.
工具
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['audience_id', 'email'], 'properties': {'tags': {'type': 'array', 'items': {'type': 'string', 'maxLength': 60, 'minLength': 1}, 'maxItems': 50, 'description': 'Flat labels; lower-cased, spaces become hyphens'}, 'email': {'type': 'string', 'format': 'email'}, 'status': {'enum': ['subscribed', 'unsubscribed', 'bounced', 'complained'], 'type': 'string', 'description': 'Standing with the previous sender. unsubscribed suppresses for marketing; bounced and complained suppress for everything. Defaults to subscribed.'}, 'last_name': {'type': 'string', 'maxLength': 120}, 'attributes': {'type': 'object', 'description': 'Custom properties by key. An unknown key creates a string property.', 'additionalProperties': {'type': ['string', 'number', 'boolean']}}, 'first_name': {'type': 'string', 'maxLength': 120}, 'audience_id': {'type': 'string', 'description': "The audience's id from list_audiences (a UUID), not its name. list_audiences maps each name to its id."}, 'last_active_at': {'type': 'string', 'format': 'date-time', 'description': "ISO 8601 time the person was last active in your product (a login, a session). Counted by a segment's engaged_within_days. Kept only if later than the stored value."}}, 'additionalProperties': False}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['domain'], 'properties': {'domain': {'type': 'string', 'minLength': 3, 'description': 'The bare domain mail is sent from, e.g. example.com: no scheme, path or @, and not a public suffix'}, 'risk_class': {'enum': ['transactional', 'marketing'], 'type': 'string', 'description': 'Omitted, both are provisioned, which almost every sender needs'}}, 'additionalProperties': False}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['email'], 'properties': {'email': {'type': 'string', 'format': 'email'}, 'scope': {'enum': ['all', 'transactional', 'marketing'], 'type': 'string', 'description': 'Defaults to all'}, 'reason': {'enum': ['manual', 'list_hygiene', 'unsubscribe'], 'type': 'string', 'description': 'Defaults to manual. unsubscribe also cancels queued mail and ends enrolments'}}, 'additionalProperties': False}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string'}}, 'additionalProperties': False}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string'}}, 'additionalProperties': False}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['name', 'slug', 'identity_id', 'from', 'trigger', 'steps'], 'properties': {'from': {'type': 'string', 'minLength': 3, 'description': "On the identity's domain, e.g. 'Ana <ana@news.example.com>'"}, 'name': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'slug': {'type': 'string', 'pattern': '^[a-z0-9-]+$', 'description': 'Lowercase letters, digits and hyphens'}, 'steps': {'type': 'array', 'items': {'type': 'object', 'required': ['delay_minutes', 'subject'], 'properties': {'html': {'type': 'string', 'description': 'Inline body; template_slug is the alternative. One of the two is required'}, 'subject': {'type': 'string', 'maxLength': 998, 'minLength': 1}, 'delay_minutes': {'type': 'integer', 'maximum': 525600, 'minimum': 0, 'description': 'From enrolment for the first step, from the previous step for the rest. At most 525600 (one year)'}, 'template_slug': {'type': 'string', 'minLength': 1, 'description': "A template from list_templates, rendered with the enrolment's variables. Must already exist"}}, 'additionalProperties': False}, 'maxItems': 20, 'minItems': 1}, 'trigger': {'type': 'object', 'required': ['kind'], 'properties': {'tag': {'type': 'string', 'maxLength': 60, 'minLength': 1, 'description': 'Required for tag_added, e.g. audio-player. Normalised like contact tags'}, 'kind': {'enum': ['api', 'contact_added', 'event', 'tag_added'], 'type': 'string', 'description': 'api: enrol with enroll_in_automation. contact_added: starts when someone joins audience_id. event: starts on emit_event with event_name. tag_added: starts when a contact gains tag (tag_contact, or a contact added carrying it); a contact that already had the tag starts nothing, so turning it on does not mail everyone tagged'}, 'event_name': {'type': 'string', 'maxLength': 120, 'minLength': 1, 'description': 'Required for event, e.g. trial_started. Up to 120 characters, matched exactly'}, 'audience_id': {'type': 'string', 'description': "Required for contact_added; the audience's id, not its name"}}, 'additionalProperties': False}, 'reply_to': {'type': 'string', 'description': "Where replies go instead of from, e.g. the founder's own inbox. SendRaven receives mail for its own domains only, so with a reply-to elsewhere a reply cannot stop the sequence, however exit_on_reply is set"}, 'exit_tags': {'type': 'array', 'items': {'type': 'string', 'maxLength': 60, 'minLength': 1}, 'maxItems': 20, 'description': "Contact tags that end the sequence: nobody carrying one is enrolled, and adding one ends the enrolment. A trial sequence with exit tag 'customer' stops for someone tagged 'customer' when they upgrade"}, 'topic_key': {'type': 'string', 'minLength': 1, 'description': "Send every step under this topic (see list_topics). Its unsubscribe link then opts the person out of this kind of mail only, and opting out ends the sequence. Must be an existing topic's key; an unknown one is refused with 422 unknown_topic"}, 'identity_id': {'type': 'string', 'description': "A marketing sending domain's id from list_sending_domains (a UUID), not the domain name"}, 'reenrollment': {'enum': ['after_completion', 'never'], 'type': 'string', 'description': 'after_completion (the default): someone whose enrolment completed or was cancelled can be enrolled again. never: each person goes through it once, and a later enrolment answers enrolled: false with reason previously_enrolled. never suits onboarding or a one-time offer, where a second run would mail someone the same sequence twice'}, 'exit_on_reply': {'type': 'boolean', 'description': 'End the enrolment when the person replies. Defaults to true; false suits dunning'}, 'required_tags': {'type': 'array', 'items': {'$ref': '#/properties/exit_tags/items'}, 'maxItems': 20, 'description': 'Tags a person must keep: only people carrying all of them are enrolled, and removing one ends the enrolment. Someone with no contact record has no tags, so is never enrolled'}, 'default_variables': {'type': 'object', 'description': "Template values every enrolment gets, under the variables an enrolment passes (which win). Required for contact_added and tag_added, which enrol with no values: every placeholder in the steps' subjects, html and templates needs one here, or the call answers 422 missing_variables naming the missing ones. Read at each step, so a fix reaches people already enrolled", 'additionalProperties': {'type': 'string'}}}, 'additionalProperties': False}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['audience_id', 'identity_id', 'name', 'subject', 'html'], 'properties': {'html': {'type': 'string', 'minLength': 1}, 'name': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'ab_test': {'type': 'object', 'properties': {'metric': {'enum': ['open', 'click'], 'type': 'string', 'description': "What decides the winner; default 'open'"}, 'sample_share': {'type': 'number', 'description': 'Share of the audience in the test, 0.05 to 1; default 0.2. Ignored for a send-time test'}, 'decide_after_minutes': {'type': 'integer', 'description': 'How long after the sample is fully sent to decide; 15 to 10080, default 240'}}, 'additionalProperties': False}, 'segment': {'type': 'object', 'properties': {'tags': {'type': 'array', 'items': {'type': 'string', 'maxLength': 60, 'minLength': 1}, 'maxItems': 20, 'description': "Only contacts carrying every one of these tags, e.g. ['audio-player'] to mail one product's users from an audience that holds everyone. list_tags returns the tags that exist"}, 'exclude_tags': {'type': 'array', 'items': {'type': 'string', 'maxLength': 60, 'minLength': 1}, 'maxItems': 20, 'description': "Leave out contacts carrying any of these tags, e.g. ['premium']"}, 'opened_within_days': {'type': 'integer', 'maximum': 3650, 'minimum': 1}, 'clicked_within_days': {'type': 'integer', 'maximum': 3650, 'minimum': 1}, 'engaged_within_days': {'type': 'integer', 'maximum': 3650, 'minimum': 1, 'description': 'Only contacts who opened, clicked or were active in your product (last_active_at) in N days. Unlike exclude_unengaged_days, which keeps everyone new, this one filters a freshly imported list.'}, 'exclude_unengaged_days': {'type': 'integer', 'maximum': 3650, 'minimum': 1, 'description': 'Drops mailed contacts with no open or click in N days; keeps anyone never mailed or added in the window'}}, 'additionalProperties': False}, 'subject': {'type': 'string', 'maxLength': 998, 'minLength': 1}, 'variants': {'type': 'array', 'items': {'type': 'object', 'required': ['key'], 'properties': {'key': {'type': 'string', 'maxLength': 32, 'description': "A name for this variant, lowercase letters, digits, - or _: 'urgent', 'question'"}, 'send_at': {'type': 'string', 'description': 'ISO 8601 send time, for a send-time test only. Set it on every variant or on none; a send-time test mails the whole audience, each variant at its own time, with nothing held back'}, 'subject': {'type': 'string', 'maxLength': 998, 'minLength': 1, 'description': "Subject for this variant; the campaign's when omitted"}, 'from_name': {'type': 'string', 'description': "From display name for this variant; the campaign's when omitted"}}, 'additionalProperties': False}, 'maxItems': 10, 'minItems': 2}, 'from_name': {'type': 'string', 'description': "From display name, e.g. 'Ana at Example'"}, 'topic_key': {'type': 'string', 'description': "An existing topic's key from list_topics. Lets recipients opt out of this kind of mail only"}, 'segment_id': {'type': 'string', 'description': "A saved segment's id from list_segments (a UUID), not its name or key"}, 'audience_id': {'type': 'string', 'description': "The audience's id from list_audiences (a UUID), not its name"}, 'identity_id': {'type': 'string', 'description': "A marketing sending domain's id from list_sending_domains (a UUID), not the domain name"}}, 'additionalProperties': False}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id', 'decision', 'decided_by'], 'properties': {'id': {'type': 'string', 'description': "The approval's id from list_pending_approvals, not the message_id"}, 'reason': {'type': 'string', 'maxLength': 500}, 'decision': {'enum': ['approve', 'reject'], 'type': 'string'}, 'decided_by': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'Who authorised this decision'}}, 'additionalProperties': False}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['contact_id'], 'properties': {'contact_id': {'type': 'string', 'description': "The contact's id (a UUID) from find_contact, add_contact or get_contact â\x80\x94 not the email address. find_contact returns the id for an address."}}, 'additionalProperties': False}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['name', 'email'], 'properties': {'name': {'type': 'string', 'maxLength': 120, 'minLength': 1, 'description': 'Event name, e.g. trial_started'}, 'email': {'type': 'string', 'format': 'email'}, 'variables': {'type': 'object', 'additionalProperties': {'type': 'string'}}}, 'additionalProperties': False}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['automation_id', 'email'], 'properties': {'email': {'type': 'string', 'format': 'email'}, 'variables': {'type': 'object', 'description': 'Values for any templated steps in the sequence', 'additionalProperties': {'type': 'string'}}, 'automation_id': {'type': 'string', 'description': "The automation's id from list_automations (a UUID), not its name or slug"}}, 'additionalProperties': False}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'q': {'type': 'string', 'description': 'Address prefix, for a partial match. Ignored when email is given'}, 'tag': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Only contacts carrying every one of these tags (see list_tags)'}, 'email': {'type': 'string', 'description': 'Exact address'}, 'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Page size, 1 to 100; defaults to 50'}, 'cursor': {'type': 'string', 'description': 'next_cursor from the previous call, passed back unchanged'}, 'unsubscribed': {'type': 'boolean', 'description': 'Filter to only opted-in or only opted-out'}}, 'additionalProperties': False}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['automation_id'], 'properties': {'automation_id': {'type': 'string', 'description': "The automation's id from list_automations (a UUID), not its name or slug"}}, 'additionalProperties': False}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': "The campaign's id from create_broadcast or list_broadcasts (a UUID), not its name"}}, 'additionalProperties': False}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string'}}, 'additionalProperties': False}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Message id'}}, 'additionalProperties': False}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'days': {'type': 'integer', 'maximum': 365, 'minimum': 1, 'description': 'Defaults to 30'}}, 'additionalProperties': False}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['email'], 'properties': {'email': {'type': 'string', 'format': 'email'}}, 'additionalProperties': False}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Thread id'}}, 'additionalProperties': False}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['audience_id', 'contacts'], 'properties': {'source': {'type': 'string', 'description': 'Where the list came from, e.g. "Mailchimp" â\x80\x94 recorded on each suppression'}, 'contacts': {'type': 'array', 'items': {'type': 'object', 'required': ['email'], 'properties': {'tags': {'type': 'array', 'items': {'type': 'string', 'maxLength': 60, 'minLength': 1}, 'maxItems': 50, 'description': 'Flat labels; lower-cased, spaces become hyphens'}, 'email': {'type': 'string', 'format': 'email'}, 'status': {'enum': ['subscribed', 'unsubscribed', 'bounced', 'complained'], 'type': 'string', 'description': 'Standing with the previous sender. unsubscribed suppresses for marketing; bounced and complained suppress for everything. Defaults to subscribed.'}, 'last_name': {'type': 'string', 'maxLength': 120}, 'attributes': {'type': 'object', 'description': 'Custom properties by key. An unknown key creates a string property.', 'additionalProperties': {'type': ['string', 'number', 'boolean']}}, 'first_name': {'type': 'string', 'maxLength': 120}, 'last_active_at': {'type': 'string', 'format': 'date-time', 'description': "ISO 8601 time the person was last active in your product (a login, a session). Counted by a segment's engaged_within_days. Kept only if later than the stored value."}}, 'additionalProperties': False}, 'maxItems': 5000, 'minItems': 1}, 'audience_id': {'type': 'string', 'description': "The audience's id from list_audiences (a UUID), not its name. list_audiences maps each name to its id."}, 'trigger_automations': {'type': 'boolean', 'description': 'Start automations triggered by joining this audience for everyone new to it. Off by default: a migrated list is not new signups, and a welcome sequence to all of it at once is a cold blast that burns the sending domain. It is meant for genuinely new people.'}}, 'additionalProperties': False}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Page size, 1 to 100; defaults to 50'}, 'cursor': {'type': 'string', 'description': 'next_cursor from the previous page, passed back unchanged'}}, 'additionalProperties': False}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['automation_id'], 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Page size, 1 to 100; defaults to 50'}, 'cursor': {'type': 'string', 'description': 'next_cursor from the previous page, passed back unchanged'}, 'status': {'enum': ['active', 'completed', 'canceled', 'failed'], 'type': 'string', 'description': 'Only enrolments in this state; all when omitted'}, 'automation_id': {'type': 'string', 'description': "The automation's id from list_automations (a UUID), not its name or slug"}}, 'additionalProperties': False}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Page size, 1 to 100; defaults to 50'}, 'cursor': {'type': 'string', 'description': 'next_cursor from the previous page, passed back unchanged'}}, 'additionalProperties': False}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': "The campaign's id from create_broadcast or list_broadcasts (a UUID), not its name"}, 'limit': {'type': 'integer', 'maximum': 200, 'minimum': 1, 'description': 'Page size, 1 to 200; defaults to 200'}, 'cursor': {'type': 'string', 'description': 'next_cursor from the previous page, passed back unchanged'}}, 'additionalProperties': False}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Page size, 1 to 100; defaults to 50'}, 'cursor': {'type': 'string', 'description': 'next_cursor from the previous page, passed back unchanged'}}, 'additionalProperties': False}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'to': {'type': 'string', 'description': 'Filter to one recipient address'}, 'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Page size, 1 to 100; defaults to 50'}, 'cursor': {'type': 'string', 'description': 'next_cursor from the previous page, passed back unchanged'}, 'status': {'enum': ['queued', 'scheduled', 'sent', 'delivered', 'bounced', 'complained', 'rejected', 'canceled', 'failed'], 'type': 'string', 'description': 'rejected: every recipient was suppressed or opted out, so nothing was sent. canceled: a scheduled send was cancelled. failed: the provider refused it, or a scheduled send could not go out'}}, 'additionalProperties': False}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Page size, 1 to 100; defaults to 50'}, 'cursor': {'type': 'string', 'description': 'next_cursor from the previous page, passed back unchanged'}}, 'additionalProperties': False}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'email': {'type': 'string', 'description': 'One address: every scope it is suppressed for'}, 'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Page size, 1 to 100; defaults to 50'}, 'cursor': {'type': 'string', 'description': 'next_cursor from the previous page, passed back unchanged'}}, 'additionalProperties': False}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Page size, 1 to 100; defaults to 50'}, 'cursor': {'type': 'string', 'description': 'next_cursor from the previous page, passed back unchanged'}, 'awaiting_reply': {'type': 'boolean', 'description': 'true: only threads waiting on an answer. false: only threads that are not. Omitted: all'}}, 'additionalProperties': False}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['endpoint_id'], 'properties': {'limit': {'type': 'integer', 'maximum': 200, 'minimum': 1, 'description': '1 to 200; defaults to 50'}, 'endpoint_id': {'type': 'string'}}, 'additionalProperties': False}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Thread id'}}, 'additionalProperties': False}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': "The campaign's id from create_broadcast or list_broadcasts (a UUID), not its name"}, 'variant': {'type': 'string', 'description': 'Variant key to send the remainder to; when omitted the metric decides'}}, 'additionalProperties': False}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': "The campaign's id from create_broadcast or list_broadcasts (a UUID), not its name"}}, 'additionalProperties': False}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['audience_id', 'contact_id'], 'properties': {'contact_id': {'type': 'string', 'description': "The contact's id (a UUID) from find_contact, add_contact or get_contact â\x80\x94 not the email address. find_contact returns the id for an address."}, 'audience_id': {'type': 'string', 'description': "The audience's id from list_audiences (a UUID), not its name. list_audiences maps each name to its id."}}, 'additionalProperties': False}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['email'], 'properties': {'email': {'type': 'string', 'format': 'email'}, 'scope': {'enum': ['all', 'transactional', 'marketing'], 'type': 'string', 'description': 'Defaults to all'}}, 'additionalProperties': False}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['slug', 'variables'], 'properties': {'slug': {'type': 'string'}, 'variables': {'type': 'object', 'additionalProperties': {'type': 'string'}}}, 'additionalProperties': False}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['reply_to_message_id', 'from', 'to', 'subject'], 'properties': {'to': {'type': 'string', 'description': "Recipient address, or 'Name <address>' to show their name"}, 'from': {'type': 'string', 'description': 'Sender address on a verified domain'}, 'html': {'type': 'string'}, 'text': {'type': 'string'}, 'subject': {'type': 'string'}, 'scheduled_at': {'type': 'string', 'description': "Send the reply later, still on this thread: 'in 3 days' or an ISO 8601 timestamp. Answers status 'scheduled' with the message id; cancel_scheduled_email with that id stops it, which is how a follow-up is withdrawn when the person answers first"}, 'idempotency_key': {'type': 'string', 'maxLength': 255, 'minLength': 1, 'description': "Optional. Any unique string for this one message, e.g. 'welcome-ana-2026-09-15'. Retrying with the same key and the identical arguments returns the first answer instead of sending again. A key reused for a different message is refused with 422 idempotency_key_reused and nothing is sent. 409 idempotency_in_progress means the first attempt is still running; a retry with the same key a few seconds later returns its answer"}, 'reply_to_message_id': {'type': 'string', 'description': "Id of the message being answered, sent or received: usually the inbound entry's id from get_thread. An id that matches no message in this workspace is refused with 422 invalid_request rather than starting a new thread"}}, 'additionalProperties': False}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': "The campaign's id from create_broadcast or list_broadcasts (a UUID), not its name"}}, 'additionalProperties': False}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': "The campaign's id from create_broadcast or list_broadcasts (a UUID), not its name"}, 'scheduled_at': {'type': 'string', 'description': "UTC ISO 8601 timestamp with a Z suffix, e.g. 2026-09-16T09:00:00.000Z; offsets and phrases like 'in 2 hours' are refused. Omitted, it sends now"}}, 'additionalProperties': False}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['from', 'to', 'subject'], 'properties': {'cc': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 49, 'description': "Cc addresses, each an address or 'Name <address>'. to, cc and bcc together hold at most 50"}, 'to': {'type': 'string', 'description': "Recipient address, or 'Ana Lima <ana@example.com>' to show their name in the To line. Suppressions and opt-outs match the address either way"}, 'bcc': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 49, 'description': "Bcc addresses. Each is a recipient: it counts toward the 50, the key's allowlist and its daily limit"}, 'from': {'type': 'string', 'description': "Sender address on a verified domain, e.g. 'Team <team@mail.example.com>'"}, 'html': {'type': 'string', 'description': 'HTML body; provide html, text, or both'}, 'text': {'type': 'string'}, 'subject': {'type': 'string'}, 'scheduled_at': {'type': 'string', 'description': "'in 3 days' or an ISO 8601 timestamp"}, 'idempotency_key': {'type': 'string', 'maxLength': 255, 'minLength': 1, 'description': "Optional. Any unique string for this one message, e.g. 'welcome-ana-2026-09-15'. Retrying with the same key and the identical arguments returns the first answer instead of sending again. A key reused for a different message is refused with 422 idempotency_key_reused and nothing is sent. 409 idempotency_in_progress means the first attempt is still running; a retry with the same key a few seconds later returns its answer"}}, 'additionalProperties': False}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['template', 'variables', 'from', 'to'], 'properties': {'to': {'type': 'string', 'description': "Recipient address, or 'Name <address>' to show their name"}, 'from': {'type': 'string'}, 'subject': {'type': 'string', 'description': "Overrides the template's subject"}, 'template': {'type': 'string', 'description': 'Template slug'}, 'variables': {'type': 'object', 'additionalProperties': {'type': 'string'}}, 'scheduled_at': {'type': 'string'}, 'idempotency_key': {'type': 'string', 'maxLength': 255, 'minLength': 1, 'description': "Optional. Any unique string for this one message, e.g. 'welcome-ana-2026-09-15'. Retrying with the same key and the identical arguments returns the first answer instead of sending again. A key reused for a different message is refused with 422 idempotency_key_reused and nothing is sent. 409 idempotency_in_progress means the first attempt is still running; a retry with the same key a few seconds later returns its answer"}}, 'additionalProperties': False}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['automation_id', 'status'], 'properties': {'status': {'enum': ['active', 'paused', 'draft'], 'type': 'string'}, 'automation_id': {'type': 'string', 'description': "The automation's id from list_automations (a UUID), not its name or slug"}}, 'additionalProperties': False}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['email', 'topics'], 'properties': {'email': {'type': 'string', 'format': 'email'}, 'topics': {'type': 'object', 'description': 'Topic key to subscribed, e.g. {"newsletter": false}', 'additionalProperties': {'type': 'boolean'}}}, 'additionalProperties': False}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['emails'], 'properties': {'scope': {'enum': ['all', 'transactional', 'marketing'], 'type': 'string', 'description': 'Defaults to marketing'}, 'emails': {'type': 'array', 'items': {'type': 'string', 'format': 'email'}, 'maxItems': 10000, 'minItems': 1}, 'reason': {'enum': ['manual', 'list_hygiene', 'unsubscribe'], 'type': 'string', 'description': 'Defaults to list_hygiene. unsubscribe also cancels queued mail and ends enrolments'}}, 'additionalProperties': False}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['contact_id'], 'properties': {'add': {'type': 'array', 'items': {'type': 'string', 'minLength': 1}, 'maxItems': 50}, 'remove': {'type': 'array', 'items': {'type': 'string', 'minLength': 1}, 'maxItems': 50}, 'contact_id': {'type': 'string', 'description': "The contact's id (a UUID) from find_contact, add_contact or get_contact â\x80\x94 not the email address. find_contact returns the id for an address."}}, 'additionalProperties': False}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['automation_id'], 'properties': {'reply_to': {'type': ['string', 'null'], 'description': "Where replies go instead of from, e.g. the founder's own inbox. SendRaven receives mail for its own domains only, so with a reply-to elsewhere a reply cannot stop the sequence, however exit_on_reply is set"}, 'exit_tags': {'type': 'array', 'items': {'type': 'string', 'maxLength': 60, 'minLength': 1}, 'maxItems': 20, 'description': "Contact tags that end the sequence: nobody carrying one is enrolled, and adding one ends the enrolment. A trial sequence with exit tag 'customer' stops for someone tagged 'customer' when they upgrade"}, 'topic_key': {'anyOf': [{'anyOf': [{'not': {}}, {'type': 'string', 'minLength': 1}], 'description': "Send every step under this topic (see list_topics). Its unsubscribe link then opts the person out of this kind of mail only, and opting out ends the sequence. Must be an existing topic's key; an unknown one is refused with 422 unknown_topic"}, {'type': 'null'}], 'description': "Send every step under this topic (see list_topics). Its unsubscribe link then opts the person out of this kind of mail only, and opting out ends the sequence. Must be an existing topic's key; an unknown one is refused with 422 unknown_topic"}, 'reenrollment': {'enum': ['after_completion', 'never'], 'type': 'string', 'description': 'after_completion (the default): someone whose enrolment completed or was cancelled can be enrolled again. never: each person goes through it once, and a later enrolment answers enrolled: false with reason previously_enrolled. never suits onboarding or a one-time offer, where a second run would mail someone the same sequence twice'}, 'automation_id': {'type': 'string', 'description': "The automation's id from list_automations (a UUID), not its name or slug"}, 'exit_on_reply': {'type': 'boolean', 'description': 'End the enrolment when the person replies. Defaults to true; false suits dunning'}, 'required_tags': {'type': 'array', 'items': {'$ref': '#/properties/exit_tags/items'}, 'maxItems': 20, 'description': 'Tags a person must keep: only people carrying all of them are enrolled, and removing one ends the enrolment. Someone with no contact record has no tags, so is never enrolled'}, 'default_variables': {'type': 'object', 'description': "Template values every enrolment gets, under the variables an enrolment passes (which win). Required for contact_added and tag_added, which enrol with no values: every placeholder in the steps' subjects, html and templates needs one here, or the call answers 422 missing_variables naming the missing ones. Read at each step, so a fix reaches people already enrolled", 'additionalProperties': {'type': 'string'}}}, 'additionalProperties': False}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': "The contact's id (a UUID) from find_contact, add_contact or get_contact â\x80\x94 not the email address. find_contact returns the id for an address."}, 'last_name': {'type': 'string', 'maxLength': 120}, 'attributes': {'type': 'object', 'additionalProperties': {'type': ['string', 'number', 'boolean']}}, 'first_name': {'type': 'string', 'maxLength': 120}, 'unsubscribed': {'type': 'boolean', 'description': 'true to opt them out of marketing, false to undo an unsubscribe'}, 'last_active_at': {'anyOf': [{'type': 'string', 'format': 'date-time'}, {'type': 'null'}], 'description': 'ISO 8601 time of their last activity in your product. Only moves forward; null clears it.'}}, 'additionalProperties': False}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': "The sending domain's id from list_sending_domains (a UUID), not the domain name"}}, 'additionalProperties': False}
近期工具变更
类似的 MCP 服务器
neuron
Operates AI chatbots and messaging workflows across WhatsApp and social channels, including contacts, campaigns, conversations, p…
commsharbor
Manages permission-based email audiences, contacts, campaigns, transactional sends, billing, consent, and tenant audit trails.
Emailchaser
Manages cold-email campaigns, leads, sender mailboxes, sequences, outreach automation, deliverability, prospect sourcing, webhook…
send16-mcp
Provides email marketing and transactional messaging tools for contacts, audiences, campaigns, templates, automations, analytics,…
Mailrith Email Marketing
Manages email marketing subscribers, templates, broadcasts, automations, scheduling, testing, and campaign analytics.
MisarMail MCP Server
Supports transactional and campaign email, contacts, templates, automations, landing pages, deliverability checks, inbox manageme…
Sendgrid
Accesses SendGrid email delivery data, including sending statistics, bounces, and blocked recipients.
postari
Manages email campaigns, transactional messages, contacts, forms, landing pages, automations, launches, and delivery metrics.