Custom API + Brevo Integration

Custom API + Brevo

Not every platform has an MCP server. For WooCommerce, BigCommerce, Magento, proprietary CRMs, or any system with a REST API, build a connector agent that bridges your data to Brevo.

Two Approaches

Approach 1: Community MCP Server

Check if a community MCP server exists for your platform:

PlatformCommunity MCPStatus
WooCommercewoocommerce-mcp-serverCommunity maintained
BigCommerceCheck MCP server directoryVaries
MagentoCheck MCP server directoryVaries
SalesforceMultiple options availableActive community
ZendeskAvailable via Composio/ZapierActive

If a community server exists, use it the same way as official ones, add to your Claude config alongside Brevo MCP.

Approach 2: Agent with HTTP Tools

For platforms without MCP servers, build an agent that uses Claude’s built-in HTTP capabilities to call REST APIs directly, then writes to Brevo via MCP.

Building a Custom Connector Agent

Step 1: Understand the Source API

Document the key endpoints your agent needs:

# Example: WooCommerce REST API
source_api:
base_url: "https://your-store.com/wp-json/wc/v3"
auth: Basic (consumer_key:consumer_secret)
endpoints:
- GET /customers # List customers
- GET /customers/{id} # Get customer details
- GET /orders # List orders
- GET /orders/{id} # Get order details
- GET /products # List products
- GET /coupons # List coupons

Step 2: Define the Agent

---
name: woocommerce-brevo-sync
description: Sync WooCommerce customers and orders to Brevo
version: 1.0.0
temperature: 0.1
tools:
- brevo_contacts
- brevo_attributes
- brevo_lists
- brevo_email_campaign_management
triggers:
- schedule: "0 */6 * * *"
- webhook: /agents/woocommerce/sync
method: POST
---
# WooCommerce → Brevo Sync Agent
Connect WooCommerce store data to Brevo for engagement campaigns.
## Source API
- **Base URL**: https://your-store.com/wp-json/wc/v3
- **Authentication**: Basic Auth with consumer key/secret
- **Key endpoints**: /customers, /orders, /products
## Sync Strategy
### Customer Sync
1. GET /customers?modified_after={last_sync_time}
2. For each customer:
- Map WooCommerce fields to Brevo attributes
- Create or update Brevo contact
- Add to appropriate list based on order history
### Order Event Sync
1. GET /orders?after={last_sync_time}&status=completed
2. For each order:
- Track "order_completed" event in Brevo
- Update contact attributes (order_count, total_spent)
- Trigger post-purchase campaign if applicable
## Field Mapping
| WooCommerce | Brevo Attribute |
|-------------|-----------------|
| email | EMAIL |
| first_name | FIRSTNAME |
| last_name | LASTNAME |
| billing.phone | SMS |
| orders_count | ORDER_COUNT |
| total_spent | TOTAL_SPENT |
| date_created | CUSTOMER_SINCE |
| role | CUSTOMER_TYPE |
## API Call Pattern
For each sync operation, the agent should:
1. Call WooCommerce REST API to fetch data
2. Transform the response to Brevo's expected format
3. Call Brevo MCP tools to create/update contacts
4. Log sync results for monitoring
## Rules
- Respect WooCommerce API rate limits (default: 25 req/10 seconds)
- ONLY sync customers with valid email addresses
- Implement incremental sync using modified_after parameter
- Store last sync timestamp for next run

Step 3: Configure Brevo MCP

Connect only the Brevo modules your agent needs:

{
"mcpServers": {
"brevo_contacts": {
"url": "https://mcp.brevo.com/v1/brevo_contacts/mcp",
"headers": { "Authorization": "Bearer your-brevo-token" }
},
"brevo_email": {
"url": "https://mcp.brevo.com/v1/brevo_email_campaign_management/mcp",
"headers": { "Authorization": "Bearer your-brevo-token" }
},
"brevo_lists": {
"url": "https://mcp.brevo.com/v1/brevo_lists/mcp",
"headers": { "Authorization": "Bearer your-brevo-token" }
}
}
}

Step 4: Run the Agent

You: "Sync all WooCommerce customers from the last week to Brevo
and add new customers to the Welcome Series list."
Claude: I'll sync your WooCommerce customers to Brevo.
Fetching customers modified in the last 7 days from WooCommerce...
[Makes HTTP GET to your-store.com/wp-json/wc/v3/customers?modified_after=...]
Found 67 customers. Syncing to Brevo...
[Uses brevo_contacts to create/update contacts]
[Uses brevo_lists to add 23 new customers to "Welcome Series"]
Sync complete:
- 67 customers processed
- 44 existing contacts updated
- 23 new contacts created → added to Welcome Series
- 0 skipped (all had valid emails)

Template: Generic REST API Connector

Use this template for any REST API:

---
name: {platform}-brevo-connector
description: Sync {platform} data to Brevo for engagement
version: 1.0.0
temperature: 0.1
tools:
- brevo_contacts
- brevo_attributes
- brevo_lists
triggers:
- schedule: "0 */6 * * *"
---
# {Platform} → Brevo Connector
## Source API Configuration
- **Base URL**: {api_base_url}
- **Auth**: {auth_method} ({details})
- **Rate Limit**: {rate_limit}
## Data to Sync
### Contacts
- Source endpoint: {endpoint}
- Brevo mapping: {field_map}
- Sync frequency: Every 6 hours
- Incremental: Use modified_after / updated_since parameter
### Events
- Source endpoint: {endpoint}
- Brevo event name: {event_name}
- Trigger: When {condition}
## Sync Logic
1. Fetch changed records from source since last sync
2. Transform to Brevo format
3. Upsert contacts via brevo_contacts
4. Track events for campaign triggers
5. Log results and update sync cursor
## Error Handling
- Retry failed API calls 3 times with exponential backoff
- Skip individual records that fail validation
- Report errors in sync summary
- NEVER stop entire sync for single record failure

When to Build a Full MCP Server

If you find yourself repeatedly connecting the same platform, consider building a proper MCP server:

Just Use AgentBuild MCP Server
One-off or infrequent syncsDaily production sync
Prototyping the integrationShared across team/org
Simple read operationsComplex multi-step operations
< 5 API endpoints neededFull API coverage needed

To build a custom MCP server, see the MCP specification and Tajo’s Integration Builder for generating servers from OpenAPI specs.

Next Steps

AI Assistant

Hi! Ask me anything about the docs.

Start Free with Brevo