Mailchimp Automation via Rube MCP
Automate Mailchimp email marketing workflows including campaign creation and sending, audience/list management, subscriber operations, segmentation, and performance analytics through Composio's Mailchimp toolkit.
Prerequisites
- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)
- Active Mailchimp connection via with toolkit
- Always call first to get current tool schemas
Setup
Get Rube MCP: Add
as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.
- Verify Rube MCP is available by confirming responds
- Call with toolkit
- If connection is not ACTIVE, follow the returned auth link to complete Mailchimp OAuth
- Confirm connection status shows ACTIVE before running any workflows
Core Workflows
1. Create and Send Email Campaigns
When to use: User wants to create, configure, test, and send an email campaign.
Tool sequence:
- - List available audiences and get list_id [Prerequisite]
- - Create a new campaign with type, audience, subject, from name [Required]
MAILCHIMP_SET_CAMPAIGN_CONTENT
- Set HTML content for the campaign [Required]
MAILCHIMP_SEND_TEST_EMAIL
- Send preview to reviewers before live send [Optional]
- - Send the campaign immediately [Required]
MAILCHIMP_SCHEDULE_CAMPAIGN
- Schedule for future delivery instead of immediate send [Optional]
Key parameters for MAILCHIMP_ADD_CAMPAIGN:
- : "regular", "plaintext", "rss", or "variate" (required)
- : Audience/list ID for recipients
- : Email subject line
- : Sender display name
- : Reply-to email address (required for sending)
- : Internal campaign title
- : Preview text shown in inbox
Key parameters for MAILCHIMP_SET_CAMPAIGN_CONTENT:
- : Campaign ID from creation step (required)
- : Raw HTML content for the email
- : Plain-text version (auto-generated if omitted)
- : Use a pre-built template instead of raw HTML
Pitfalls:
- is irreversible; always send a test email first and get explicit user approval
- Campaign must be in "save" (draft) status with valid audience, subject, from name, verified email, and content before sending
MAILCHIMP_SCHEDULE_CAMPAIGN
requires a valid future datetime; past timestamps fail
- Templates and HTML content must include compliant footer/unsubscribe merge tags
- Mailchimp uses double-underscore notation for nested params (e.g., )
2. Manage Audiences and Subscribers
When to use: User wants to view audiences, list subscribers, or check subscriber details.
Tool sequence:
- - List all audiences with member counts [Required]
- - Get details for a specific audience [Optional]
MAILCHIMP_LIST_MEMBERS_INFO
- List members with status filter and pagination [Required]
- - Search by email or name across lists [Optional]
MAILCHIMP_GET_MEMBER_INFO
- Get detailed profile for a specific subscriber [Optional]
- - List segments within an audience [Optional]
Key parameters for MAILCHIMP_LIST_MEMBERS_INFO:
- : Audience ID (required)
- : "subscribed", "unsubscribed", "cleaned", "pending", "transactional", "archived"
- : Records per page (default 10, max 1000)
- : Pagination offset (default 0)
- : "timestamp_opt", "timestamp_signup", or "last_changed"
- : Comma-separated list to limit response size
Pitfalls:
- and are 0-1 fractions, NOT 0-100 percentages
- Always use to filter active subscribers; omitting returns all statuses
- Must paginate using and until collected members match
- Large list responses may be truncated; data is under
3. Add and Update Subscribers
When to use: User wants to add new subscribers, update existing ones, or bulk-manage list membership.
Tool sequence:
- - Validate target audience exists [Prerequisite]
- - Check if contact already exists [Optional]
MAILCHIMP_ADD_OR_UPDATE_LIST_MEMBER
- Upsert subscriber (create or update) [Required]
MAILCHIMP_ADD_MEMBER_TO_LIST
- Add new subscriber (create only) [Optional]
MAILCHIMP_BATCH_ADD_OR_REMOVE_MEMBERS
- Bulk manage segment membership [Optional]
Key parameters for MAILCHIMP_ADD_OR_UPDATE_LIST_MEMBER:
- : Audience ID (required)
- : MD5 hash of lowercase email (required)
- : Subscriber email (required)
- : Status for new subscribers: "subscribed", "pending", etc. (required)
- : Status for existing subscribers
- : Object with merge tag keys (e.g.,
{"FNAME": "John", "LNAME": "Doe"}
)
- : Array of tag strings
Key parameters for MAILCHIMP_ADD_MEMBER_TO_LIST:
- : Audience ID (required)
- : Subscriber email (required)
- : "subscribed", "pending", "unsubscribed", "cleaned", "transactional" (required)
Pitfalls:
- must be MD5 of the lowercase email; incorrect casing causes 404s or duplicates
- Use
MAILCHIMP_ADD_OR_UPDATE_LIST_MEMBER
(upsert) instead of MAILCHIMP_ADD_MEMBER_TO_LIST
to avoid duplicate errors
- determines status only for new contacts; existing contacts use
- Use
skip_merge_validation: true
to bypass required merge field validation
MAILCHIMP_BATCH_ADD_OR_REMOVE_MEMBERS
manages static segment membership, not list membership
4. View Campaign Reports and Analytics
When to use: User wants to review campaign performance, open rates, click rates, or subscriber engagement.
Tool sequence:
- - List sent campaigns with report summaries [Required]
MAILCHIMP_SEARCH_CAMPAIGNS
- Find campaigns by name, subject, or content [Optional]
MAILCHIMP_GET_CAMPAIGN_REPORT
- Get detailed performance report for a campaign [Required]
MAILCHIMP_LIST_CAMPAIGN_REPORTS
- Bulk fetch reports across multiple campaigns [Optional]
MAILCHIMP_LIST_CAMPAIGN_DETAILS
- Get link-level click statistics [Optional]
MAILCHIMP_GET_CAMPAIGN_LINK_DETAILS
- Drill into specific link click data [Optional]
MAILCHIMP_LIST_CLICKED_LINK_SUBSCRIBERS
- See who clicked a specific link [Optional]
MAILCHIMP_GET_SUBSCRIBER_EMAIL_ACTIVITY
- Get per-subscriber campaign activity [Optional]
MAILCHIMP_GET_CAMPAIGN_CONTENT
- Retrieve campaign HTML content [Optional]
Key parameters for MAILCHIMP_LIST_CAMPAIGNS:
- : "save", "paused", "schedule", "sending", "sent"
- / : Pagination (default 10, max 1000)
- / : ISO 8601 date range filter
- : "create_time" or "send_time"
- : Limit response fields for performance
Key parameters for MAILCHIMP_GET_CAMPAIGN_REPORT:
- : Campaign ID (required)
- Returns: opens, clicks, bounces, unsubscribes, timeseries, industry_stats
Pitfalls:
- only returns high-level ; use
MAILCHIMP_GET_CAMPAIGN_REPORT
for detailed metrics
- Draft/unsent campaigns lack meaningful report data
- When using parameter on LIST_CAMPAIGNS, explicitly request and subfields
- Pagination defaults are low (10 records); iterate with and until is covered
- is ISO 8601 with timezone; parse carefully
Common Patterns
ID Resolution
Always resolve names to IDs before operations:
- Audience name -> list_id: and match by name
- Subscriber email -> subscriber_hash: Compute MD5 of lowercase email in code
- Campaign name -> campaign_id:
MAILCHIMP_SEARCH_CAMPAIGNS
with query
- Segment name -> segment_id: with list_id
Pagination
Mailchimp uses offset-based pagination:
- Use (page size, max 1000) and (skip N records)
- Continue until collected records match from the response
- Default is 10; always set explicitly for bulk operations
- Search endpoints max at 10 pages (300 results for 30/page)
Subscriber Hash
Many endpoints require
(MD5 of lowercase email):
import hashlib
subscriber_hash = hashlib.md5(email.lower().encode()).hexdigest()
Known Pitfalls
ID Formats
- (audience ID) is a short alphanumeric string (e.g., "abc123def4")
- is an alphanumeric string
- is an MD5 hex string (32 characters)
- Segment IDs are integers
Rate Limits
- Mailchimp enforces API rate limits; use batching for bulk subscriber operations
- High-volume use of GET_MEMBER_INFO and ADD_OR_UPDATE_LIST_MEMBER can trigger throttling
- Use
MAILCHIMP_BATCH_ADD_OR_REMOVE_MEMBERS
for bulk segment operations
Parameter Quirks
- Nested parameters use double-underscore notation: ,
- and are 0-1 fractions, not percentages
- only applies to new contacts in upsert operations
- must be MD5 of lowercase email; wrong casing creates phantom records
- Campaign is required for creation; most common is "regular"
- returns HTTP 204 on success (no body)
Content and Compliance
- Campaign HTML must include unsubscribe link and physical address (merge tags)
- Content must be set via
MAILCHIMP_SET_CAMPAIGN_CONTENT
before sending
- Test emails require campaign to have content already set
Quick Reference
| Task | Tool Slug | Key Params |
|---|
| List audiences | | , |
| Get audience details | | |
| Create campaign | | , , |
| Set campaign content | MAILCHIMP_SET_CAMPAIGN_CONTENT
| , |
| Send test email | MAILCHIMP_SEND_TEST_EMAIL
| , |
| Send campaign | | |
| Schedule campaign | MAILCHIMP_SCHEDULE_CAMPAIGN
| , |
| Get campaign info | MAILCHIMP_GET_CAMPAIGN_INFO
| |
| Search campaigns | MAILCHIMP_SEARCH_CAMPAIGNS
| |
| List campaigns | | , , |
| Replicate campaign | MAILCHIMP_REPLICATE_CAMPAIGN
| |
| List subscribers | MAILCHIMP_LIST_MEMBERS_INFO
| , , , |
| Search members | | , |
| Get member info | MAILCHIMP_GET_MEMBER_INFO
| , |
| Add subscriber | MAILCHIMP_ADD_MEMBER_TO_LIST
| , , |
| Upsert subscriber | MAILCHIMP_ADD_OR_UPDATE_LIST_MEMBER
| , , , |
| Batch members | MAILCHIMP_BATCH_ADD_OR_REMOVE_MEMBERS
| , |
| List segments | | |
| Campaign report | MAILCHIMP_GET_CAMPAIGN_REPORT
| |
| All reports | MAILCHIMP_LIST_CAMPAIGN_REPORTS
| , |
| Link click details | MAILCHIMP_LIST_CAMPAIGN_DETAILS
| , |
| Subscriber activity | MAILCHIMP_GET_SUBSCRIBER_EMAIL_ACTIVITY
| , |
| Member recent activity | MAILCHIMP_VIEW_RECENT_ACTIVITY
| , |
| Campaign content | MAILCHIMP_GET_CAMPAIGN_CONTENT
| |