Brevo MCP Server
A comprehensive MCP server providing Claude with full access to Brevo's marketing automation platform through the official SDK, featuring tools for email operations, contact management, campaigns, SMS, conversations, webhooks, e-commerce, and account management.
README Documentation
Brevo MCP Server
š§ Complete Brevo API Integration for Claude & Smithery using Official SDK
A comprehensive MCP server that provides Claude with full access to Brevo's marketing automation platform using the official @getbrevo/brevo Node.js SDK. Features 8 organized tools covering all major Brevo functionalities.
⨠Features
- š§ Official Brevo SDK - Built with
@getbrevo/brevofor maximum compatibility - š§ Email Operations - Transactional emails, templates, tracking, events
- š± SMS & WhatsApp - Send SMS, manage campaigns, WhatsApp integration
- š„ Contact Management - Contacts, lists, attributes, bulk operations
- šÆ Campaign Management - Email and SMS campaigns, scheduling, analytics
- š¬ Conversations - Chat and conversation management
- š Webhooks - Event-driven automation and notifications
- š E-commerce - Orders, products, categories integration
- š¢ Account Management - Senders, domains, folders, account info
- š Smithery Compatible - Ready for Smithery deployment
- š”ļø Type-Safe - Full TypeScript support
š Quick Start
Option 1: Using Smithery (Recommended)
- Configure in Smithery:
brevo-mcp: apiKey: "your-brevo-api-key" # Required defaultSenderEmail: "your@domain.com" # Optional defaultSenderName: "Your Name" # Optional
Option 2: Local Installation
-
Install:
npm install npm run build -
Set Environment Variables:
export BREVO_API_KEY="your-brevo-api-key" export BREVO_DEFAULT_SENDER_EMAIL="your@domain.com" export BREVO_DEFAULT_SENDER_NAME="Your Name" -
Run:
npm start
š ļø Available Tools
1. contacts - Contact Management
Complete contact database operations with bulk capabilities.
Operations:
get- Retrieve contact by email/IDcreate- Create new contactupdate- Update contact informationdelete- Delete contactbulk_import- Import contacts in bulkexport- Export contactsadd_to_list/remove_from_list- List managementget_lists/create_list- Manage contact listsget_attributes/create_attribute/update_attribute- Custom attributes
Example:
{
"operation": "bulk_import",
"contacts": [
{
"email": "user1@example.com",
"attributes": {
"FIRSTNAME": "John",
"LASTNAME": "Doe"
}
}
]
}
2. email - Transactional Emails
Send emails, manage templates, track delivery and events.
Operations:
send- Send transactional emailsend_template- Send using templateget_events- Track email eventsget_templates- List email templatescreate_template/update_template/delete_template- Template managementget_blocked_domains- Check blocked domainsget_email_statistics- Email analytics
Example:
{
"operation": "send",
"to": [{"email": "recipient@example.com", "name": "John Doe"}],
"subject": "Welcome to our service",
"htmlContent": "<h1>Welcome!</h1><p>Thank you for joining us.</p>",
"sender": {"email": "noreply@yourcompany.com", "name": "Your Company"}
}
3. campaigns - Marketing Campaigns
Create and manage email and SMS marketing campaigns.
Operations:
get_email_campaigns/create_email_campaign/update_email_campaignsend_email_campaign/schedule_email_campaign/delete_email_campaignget_sms_campaigns/create_sms_campaign/update_sms_campaignsend_sms_campaign/schedule_sms_campaign/delete_sms_campaignget_campaign_statistics- Campaign analytics
Example:
{
"operation": "create_email_campaign",
"campaignData": {
"name": "Newsletter Campaign",
"subject": "Monthly Newsletter",
"htmlContent": "<h1>Newsletter</h1>",
"recipients": {"listIds": [1, 2]}
}
}
4. sms - SMS Operations
Send transactional SMS and manage SMS campaigns.
Operations:
send- Send single SMSsend_batch- Send to multiple recipientsget_events- Track SMS eventsget_statistics- SMS analytics
Example:
{
"operation": "send_batch",
"recipients": ["+1234567890", "+0987654321"],
"content": "Your order is ready for pickup!",
"sender": "YourBrand"
}
5. conversations - Chat Management
Handle customer conversations and chat interactions.
Operations:
get_conversations- List conversationsget_conversation- Get specific conversationget_messages- Get conversation messagessend_message- Send messageupdate_conversation- Update conversation status
6. webhooks - Event Automation
Manage webhooks for real-time event notifications.
Operations:
get_webhooks/create_webhook/update_webhook/delete_webhookget_webhook- Get specific webhook
Example:
{
"operation": "create_webhook",
"url": "https://your-app.com/brevo-webhook",
"events": ["delivered", "opened", "clicked"],
"description": "Email tracking webhook",
"type": "transactional"
}
7. account - Account Management
Manage account settings, senders, domains, and folders.
Operations:
get_account- Account informationget_senders/create_sender/update_sender/delete_senderget_domains/create_domain/validate_domainget_folders/create_folder/update_folder/delete_folder
8. ecommerce - E-commerce Integration
Manage orders, products, and categories for e-commerce tracking.
Operations:
get_orders/create_order/get_order/update_orderget_products/create_product/update_product/delete_productget_categories/create_category/update_category/delete_category
Example:
{
"operation": "create_order",
"orderData": {
"id": "order-123",
"email": "customer@example.com",
"products": [
{
"id": "product-1",
"name": "Widget",
"price": 29.99,
"quantity": 2
}
],
"total": 59.98
}
}
š Configuration
Environment Variables
| Variable | Description | Required |
|---|---|---|
BREVO_API_KEY | Your Brevo API key | ā Yes |
BREVO_DEFAULT_SENDER_EMAIL | Default sender email | ā No |
BREVO_DEFAULT_SENDER_NAME | Default sender name | ā No |
DEBUG | Enable debug logging | ā No |
Smithery Configuration
version: 1
startCommand:
type: stdio
configSchema:
type: object
required: ['apiKey']
properties:
apiKey:
type: string
description: "Brevo API key for authentication (required)"
defaultSenderEmail:
type: string
description: "Default sender email address"
defaultSenderName:
type: string
description: "Default sender name"
debug:
type: boolean
description: "Enable debug mode"
default: false
š§ Development
# Install dependencies
npm install
# Build the project
npm run build
# Run the server
npm start
# Test the server
npm test
# Run with Smithery
npm run smithery
š Common Use Cases
Bulk Contact Import
{
"operation": "bulk_import",
"contacts": [
{
"email": "user1@example.com",
"attributes": {
"FIRSTNAME": "John",
"LASTNAME": "Doe",
"COMPANY": "Acme Corp"
}
}
]
}
Email Campaign with Tracking
{
"operation": "create_email_campaign",
"campaignData": {
"name": "Product Launch",
"subject": "Introducing Our New Product",
"htmlContent": "<h1>New Product Launch</h1>",
"recipients": {"listIds": [1]},
"scheduler": {
"sendAt": "2024-01-01T10:00:00Z"
}
}
}
E-commerce Order Tracking
{
"operation": "create_order",
"orderData": {
"id": "order-456",
"email": "customer@example.com",
"products": [
{"id": "prod-1", "name": "T-Shirt", "price": 25.00, "quantity": 1}
],
"total": 25.00,
"status": "pending"
}
}
š Security
- API keys are securely handled through environment variables
- All communications use HTTPS through official Brevo SDK
- Input validation on all tool parameters
- Error handling prevents information leakage
š License
MIT License
š Support
- Issues: Report on GitHub
- Brevo API Docs: https://developers.brevo.com/
- Official SDK: https://github.com/getbrevo/brevo-node
Built with ā¤ļø using the official Brevo Node.js SDK for maximum reliability and features