Was dieses MCP kann
Provides managed email infrastructure for sending, receiving, searching, replying to, scheduling, and processing email and webhook deliveries.
Tools
Eingabeschema
{'type': 'object', 'required': ['requestBody'], 'properties': {'requestBody': {'type': 'object', 'required': ['domain'], 'properties': {'domain': {'type': 'string', 'maxLength': 253, 'minLength': 1, 'description': 'The domain name to claim (e.g. "example.com").'}, 'confirmed': {'type': 'boolean', 'description': 'Set to true to confirm replacing an existing mailbox provider after an mx_conflict response.'}}, 'additionalProperties': False}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['tool', 'status', 'data'], 'properties': {'data': {}, 'tool': {'type': 'string'}, 'status': {'type': 'number'}, 'statusText': {'type': 'string'}}, 'additionalProperties': False}
Eingabeschema
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'description': 'The sent email id to fetch the reply for (from a sendEmail/replyToEmail response).'}, 'wait': {'type': 'boolean', 'default': True, 'description': 'When true, long-poll until a reply arrives or wait_timeout_ms elapses. Defaults to true. Set false only for a single immediate poll.'}, 'api_key': {'type': 'string', 'maxLength': 200, 'minLength': 8, 'description': 'Primitive API key (prim_...). Only needed when this connection has no signed-in account: pass the api_key returned by createEmailAddress, unchanged, on every call for the rest of the conversation. Omit it when the user is signed in.'}, 'wait_timeout_ms': {'type': 'number', 'default': 30000, 'maximum': 30000, 'minimum': 1000, 'description': 'How long to wait when wait=true (1000 to 30000 ms). Defaults to 30000.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['tool', 'status', 'data'], 'properties': {'data': {}, 'tool': {'type': 'string'}, 'status': {'type': 'number'}, 'statusText': {'type': 'string'}}, 'additionalProperties': False}
Eingabeschema
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'description': 'Sent email ID of the scheduled send, from a sendEmail response or listSentEmails.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['tool', 'status', 'data'], 'properties': {'data': {}, 'tool': {'type': 'string'}, 'status': {'type': 'number'}, 'statusText': {'type': 'string'}}, 'additionalProperties': False}
Eingabeschema
{'type': 'object', 'required': ['requestBody'], 'properties': {'requestBody': {'type': 'object', 'required': ['terms_accepted'], 'properties': {'device_name': {'type': 'string', 'description': 'Optional label for where the account was created, e.g. "ChatGPT". Up to 80 characters once surrounding whitespace is removed. Shown to the user later so they can recognise this account.'}, 'terms_accepted': {'const': True, 'description': "Must be true. Creating the account accepts Primitive's terms of service (https://www.primitive.dev/terms); say so to the user rather than accepting silently on their behalf."}}, 'additionalProperties': False}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['tool', 'status', 'data'], 'properties': {'data': {}, 'tool': {'type': 'string'}, 'status': {'type': 'number'}, 'statusText': {'type': 'string'}}, 'additionalProperties': False}
Eingabeschema
{'type': 'object', 'required': ['requestBody'], 'properties': {'requestBody': {'type': 'object', 'required': ['url'], 'properties': {'url': {'type': 'string', 'minLength': 1, 'description': 'The webhook URL to deliver events to.'}, 'rules': {'type': 'object', 'description': 'Endpoint-specific filtering rules.', 'additionalProperties': True}, 'enabled': {'type': 'boolean', 'default': True, 'description': 'Whether the endpoint should receive deliveries immediately after creation (default true).'}, 'domain_id': {'type': 'string', 'format': 'uuid', 'description': 'Restrict deliveries to emails from a specific domain. Omit to receive events for all domains.'}}, 'additionalProperties': False}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['tool', 'status', 'data'], 'properties': {'data': {}, 'tool': {'type': 'string'}, 'status': {'type': 'number'}, 'statusText': {'type': 'string'}}, 'additionalProperties': False}
Eingabeschema
{'type': 'object', 'required': ['requestBody'], 'properties': {'requestBody': {'type': 'object', 'required': ['type', 'pattern'], 'properties': {'type': {'enum': ['whitelist', 'blocklist'], 'type': 'string', 'description': 'Whether to allow (whitelist) or block (blocklist) matching senders.'}, 'pattern': {'type': 'string', 'maxLength': 500, 'minLength': 1, 'description': 'Email address or pattern to filter.'}, 'domain_id': {'type': 'string', 'format': 'uuid', 'description': 'Restrict to a specific domain (Pro plan required). Omit for org-wide filter.'}}, 'additionalProperties': False}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['tool', 'status', 'data'], 'properties': {'data': {}, 'tool': {'type': 'string'}, 'status': {'type': 'number'}, 'statusText': {'type': 'string'}}, 'additionalProperties': False}
Eingabeschema
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'description': 'Endpoint ID from listEndpoints or createEndpoint.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['tool', 'status', 'data'], 'properties': {'data': {}, 'tool': {'type': 'string'}, 'status': {'type': 'number'}, 'statusText': {'type': 'string'}}, 'additionalProperties': False}
Eingabeschema
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'description': 'Filter rule ID from listFilters or createFilter.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['tool', 'status', 'data'], 'properties': {'data': {}, 'tool': {'type': 'string'}, 'status': {'type': 'number'}, 'statusText': {'type': 'string'}}, 'additionalProperties': False}
Eingabeschema
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'description': 'Domain ID from listDomains or addDomain.'}, 'outbound_only': {'type': 'boolean', 'description': 'When true, include only outbound DNS records (SPF, DKIM, DMARC). Defaults to all records for unverified domains, outbound-only for verified.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['tool', 'status', 'data'], 'properties': {'data': {}, 'tool': {'type': 'string'}, 'status': {'type': 'number'}, 'statusText': {'type': 'string'}}, 'additionalProperties': False}
Eingabeschema
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'description': 'Inbound email ID.'}, 'token': {'type': 'string', 'description': 'Signed download token from a webhook payload. Optional — the bearer token is used when this is omitted.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['tool', 'status', 'data'], 'properties': {'data': {}, 'tool': {'type': 'string'}, 'status': {'type': 'number'}, 'statusText': {'type': 'string'}}, 'additionalProperties': False}
Eingabeschema
{'type': 'object', 'required': [], 'properties': {'api_key': {'type': 'string', 'maxLength': 200, 'minLength': 8, 'description': 'Primitive API key (prim_...). Only needed when this connection has no signed-in account: pass the api_key returned by createEmailAddress, unchanged, on every call for the rest of the conversation. Omit it when the user is signed in.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['tool', 'status', 'data'], 'properties': {'data': {}, 'tool': {'type': 'string'}, 'status': {'type': 'number'}, 'statusText': {'type': 'string'}}, 'additionalProperties': False}
Eingabeschema
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'description': 'ID of any inbound email in the conversation.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['tool', 'status', 'data'], 'properties': {'data': {}, 'tool': {'type': 'string'}, 'status': {'type': 'number'}, 'statusText': {'type': 'string'}}, 'additionalProperties': False}
Eingabeschema
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'description': 'Inbound email ID from listEmails or searchEmails.'}, 'api_key': {'type': 'string', 'maxLength': 200, 'minLength': 8, 'description': 'Primitive API key (prim_...). Only needed when this connection has no signed-in account: pass the api_key returned by createEmailAddress, unchanged, on every call for the rest of the conversation. Omit it when the user is signed in.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['tool', 'status', 'data'], 'properties': {'data': {}, 'tool': {'type': 'string'}, 'status': {'type': 'number'}, 'statusText': {'type': 'string'}}, 'additionalProperties': False}
Eingabeschema
{'type': 'object', 'required': [], 'properties': {'api_key': {'type': 'string', 'maxLength': 200, 'minLength': 8, 'description': 'Primitive API key (prim_...). Only needed when this connection has no signed-in account: pass the api_key returned by createEmailAddress, unchanged, on every call for the rest of the conversation. Omit it when the user is signed in.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['tool', 'status', 'data'], 'properties': {'data': {}, 'tool': {'type': 'string'}, 'status': {'type': 'number'}, 'statusText': {'type': 'string'}}, 'additionalProperties': False}
Eingabeschema
{'type': 'object', 'required': [], 'properties': {}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['tool', 'status', 'data'], 'properties': {'data': {}, 'tool': {'type': 'string'}, 'status': {'type': 'number'}, 'statusText': {'type': 'string'}}, 'additionalProperties': False}
Eingabeschema
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'description': 'Sent email ID from listSentEmails or a /send-mail response.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['tool', 'status', 'data'], 'properties': {'data': {}, 'tool': {'type': 'string'}, 'status': {'type': 'number'}, 'statusText': {'type': 'string'}}, 'additionalProperties': False}
Eingabeschema
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'description': 'Thread ID from the thread_id field on any email or sent-email.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['tool', 'status', 'data'], 'properties': {'data': {}, 'tool': {'type': 'string'}, 'status': {'type': 'number'}, 'statusText': {'type': 'string'}}, 'additionalProperties': False}
Eingabeschema
{'type': 'object', 'properties': {}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['tool', 'status', 'data'], 'properties': {'data': {}, 'tool': {'type': 'string'}, 'status': {'type': 'number'}, 'statusText': {'type': 'string'}}, 'additionalProperties': False}
Eingabeschema
{'type': 'object', 'properties': {'wait': {'type': 'number', 'default': 0, 'maximum': 30, 'minimum': 0, 'description': 'Long-poll up to this many seconds (0–30, default 0) holding the request for new mail instead of returning an empty page immediately. Requires `since`. Returns as soon as matching mail arrives, or an empty page when the wait elapses.'}, 'limit': {'type': 'number', 'default': 50, 'maximum': 100, 'minimum': 1, 'description': 'Maximum number of emails to return (1–100, default 50).'}, 'since': {'type': 'string', 'description': 'Forward-tail cursor (a `meta.cursor` value, format `{ISO datetime}|{UUID}`): returns emails strictly NEWER than this position, oldest-first, for lossless polling of just-arrived mail. Mutually exclusive with `cursor`.'}, 'cursor': {'type': 'string', 'description': "Backward (history) pagination cursor from a previous response's `meta.cursor` field: returns emails OLDER than this position, newest-first. Mutually exclusive with `since`."}, 'search': {'type': 'string', 'maxLength': 500, 'description': 'Free-text search across sender, recipient, and subject.'}, 'status': {'enum': ['pending', 'accepted', 'completed', 'rejected'], 'type': 'string', 'description': 'Filter to emails in this processing status.'}, 'api_key': {'type': 'string', 'maxLength': 200, 'minLength': 8, 'description': 'Primitive API key (prim_...). Only needed when this connection has no signed-in account: pass the api_key returned by createEmailAddress, unchanged, on every call for the rest of the conversation. Omit it when the user is signed in.'}, 'date_to': {'type': 'string', 'format': 'date-time', 'description': 'Inclusive upper bound on created_at (ISO 8601).'}, 'date_from': {'type': 'string', 'format': 'date-time', 'description': 'Inclusive lower bound on created_at (ISO 8601).'}, 'domain_id': {'type': 'string', 'format': 'uuid', 'description': 'Filter to emails received on a specific verified domain.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['tool', 'status', 'data'], 'properties': {'data': {}, 'tool': {'type': 'string'}, 'status': {'type': 'number'}, 'statusText': {'type': 'string'}}, 'additionalProperties': False}
Eingabeschema
{'type': 'object', 'properties': {}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['tool', 'status', 'data'], 'properties': {'data': {}, 'tool': {'type': 'string'}, 'status': {'type': 'number'}, 'statusText': {'type': 'string'}}, 'additionalProperties': False}
Eingabeschema
{'type': 'object', 'properties': {}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['tool', 'status', 'data'], 'properties': {'data': {}, 'tool': {'type': 'string'}, 'status': {'type': 'number'}, 'statusText': {'type': 'string'}}, 'additionalProperties': False}
Eingabeschema
{'type': 'object', 'properties': {'limit': {'type': 'number', 'default': 50, 'maximum': 100, 'minimum': 1, 'description': 'Maximum number of sent emails to return (1–100, default 50).'}, 'cursor': {'type': 'string', 'description': "Pagination cursor from a previous response's `meta.cursor` field."}, 'status': {'enum': ['queued', 'submitted_to_agent', 'agent_failed', 'gate_denied', 'unknown', 'delivered', 'bounced', 'deferred', 'wait_timeout', 'scheduled', 'canceled'], 'type': 'string', 'description': 'Filter to rows in this status. Use "scheduled" to find pending scheduled sends (cancelable via cancelScheduledSend) and "canceled" for ones already canceled.'}, 'date_to': {'type': 'string', 'format': 'date-time', 'description': 'Inclusive upper bound on created_at (ISO 8601).'}, 'date_from': {'type': 'string', 'format': 'date-time', 'description': 'Inclusive lower bound on created_at (ISO 8601).'}, 'request_id': {'type': 'string', 'format': 'uuid', 'description': 'Filter to the row matching a specific server-issued request_id from a /send-mail response.'}, 'idempotency_key': {'type': 'string', 'maxLength': 255, 'minLength': 1, 'description': 'Filter to rows with the given client idempotency key.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['tool', 'status', 'data'], 'properties': {'data': {}, 'tool': {'type': 'string'}, 'status': {'type': 'number'}, 'statusText': {'type': 'string'}}, 'additionalProperties': False}
Eingabeschema
{'type': 'object', 'properties': {'limit': {'type': 'number', 'default': 50, 'maximum': 100, 'minimum': 1, 'description': 'Maximum number of delivery records to return (1–100, default 50).'}, 'cursor': {'type': 'string', 'description': "Pagination cursor from a previous response's `meta.cursor` field."}, 'status': {'enum': ['pending', 'delivered', 'header_confirmed', 'failed'], 'type': 'string', 'description': 'Filter to deliveries in this status.'}, 'date_to': {'type': 'string', 'format': 'date-time', 'description': 'Inclusive upper bound on attempted_at (ISO 8601).'}, 'email_id': {'type': 'string', 'format': 'uuid', 'description': 'Filter by inbound email ID.'}, 'date_from': {'type': 'string', 'format': 'date-time', 'description': 'Inclusive lower bound on attempted_at (ISO 8601).'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['tool', 'status', 'data'], 'properties': {'data': {}, 'tool': {'type': 'string'}, 'status': {'type': 'number'}, 'statusText': {'type': 'string'}}, 'additionalProperties': False}
Eingabeschema
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Delivery ID (numeric string from listWebhookDeliveries).'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['tool', 'status', 'data'], 'properties': {'data': {}, 'tool': {'type': 'string'}, 'status': {'type': 'number'}, 'statusText': {'type': 'string'}}, 'additionalProperties': False}
Eingabeschema
{'type': 'object', 'required': ['id', 'requestBody'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'description': 'Inbound email ID to reply to. Threading headers are set server-side.'}, 'api_key': {'type': 'string', 'maxLength': 200, 'minLength': 8, 'description': 'Primitive API key (prim_...). Only needed when this connection has no signed-in account: pass the api_key returned by createEmailAddress, unchanged, on every call for the rest of the conversation. Omit it when the user is signed in.'}, 'requestBody': {'type': 'object', 'properties': {'from': {'type': 'string', 'maxLength': 998, 'minLength': 3, 'description': 'RFC 5322 From header. Defaults to the original recipient address if omitted.'}, 'wait': {'type': 'boolean', 'description': 'When true, wait for the first SMTP delivery outcome before returning.'}, 'body_html': {'type': 'string', 'description': 'HTML reply body. Provide at least one of body_text or body_html.'}, 'body_text': {'type': 'string', 'description': 'Plain-text reply body. Provide at least one of body_text or body_html.'}, 'attachments': {'type': 'array', 'items': {'type': 'object', 'required': ['filename', 'content_base64'], 'properties': {'filename': {'type': 'string', 'maxLength': 255, 'minLength': 1, 'description': 'Attachment filename including extension.'}, 'content_id': {'type': 'string', 'pattern': '^[\\x21-\\x3B\\x3D\\x3F-\\x7E]+$', 'maxLength': 128, 'minLength': 1, 'description': 'Content-ID for an inline (cid) attachment: 1-128 printable ASCII characters, no whitespace or angle brackets. When set, the part renders inline and body_html can reference it (e.g. src="cid:logo-1"). Omit for a regular downloadable attachment.'}, 'content_type': {'type': 'string', 'maxLength': 255, 'minLength': 1, 'description': 'MIME type of the attachment (e.g. "application/pdf"). Inferred from the filename when omitted.'}, 'content_base64': {'type': 'string', 'maxLength': 44040192, 'minLength': 1, 'description': 'Base64-encoded attachment content.'}}, 'additionalProperties': False}, 'maxItems': 100, 'description': 'Optional file attachments to include in the reply.'}}, 'additionalProperties': False}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['tool', 'status', 'data'], 'properties': {'data': {}, 'tool': {'type': 'string'}, 'status': {'type': 'number'}, 'statusText': {'type': 'string'}}, 'additionalProperties': False}
Eingabeschema
{'type': 'object', 'properties': {'q': {'type': 'string', 'maxLength': 500, 'description': 'Full-text query matched across subject, body, sender, and recipient.'}, 'to': {'type': 'string', 'maxLength': 255, 'description': 'Filter to emails addressed to this recipient.'}, 'body': {'type': 'string', 'maxLength': 2000, 'description': 'Filter to emails whose body contains this string.'}, 'from': {'type': 'string', 'maxLength': 255, 'description': 'Filter to emails from this sender address or domain.'}, 'sort': {'enum': ['relevance', 'received_at_desc', 'received_at_asc'], 'type': 'string', 'description': 'Sort order. Use received_at_asc with date_from for polling new mail.'}, 'limit': {'type': 'number', 'default': 50, 'maximum': 100, 'minimum': 1, 'description': 'Maximum number of emails to return (1–100, default 50).'}, 'cursor': {'type': 'string', 'maxLength': 200, 'description': "Pagination cursor from a previous response's `meta.cursor` field."}, 'status': {'enum': ['pending', 'accepted', 'completed', 'rejected'], 'type': 'string', 'description': 'Filter to emails in this processing status.'}, 'date_to': {'type': 'string', 'format': 'date-time', 'description': 'Inclusive upper bound on received_at (ISO 8601).'}, 'snippet': {'enum': ['true', 'false'], 'type': 'string', 'default': 'true', 'description': 'Include a short body snippet in each result (default true).'}, 'subject': {'type': 'string', 'maxLength': 500, 'description': 'Filter to emails whose subject contains this string.'}, 'date_from': {'type': 'string', 'format': 'date-time', 'description': 'Inclusive lower bound on received_at (ISO 8601).'}, 'domain_id': {'type': 'string', 'format': 'uuid', 'description': 'Filter to emails received on a specific verified domain.'}, 'spam_score_lt': {'type': 'number', 'description': 'Filter to emails with a spam score strictly below this value.'}, 'has_attachment': {'enum': ['true', 'false'], 'type': 'string', 'description': 'Filter to emails that have ("true") or lack ("false") attachments.'}, 'include_facets': {'enum': ['true', 'false'], 'type': 'string', 'default': 'true', 'description': 'Include aggregated facet counts (sender, domain, status) in the response (default true).'}, 'spam_score_gte': {'type': 'number', 'description': 'Filter to emails with a spam score at or above this value.'}, 'reply_to_sent_email_id': {'type': 'string', 'format': 'uuid', 'description': 'Filter to inbound emails that are replies to a specific sent email ID.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['tool', 'status', 'data'], 'properties': {'data': {}, 'tool': {'type': 'string'}, 'status': {'type': 'number'}, 'statusText': {'type': 'string'}}, 'additionalProperties': False}
Eingabeschema
{'type': 'object', 'required': ['requestBody'], 'properties': {'api_key': {'type': 'string', 'maxLength': 200, 'minLength': 8, 'description': 'Primitive API key (prim_...). Only needed when this connection has no signed-in account: pass the api_key returned by createEmailAddress, unchanged, on every call for the rest of the conversation. Omit it when the user is signed in.'}, 'requestBody': {'type': 'object', 'required': ['from', 'to', 'subject'], 'properties': {'cc': {'oneOf': [{'type': 'string', 'maxLength': 998, 'minLength': 3}, {'type': 'array', 'items': {'type': 'string', 'maxLength': 998, 'minLength': 3}, 'maxItems': 100, 'minItems': 1}], 'description': 'Optional CC recipients: a single address or an array of single-address strings (each entry exactly one address). Counts toward the combined to+cc+bcc max of 100.'}, 'to': {'oneOf': [{'type': 'string', 'maxLength': 998, 'minLength': 3}, {'type': 'array', 'items': {'type': 'string', 'maxLength': 998, 'minLength': 3}, 'maxItems': 100, 'minItems': 1}], 'description': 'Recipient email address (RFC 5321 mailbox, display-name form allowed), or an array of single-address strings to address multiple recipients with one message. Each array entry must be exactly one address. Combined to+cc+bcc count max 100.'}, 'bcc': {'oneOf': [{'type': 'string', 'maxLength': 998, 'minLength': 3}, {'type': 'array', 'items': {'type': 'string', 'maxLength': 998, 'minLength': 3}, 'maxItems': 100, 'minItems': 1}], 'description': 'Optional BCC recipients: a single address or an array of single-address strings (each entry exactly one address). Counts toward the combined to+cc+bcc max of 100.'}, 'from': {'type': 'string', 'maxLength': 998, 'minLength': 3, 'description': "RFC 5322 From header: YOUR OWN complete mailbox address, never the recipient's. createEmailAddress.address and getAccount.managed_inbox_address are domains, not mailbox addresses. When present, use the sender_address added to those MCP results, such as agent@pink-ram.primitive.email. Putting the recipient's address here mails them as themselves, which they will ignore. The sender domain must be a verified outbound domain for your organization."}, 'tags': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'value'], 'properties': {'name': {'type': 'string', 'pattern': '^[A-Za-z0-9_-]+$', 'maxLength': 64, 'minLength': 1, 'description': 'Tag name: ASCII letters, digits, underscores, dashes only.'}, 'value': {'type': 'string', 'pattern': '^[A-Za-z0-9_-]+$', 'maxLength': 256, 'minLength': 1, 'description': 'Tag value: same charset as the name. Use "true" for a bare marker tag.'}}, 'additionalProperties': False}, 'maxItems': 10, 'description': 'Optional metadata tags (max 10, unique names) stored on the send record for correlation and filtering via listSentEmails. Never rendered into headers and never delivered.'}, 'wait': {'type': 'boolean', 'description': 'When true, wait for the first SMTP delivery outcome before returning. Respects wait_timeout_ms. Cannot be combined with scheduled_at.'}, 'subject': {'type': 'string', 'maxLength': 998, 'minLength': 1, 'description': 'Email subject line.'}, 'reply_to': {'oneOf': [{'type': 'string', 'maxLength': 998, 'minLength': 3}, {'type': 'array', 'items': {'type': 'string', 'maxLength': 998, 'minLength': 3}, 'maxItems': 10, 'minItems': 1}], 'description': 'Optional Reply-To header: a single address or an array of up to 10 single-address entries. A pure header: adds no recipients and does not count toward the recipient cap.'}, 'body_html': {'type': 'string', 'description': 'HTML message body. Provide at least one of body_text or body_html. Reference inline attachments via cid: URLs matching their content_id.'}, 'body_text': {'type': 'string', 'description': 'Plain-text message body. Provide at least one of body_text or body_html.'}, 'references': {'type': 'array', 'items': {'type': 'string', 'maxLength': 998, 'minLength': 1}, 'maxItems': 100, 'description': 'List of Message-IDs for the References header, oldest-first.'}, 'attachments': {'type': 'array', 'items': {'type': 'object', 'required': ['filename', 'content_base64'], 'properties': {'filename': {'type': 'string', 'maxLength': 255, 'minLength': 1, 'description': 'Attachment filename including extension.'}, 'content_id': {'type': 'string', 'pattern': '^[\\x21-\\x3B\\x3D\\x3F-\\x7E]+$', 'maxLength': 128, 'minLength': 1, 'description': 'Content-ID for an inline (cid) attachment: 1-128 printable ASCII characters, no whitespace or angle brackets. When set, the part renders inline and body_html can reference it (e.g. src="cid:logo-1"). Omit for a regular downloadable attachment.'}, 'content_type': {'type': 'string', 'maxLength': 255, 'minLength': 1, 'description': 'MIME type of the attachment (e.g. "application/pdf"). Inferred from the filename when omitted.'}, 'content_base64': {'type': 'string', 'maxLength': 44040192, 'minLength': 1, 'description': 'Base64-encoded attachment content.'}}, 'additionalProperties': False}, 'maxItems': 100, 'description': 'Optional file attachments. Not allowed on scheduled sends (scheduled_at).'}, 'in_reply_to': {'type': 'string', 'maxLength': 998, 'minLength': 1, 'description': 'Message-ID of the email being replied to, for threading (e.g. "<abc@example.com>").'}, 'scheduled_at': {'type': 'string', 'format': 'date-time', 'description': 'Schedule the send for a future time (ISO 8601 UTC, e.g. "2026-08-01T09:00:00Z"). Must be strictly in the future and at most 30 days out. Cannot be combined with wait or with attachments. Cancel before dispatch with cancelScheduledSend.'}, 'wait_timeout_ms': {'type': 'number', 'maximum': 30000, 'minimum': 1000, 'description': 'How long to wait for delivery confirmation when wait is true (1000-30000 ms, default 10000).'}}, 'additionalProperties': False}, 'Idempotency-Key': {'type': 'string', 'maxLength': 255, 'minLength': 1, 'description': 'Client-supplied idempotency key. Retrying with the same key returns the original result without re-sending.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['tool', 'status', 'data'], 'properties': {'data': {}, 'tool': {'type': 'string'}, 'status': {'type': 'number'}, 'statusText': {'type': 'string'}}, 'additionalProperties': False}
Eingabeschema
{'type': 'object', 'required': ['requestBody'], 'properties': {'requestBody': {'type': 'object', 'required': ['from', 'to', 'subject'], 'properties': {'cc': {'oneOf': [{'type': 'string', 'maxLength': 998, 'minLength': 3}, {'type': 'array', 'items': {'type': 'string', 'maxLength': 998, 'minLength': 3}, 'maxItems': 100, 'minItems': 1}], 'description': 'Optional CC recipients: a single address or an array of single-address strings (each entry exactly one address). Counts toward the combined to+cc+bcc max of 100.'}, 'to': {'oneOf': [{'type': 'string', 'maxLength': 998, 'minLength': 3}, {'type': 'array', 'items': {'type': 'string', 'maxLength': 998, 'minLength': 3}, 'maxItems': 100, 'minItems': 1}], 'description': 'Recipient email address (RFC 5321 mailbox, display-name form allowed), or an array of single-address strings to address multiple recipients with one message. Each array entry must be exactly one address. Combined to+cc+bcc count max 100.'}, 'bcc': {'oneOf': [{'type': 'string', 'maxLength': 998, 'minLength': 3}, {'type': 'array', 'items': {'type': 'string', 'maxLength': 998, 'minLength': 3}, 'maxItems': 100, 'minItems': 1}], 'description': 'Optional BCC recipients: a single address or an array of single-address strings (each entry exactly one address). Counts toward the combined to+cc+bcc max of 100.'}, 'from': {'type': 'string', 'maxLength': 998, 'minLength': 3, 'description': "RFC 5322 From header: YOUR OWN complete mailbox address, never the recipient's. createEmailAddress.address and getAccount.managed_inbox_address are domains, not mailbox addresses. When present, use the sender_address added to those MCP results, such as agent@pink-ram.primitive.email. Putting the recipient's address here mails them as themselves, which they will ignore. The sender domain must be a verified outbound domain for your organization."}, 'tags': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'value'], 'properties': {'name': {'type': 'string', 'pattern': '^[A-Za-z0-9_-]+$', 'maxLength': 64, 'minLength': 1, 'description': 'Tag name: ASCII letters, digits, underscores, dashes only.'}, 'value': {'type': 'string', 'pattern': '^[A-Za-z0-9_-]+$', 'maxLength': 256, 'minLength': 1, 'description': 'Tag value: same charset as the name. Use "true" for a bare marker tag.'}}, 'additionalProperties': False}, 'maxItems': 10, 'description': 'Optional metadata tags (max 10, unique names) stored on the send record for correlation and filtering via listSentEmails. Never rendered into headers and never delivered.'}, 'wait': {'type': 'boolean', 'description': 'When true, wait for the first SMTP delivery outcome before returning. Respects wait_timeout_ms. Cannot be combined with scheduled_at.'}, 'subject': {'type': 'string', 'maxLength': 998, 'minLength': 1, 'description': 'Email subject line.'}, 'reply_to': {'oneOf': [{'type': 'string', 'maxLength': 998, 'minLength': 3}, {'type': 'array', 'items': {'type': 'string', 'maxLength': 998, 'minLength': 3}, 'maxItems': 10, 'minItems': 1}], 'description': 'Optional Reply-To header: a single address or an array of up to 10 single-address entries. A pure header: adds no recipients and does not count toward the recipient cap.'}, 'body_html': {'type': 'string', 'description': 'HTML message body. Provide at least one of body_text or body_html. Reference inline attachments via cid: URLs matching their content_id.'}, 'body_text': {'type': 'string', 'description': 'Plain-text message body. Provide at least one of body_text or body_html.'}, 'references': {'type': 'array', 'items': {'type': 'string', 'maxLength': 998, 'minLength': 1}, 'maxItems': 100, 'description': 'List of Message-IDs for the References header, oldest-first.'}, 'attachments': {'type': 'array', 'items': {'type': 'object', 'required': ['filename', 'content_base64'], 'properties': {'filename': {'type': 'string', 'maxLength': 255, 'minLength': 1, 'description': 'Attachment filename including extension.'}, 'content_id': {'type': 'string', 'pattern': '^[\\x21-\\x3B\\x3D\\x3F-\\x7E]+$', 'maxLength': 128, 'minLength': 1, 'description': 'Content-ID for an inline (cid) attachment: 1-128 printable ASCII characters, no whitespace or angle brackets. When set, the part renders inline and body_html can reference it (e.g. src="cid:logo-1"). Omit for a regular downloadable attachment.'}, 'content_type': {'type': 'string', 'maxLength': 255, 'minLength': 1, 'description': 'MIME type of the attachment (e.g. "application/pdf"). Inferred from the filename when omitted.'}, 'content_base64': {'type': 'string', 'maxLength': 44040192, 'minLength': 1, 'description': 'Base64-encoded attachment content.'}}, 'additionalProperties': False}, 'maxItems': 100, 'description': 'Optional file attachments. Not allowed on scheduled sends (scheduled_at).'}, 'in_reply_to': {'type': 'string', 'maxLength': 998, 'minLength': 1, 'description': 'Message-ID of the email being replied to, for threading (e.g. "<abc@example.com>").'}, 'scheduled_at': {'type': 'string', 'format': 'date-time', 'description': 'Schedule the send for a future time (ISO 8601 UTC, e.g. "2026-08-01T09:00:00Z"). Must be strictly in the future and at most 30 days out. Cannot be combined with wait or with attachments. Cancel before dispatch with cancelScheduledSend.'}, 'wait_timeout_ms': {'type': 'number', 'maximum': 30000, 'minimum': 1000, 'description': 'How long to wait for delivery confirmation when wait is true (1000-30000 ms, default 10000).'}}, 'additionalProperties': False}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['tool', 'status', 'data'], 'properties': {'data': {}, 'tool': {'type': 'string'}, 'status': {'type': 'number'}, 'statusText': {'type': 'string'}}, 'additionalProperties': False}
Eingabeschema
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'description': 'Endpoint ID from listEndpoints or createEndpoint.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['tool', 'status', 'data'], 'properties': {'data': {}, 'tool': {'type': 'string'}, 'status': {'type': 'number'}, 'statusText': {'type': 'string'}}, 'additionalProperties': False}
Eingabeschema
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'description': 'Domain ID returned by addDomain or listDomains.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['tool', 'status', 'data'], 'properties': {'data': {}, 'tool': {'type': 'string'}, 'status': {'type': 'number'}, 'statusText': {'type': 'string'}}, 'additionalProperties': False}
Letzte Tool-Änderungen
Ähnliche MCP-Server
neuron
Operates AI chatbots and messaging workflows across WhatsApp and social channels, including contacts, campaigns, conversations, p…
独行录 / opcmenu
Supports founder and company discovery, collaboration goals and tasks, events and signups, networking, messaging, profiles, produ…
mcp-server
Provides social-network functions for posts, comments, direct and group conversations, communities, moderation, collections, and …
FavCRM
Provides CRM operations for customers, leads, deals, bookings, memberships, campaigns, WhatsApp and SMS messaging, invoices, loya…
Local MCP
Connects AI assistants to Mac email, calendars, reminders, notes, tasks, files, Microsoft 365, Todoist, spreadsheets, and daily b…
Courier
Provides notification delivery infrastructure for users, tenants, lists, templates, preferences, journeys, automations, brands, a…
mu
Supports personal and collaborative tasks including web browsing, app creation, blogs, bookmarks, discussions, and contact manage…
commsharbor
Manages permission-based email audiences, contacts, campaigns, transactional sends, billing, consent, and tenant audit trails.