mcp-mailchimp
Production-grade MCP server for the Mailchimp Marketing API. 71 tools covering campaigns, audiences, members, tags, segments, templates, reports, automations, webhooks, merge fields, interest groups, landing pages, batch operations, e-commerce, A/B testing, member notes, file manager, and audience analytics.
Built for Claude Desktop, Claude Code, Cursor, and any MCP-compatible client.
Quick Start
1. Install
pip install mcp-mailchimp
Or from source:
git clone https://github.com/AlexlaGuardia/mcp-mailchimp.git
cd mcp-mailchimp
pip install .
2. Get Your API Key
- Log in to Mailchimp
- Go to Account & Billing > Extras > API Keys
- Click Create A Key
- Copy the key (format:
xxxxxxxxxx-usXX)
3. Configure Your Client
Claude Desktop (claude_desktop_config.json):
{
"mcpServers": {
"mailchimp": {
"command": "mcp-mailchimp",
"env": {
"MAILCHIMP_API_KEY": "your-api-key-here"
}
}
}
}
Claude Code:
claude mcp add mailchimp -- env MAILCHIMP_API_KEY=your-key mcp-mailchimp
Cursor (.cursor/mcp.json):
{
"mcpServers": {
"mailchimp": {
"command": "mcp-mailchimp",
"env": {
"MAILCHIMP_API_KEY": "your-api-key-here"
}
}
}
}
Or run directly:
MAILCHIMP_API_KEY=your-key mcp-mailchimp
Tools (71)
Account (1)
| Tool | Description |
|---|---|
ping |
Validate API key and get account info |
Campaigns (11)
| Tool | Description |
|---|---|
list_campaigns |
List campaigns with status/audience filters |
get_campaign |
Get campaign details (settings, tracking, recipients) |
create_campaign |
Create a new email campaign |
update_campaign |
Update campaign settings (subject, from_name, etc.) |
send_campaign |
Send a campaign immediately |
schedule_campaign |
Schedule a campaign for a specific time |
unschedule_campaign |
Unschedule a scheduled campaign |
cancel_campaign |
Cancel a campaign currently sending |
delete_campaign |
Permanently delete a draft campaign |
replicate_campaign |
Copy an existing campaign |
send_test_email |
Send test email to specified addresses |
Campaign Content (2)
| Tool | Description |
|---|---|
get_campaign_content |
Get campaign HTML and plain-text content |
set_campaign_content |
Set content via HTML or template |
Reports (5)
| Tool | Description |
|---|---|
get_campaign_report |
Performance report (opens, clicks, bounces, unsubscribes) |
get_click_report |
Click details -- which URLs were clicked and how often |
get_open_report |
Open details -- which subscribers opened and when |
get_unsubscribe_report |
Unsubscribe details -- who left and why |
get_sent_to_report |
Delivery details -- recipient status (sent, bounced) |
Audiences (4)
| Tool | Description |
|---|---|
list_audiences |
List all audiences with subscriber counts |
get_audience |
Get audience details and stats |
create_audience |
Create a new audience/list |
update_audience |
Update audience settings |
Audience Analytics (3)
| Tool | Description |
|---|---|
get_audience_growth |
Monthly growth history -- subscribes, unsubscribes, net change |
get_audience_locations |
Subscriber location breakdown by country/region |
get_email_client_stats |
Email domain performance -- Gmail, Outlook, Apple Mail breakdown |
Members (8)
| Tool | Description |
|---|---|
list_members |
List/filter audience members by status |
get_member |
Get subscriber details by email |
add_or_update_member |
Add new subscriber or update existing (upsert) |
archive_member |
Archive (soft-delete) a subscriber |
delete_member_permanent |
Permanently delete a subscriber (irreversible) |
batch_subscribe_members |
Batch subscribe up to 500 members at once |
search_members |
Search members across all audiences |
get_member_activity |
Recent subscriber activity (opens, clicks, etc.) |
Member Notes (2)
| Tool | Description |
|---|---|
list_member_notes |
List CRM-style notes on a subscriber |
add_member_note |
Add a note to a subscriber |
Tags (2)
| Tool | Description |
|---|---|
list_tags |
List all tags for an audience |
manage_member_tags |
Add or remove tags on a subscriber |
Segments (5)
| Tool | Description |
|---|---|
list_segments |
List saved segments for an audience |
get_segment_members |
List members in a segment |
create_segment |
Create a static segment from email addresses |
update_segment |
Update segment name or add/remove members |
delete_segment |
Delete a segment |
Merge Fields (2)
| Tool | Description |
|---|---|
list_merge_fields |
List custom fields (FNAME, LNAME, custom) |
create_merge_field |
Create a custom merge field (text, number, date, etc.) |
Interest Categories & Groups (2)
| Tool | Description |
|---|---|
list_interest_categories |
List interest groups (checkboxes, dropdowns, radios) |
list_interests |
List individual options within a category |
Templates (4)
| Tool | Description |
|---|---|
list_templates |
List available email templates |
get_template |
Get template details and HTML content |
create_template |
Create a new template from HTML |
delete_template |
Delete a custom template |
Automations (5)
| Tool | Description |
|---|---|
list_automations |
List classic automations |
get_automation |
Get automation details and trigger info |
list_automation_emails |
List all emails in an automation workflow |
pause_automation |
Pause all emails in a workflow |
start_automation |
Start all emails in a workflow |
Webhooks (3)
| Tool | Description |
|---|---|
list_webhooks |
List webhooks for an audience |
create_webhook |
Create a webhook for audience events |
delete_webhook |
Delete a webhook |
E-Commerce (6)
| Tool | Description |
|---|---|
list_ecommerce_stores |
List connected stores (Shopify, WooCommerce, etc.) |
list_store_products |
List products in a connected store |
list_store_orders |
List orders -- filter by campaign for revenue attribution |
get_ecommerce_customer |
Get customer details with order count and total spent |
list_store_carts |
List abandoned carts for recovery campaigns |
list_store_promo_codes |
List promo codes for a promo rule |
A/B Testing (1)
| Tool | Description |
|---|---|
get_ab_test_results |
Get variate campaign results -- which combination won |
Landing Pages (2)
| Tool | Description |
|---|---|
list_landing_pages |
List landing pages with visit/conversion stats |
get_landing_page |
Get landing page details and tracking data |
File Manager (2)
| Tool | Description |
|---|---|
list_files |
List files in the Mailchimp file manager |
upload_file |
Upload a file (base64-encoded) |
Batch Operations (1)
| Tool | Description |
|---|---|
create_batch_operation |
Submit up to 500 API operations in a single batch |
Examples
"What campaigns have I sent recently?"
Uses
list_campaignswithstatus=sentto show recent campaigns with open/click stats.
"How has my audience grown this quarter?"
Uses
get_audience_growthto show monthly subscribe/unsubscribe trends.
"Which campaign drove the most revenue?"
Uses
list_store_orderswithcampaign_idto see revenue attribution per campaign.
"Show me abandoned carts from my Shopify store"
Uses
list_store_cartsto find recovery opportunities.
"Add a note to john@example.com that he called about pricing"
Uses
add_member_notefor CRM-style contact management.
"What A/B test subject line won?"
Uses
get_ab_test_resultsto see which variant performed best.
"Where are my subscribers located?"
Uses
get_audience_locationsfor geographic breakdown.
Requirements
- Python 3.10+
- Mailchimp account with API key
- MCP-compatible client (Claude Desktop, Claude Code, Cursor, etc.)
Development
git clone https://github.com/AlexlaGuardia/mcp-mailchimp.git
cd mcp-mailchimp
pip install -e ".[dev]"
pytest
License
MIT
Metadata
Release files for mcp-mailchimp 0.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| mcp_mailchimp-0.3.0.tar.gz | 42.2 kB | Without provenance | Details for mcp_mailchimp-0.3.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| mcp_mailchimp-0.3.0-py3-none-any.whl | Python 3 | none | any | Details for mcp_mailchimp-0.3.0-py3-none-any.whl |
Total release size: 60.4 kB
Release files / mcp_mailchimp-0.3.0.tar.gz
| Download URL | mcp_mailchimp-0.3.0.tar.gz |
|---|---|
| Size | 42.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f770fe5c3597fb437049d0fb3d15c9921419ce60fc15a162d0a835fd7128c6a5
|
|
BLAKE2b-256 checksum How to use checksums |
e5641d20afac35fa1a4be830a295143b23ae6b2d87f9119d60ed31914aee8b45
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|
Release files / mcp_mailchimp-0.3.0-py3-none-any.whl
| Download URL | mcp_mailchimp-0.3.0-py3-none-any.whl |
|---|---|
| Size | 18.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
63a27dd61524aa51467b2a60603073836cc309fc25daddbb8ed210544ead0930
|
|
BLAKE2b-256 checksum How to use checksums |
70571b97cecd0471980afaf602de9959a405a09d48985a9556be519e7ee80efa
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|
Security for mcp-mailchimp 0.3.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.