Brevo's marketing and CRM platform — manage contacts, lists and segments, send transactional and campaign email, run SMS and WhatsApp campaigns, and track deals and companies
Encrypted at rest, isolated from the model
Resolved from an AES-256-GCM vault at the moment of the call and attached to the request — the model never sees the secrets.
Try asking
Retrieves details of the authenticated Brevo account — organization and user identifiers, company and address information, enterprise status, marketing automation configuration, plan/credit allocations, and SMTP relay configuration for transactional email. The marketingAutomation key is only present when that feature is enabled on the account.
Lists contacts in the Brevo account with pagination, creation/modification date, ID, list, segment, and attribute-equality filtering. Returns each contact's core fields and attributes plus a total count. Accepts at most 20 IDs in `ids`, and `list_ids`/`segment_id` are mutually exclusive filters.
Creates a new contact in the Brevo account, identified by email, ext_id, or an SMS attribute. Returns the ID of the created (or, with force_merge, surviving merged) contact. Attributes must already exist on the account or their values are silently ignored; without force_merge, an identifier conflict with an existing contact returns a 4xx error instead of merging.
Updates the contact. Only the fields you provide are changed — others keep their current value. NOTE: this overwrites the current field values — the original state is not stored after the call. Brevo's update endpoint itself returns no body, so this tool fetches the contact via get_contact before and after updating it and returns both states so you have a full record of what changed.
DESTRUCTIVE — REQUIRES EXPLICIT USER CONFIRMATION BEFORE CALLING. Permanently deletes the contact identified by email, numeric ID, or EXT_ID. This action is irreversible — the contact's data, attributes, and list membership cannot be recovered. NEVER call this tool autonomously or as part of an automated flow. You MUST stop, tell the user exactly what will be deleted and that it is permanent, and wait for their explicit written confirmation before proceeding.
Retrieves a contact's details — attributes, email/SMS/WhatsApp blacklist status, list membership, consent groups, and campaign statistics — identified by email, numeric ID, SMS, or EXT_ID. start_date and end_date scope the campaign statistics window and must be provided together, in YYYY-MM-DD format, with start_date on or before end_date and neither date in the future.
Lists all contact lists in the account. Returns each list's ID, name, folder ID, and subscriber/blacklist counts, plus the total count of lists. Supports pagination via limit/offset and defaults to descending order of creation when sort is omitted.
Creates a new, empty contact list inside the specified folder. Returns the ID of the newly created list. Add contacts to it afterward with add_contact_to_list.
Creates a new folder to organize contact lists — folders are containers for grouping related lists together. Returns the ID of the newly created folder; pass it as `folder_id` to create_contact_list to place lists inside it.
Adds existing contacts to a specific list by email address, numeric contact ID, or EXT_ID attribute — provide exactly one identifier type per call. Returns which contacts succeeded and which failed. Accepts a maximum of 150 identifiers per request; for bulk additions, use the contacts import endpoint instead.
Removes contacts from a specific list by email address, numeric contact ID, EXT_ID attribute, or by setting all_ to true to remove every contact currently on the list — provide exactly one of these options per call. Returns which contacts succeeded and which failed, or a process ID when removing all. Accepts a maximum of 150 identifiers per request when not using all_.
Lists email campaigns with optional filters on type, status, and statistics, and returns each campaign's core fields plus a total count. `start_date` and `end_date` must be provided together, only apply when `status` is omitted or set to 'sent', must not be in the future, and the range between them cannot exceed 2 years.
Creates a new email campaign and returns its ID. Exactly one of `html_content`, `html_url`, or `template_id` must be provided for the body. `subject` is required unless `ab_testing` is true, in which case `subject_a` and `subject_b` are required instead. Campaigns with embedded inline images (`inline_image_activation`) cannot be sent to more than 5000 contacts.
Sends the email campaign identified by campaign_id to all of its configured recipients immediately, by scheduling it for the current time. This is a real send to real recipients — once triggered, delivery cannot be cancelled or undone, so confirm the campaign's content and recipient list with the user before calling this tool.
Sends a real, irreversible test copy of the campaign identified by campaign_id to the given email addresses, or to the entire test list if email_to is omitted. Actual emails are delivered to those recipients — no more than 50 test emails can be sent per day.
Retrieves the email senders configured in the Brevo account, optionally filtered by dedicated IP or domain. Returns each sender's ID, name, email, active status, and any associated dedicated IPs; the `ip` filter only works for accounts with dedicated IPs.
Creates a new email sender in the Brevo account and returns its ID plus DKIM/SPF configuration status. A verification email is sent to `email`, and the sender must be verified with validate_sender_otp before it can be used in campaigns; for dedicated IP accounts the weights in `ips` must sum to 100.
Lists transactional email templates (including automation templates), optionally filtered by active status or editor type. Returns each template's ID, name, subject, sender, active status, HTML content, and timestamps. Results default to 50 per page (max 1000) and sort descending by creation date unless overridden.
Sends a transactional email immediately to one or more real recipients, either using inline HTML content or a pre-built template via `template_id`. This has a real-world side effect — the message is delivered right away, not a draft or a dry run. Either `template_id`, or `html_content` + `sender` + `subject`, must be provided, and either `to` or `message_versions` must be provided (a batch send via `message_versions` ignores `to`). Returns the sent message's ID (or IDs, for a batch send).
Retrieves a paginated list of sent transactional emails matching the given filters. Returns each email's date, recipient, subject, message ID, and unique ID (uuid). At least one of `email`, `template_id`, or `message_id` must be provided, and `start_date`/`end_date` must be given together, spanning at most one month.
Brevo MCP Server is open source. Tell the MewCP maintainers.
Brevo runs through a gateway that holds the credentials, scopes the access and records every call.
One endpoint, the same key, whichever client you use.
~/Library/Application Support/Claude/claude_desktop_config.json (Mac) · %APPDATA%\Claude\claude_desktop_config.json (Windows)
{
"mcpServers": {
"mewcp": {
"command": "npx",
"args": [
"-y",
"mcp-remote@latest",
"https://gateway.mewcp.com/personal/mcp",
"--header",
"Authorization: Bearer API_KEY"
]
}
}
}Replace API_KEY with your own key.
Already have an "mcpServers" section in your config? Just add the server entry inside it.
Managed auth, hosted MCP servers, and every Gmail tool your agent needs.
Free to start.