이 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.