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

Subscribe to updates

developer-docs

Drop your email or phone number — we'll send you what matters next.

auto-detect
AI Assistant

Hi! Ask me anything about the docs.