mcp
Qué hace este MCP
Sends email, reads threaded replies, and runs campaigns with per-key limits.
Herramientas
Esquema de entrada
{'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}
Esquema de entrada
{'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}
Esquema de entrada
{'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}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string'}}, 'additionalProperties': False}
Esquema de entrada
{'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}
Esquema de entrada
{'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}
Esquema de entrada
{'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}
Esquema de entrada
{'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}
Esquema de entrada
{'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}
Esquema de entrada
{'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}
Esquema de entrada
{'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}
Esquema de entrada
{'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}
Esquema de entrada
{'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}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Message id'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'days': {'type': 'integer', 'maximum': 365, 'minimum': 1, 'description': 'Defaults to 30'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['email'], 'properties': {'email': {'type': 'string', 'format': 'email'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Thread id'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
Esquema de entrada
{'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}
Esquema de entrada
{'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}
Esquema de entrada
{'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}
Esquema de entrada
{'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}
Esquema de entrada
{'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}
Esquema de entrada
{'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}
Esquema de entrada
{'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}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
Esquema de entrada
{'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}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
Esquema de entrada
{'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}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
Esquema de entrada
{'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}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
Esquema de entrada
{'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}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Thread id'}}, 'additionalProperties': False}
Esquema de entrada
{'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}
Esquema de entrada
{'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}
Esquema de entrada
{'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}
Esquema de entrada
{'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}
Esquema de entrada
{'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}
Esquema de entrada
{'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}
Esquema de entrada
{'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}
Esquema de entrada
{'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}
Esquema de entrada
{'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}
Esquema de entrada
{'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}
Esquema de entrada
{'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}
Esquema de entrada
{'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}
Esquema de entrada
{'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}
Esquema de entrada
{'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}
Esquema de entrada
{'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}
Esquema de entrada
{'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}
Esquema de entrada
{'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}
Cambios recientes en herramientas
Servidores MCP similares
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.