Mailchimp MCP
Full Mailchimp control from Claude - 53 tools for audiences, campaigns, automations and more.
Mailchimp MCP Server
The most complete Model Context Protocol (MCP) server for the Mailchimp Marketing API — 112 tools to query and manage your Mailchimp account from any MCP-compatible client, with A/B campaign support, geographic reporting, full landing-page lifecycle, CRM-style member notes, e-commerce carts and promo codes, and read-only / dry-run safety modes.
Uses the Mailchimp Marketing API via requests. Not based on the official mailchimp-marketing-python client. I hit too many issues with it so I went with raw HTTP calls instead.
Features
Read
- Campaigns - List, search, and inspect campaign details
- Reports - Open/click rates, bounces, per-link clicks, domain performance, unsubscribe details
- Email activity - Per-recipient open/click tracking, member activity history
- Audiences - Browse audiences, members, segments, tags, and growth history
- Merge fields - List custom fields for an audience
- Interest categories & groups - Browse interest categories and options
- Webhooks - List configured webhooks
- Segments - Get segment details, conditions, and member lists
- Automations - List workflows, inspect emails in a workflow, view queues
- Templates - Browse templates and extract HTML content
- Landing pages - List and inspect landing pages
- E-commerce - Stores, orders, products, customers (requires e-commerce integration)
- Campaign folders - Browse folder organization
- Batch operations - Monitor bulk operation status
Write
- Members - Add, update, unsubscribe, delete, and tag contacts
- Audiences - Batch subscribe members, update audience settings
- Campaigns - Create drafts, set HTML content, schedule, unschedule, duplicate, delete, send, send test, cancel
- Segments/Tags - Create, update, delete, add/remove members, dynamic conditions
- Merge fields - Create, update, delete custom fields
- Interest categories - Create and delete categories and interests
- Webhooks - Create and delete webhooks
- Templates - Create, update, and delete email templates
- Automations - Pause and start automation workflows
- E-commerce - Cart lifecycle, promo rules, and promo codes for discount workflows
- Batch - Run bulk API operations in a single request
Prerequisites
- Python 3.10+
- A Mailchimp API key
Installation
Using uvx (recommended)
No installation needed — run directly:
uvx mailchimp-mcp
Using pip
pip install mailchimp-mcp
Then run:
mailchimp-mcp
From source
git clone https://github.com/damientilman/mailchimp-mcp-server.git
cd mailchimp-mcp-server
python -m venv .venv
source .venv/bin/activate
pip install -e .
Configuration
| Variable | Required | Description |
|---|---|---|
MAILCHIMP_API_KEY | Yes | Your Mailchimp API key (format: <key>-<dc>, e.g. abc123-us8) |
MAILCHIMP_READ_ONLY | No | Set to true to disable all write operations (default: false) |
MAILCHIMP_DRY_RUN | No | Set to true to preview write operations without executing them (default: false) |
The datacenter (us8, us21, etc.) is automatically extracted from the key.
Safety modes
Read-only mode — When MAILCHIMP_READ_ONLY=true, all write tools (create, update, delete, schedule, etc.) are blocked and return an error. Read tools work normally. This is the recommended default for shared or exploratory setups where you only need reporting and analytics.
Dry-run mode — When MAILCHIMP_DRY_RUN=true, write tools return a preview of the action they would perform (tool name, target resource, parameters) without making any API call. Useful for testing prompts before going live.
MCP client configuration
Most MCP clients accept a JSON configuration block describing how to launch the server.
Configure yours to invoke uvx mailchimp-mcp (or mailchimp-mcp if installed via pip)
with MAILCHIMP_API_KEY exported in the environment.
Using uvx (recommended)
{
"mcpServers": {
"mailchimp": {
"command": "uvx",
"args": ["mailchimp-mcp"],
"env": {
"MAILCHIMP_API_KEY": "your-api-key-here"
}
}
}
}
Using pip install
{
"mcpServers": {
"mailchimp": {
"command": "mailchimp-mcp",
"env": {
"MAILCHIMP_API_KEY": "your-api-key-here"
}
}
}
}
Read-only mode (recommended for exploration)
{
"mcpServers": {
"mailchimp": {
"command": "uvx",
"args": ["mailchimp-mcp"],
"env": {
"MAILCHIMP_API_KEY": "your-api-key-here",
"MAILCHIMP_READ_ONLY": "true"
}
}
}
}
CLI-based clients
If your MCP client provides a CLI to register servers, the equivalent invocation is:
mcp-cli add mailchimp \
-e MAILCHIMP_API_KEY=your-api-key-here \
-- uvx mailchimp-mcp
Replace mcp-cli with your client's binary name. For read-only mode, add
-e MAILCHIMP_READ_ONLY=true to the command.
Available Tools
Account
| Tool | Description |
|---|---|
get_account_info | Get account name, email, and subscriber count |
Campaigns (read)
| Tool | Description |
|---|---|
list_campaigns | List campaigns with optional filters (status, date) |
get_campaign_details | Get full details of a specific campaign |
list_campaign_folders | List campaign folders |
Campaign Reports
| Tool | Description |
|---|---|
get_campaign_report | Get performance metrics (opens, clicks, bounces) |
get_campaign_click_details | Get per-link click data for a campaign |
get_email_activity | Per-recipient activity (opens, clicks, bounces) |
get_open_details | Who opened, when, how many times |
get_campaign_recipients | List of recipients with delivery status |
get_campaign_unsubscribes | Who unsubscribed after a campaign |
get_domain_performance | Performance by email domain (gmail, outlook, etc.) |
get_ecommerce_product_activity | Revenue per product for a campaign |
get_campaign_sub_reports | Sub-reports (A/B tests, RSS, etc.) |
get_campaign_advice | Mailchimp's automated post-send feedback on a campaign |
get_campaign_locations | Geographic open data (country, region) |
get_eepurl_activity | Social sharing stats (Twitter, Facebook, referrers) |
Campaigns (write)
| Tool | Description |
|---|---|
create_campaign | Create a new campaign draft (regular or A/B variate, with optional segment targeting) |
update_campaign | Update settings or segment targeting of a campaign |
set_campaign_content | Set the HTML content of a campaign draft |
schedule_campaign | Schedule a campaign for a specific date/time |
unschedule_campaign | Unschedule a campaign (back to draft) |
replicate_campaign | Duplicate an existing campaign |
delete_campaign | Delete an unsent campaign |
send_campaign | Send a campaign immediately |
send_test_email | Send a test email for a campaign |
cancel_send | Cancel a campaign that is currently sending |
Audiences (read)
| Tool | Description |
|---|---|
list_audiences | List all audiences with stats |
get_audience_details | Get detailed info for a specific audience |
list_audience_members | List members with optional status filter |
search_members | Search members by email or name |
get_audience_growth_history | Monthly growth data (subscribes, unsubscribes) |
Members (read)
| Tool | Description |
|---|---|
get_member_activity | Activity history of a specific contact |
get_member_tags | All tags assigned to a contact |
get_member_events | Custom events for a contact |
list_member_notes | List CRM-style internal notes attached to a contact |
Members (write)
| Tool | Description |
|---|---|
add_member | Add a new contact to an audience |
update_member | Update a contact's name or status |
unsubscribe_member | Unsubscribe a contact |
delete_member | Permanently delete a contact |
tag_member | Add or remove tags from a contact |
add_member_note | Attach a CRM-style internal note to a contact |
update_member_note | Update the text of an existing member note |
delete_member_note | Delete a member note |
Audiences (write)
| Tool | Description |
|---|---|
batch_subscribe | Batch add/update multiple members in an audience |
update_audience | Update audience settings (name, defaults, permission reminder) |
create_audience | Create a new audience with contact info and campaign defaults |
delete_audience | Permanently delete an audience and all its data |
Segments & Tags
| Tool | Description |
|---|---|
list_segments | List segments and tags for an audience |
get_segment | Get segment details including conditions |
list_segment_members | List members in a segment |
create_segment | Create a new segment or tag (static or dynamic with conditions) |
update_segment | Update a segment's name or conditions |
delete_segment | Delete a segment or tag |
add_members_to_segment | Add contacts to a segment/tag |
remove_members_from_segment | Remove contacts from a segment/tag |
Merge Fields
| Tool | Description |
|---|---|
list_merge_fields | List custom fields for an audience |
create_merge_field | Create a new custom field (text, number, dropdown, etc.) |
update_merge_field | Update a custom field |
delete_merge_field | Delete a custom field |
Interest Categories & Groups
| Tool | Description |
|---|---|
list_interest_categories | List interest categories for an audience |
create_interest_category | Create a new interest category |
list_interests | List interests within a category |
create_interest | Create a new interest option |
delete_interest_category | Delete an interest category |
delete_interest | Delete an interest option |
Webhooks
| Tool | Description |
|---|---|
list_webhooks | List webhooks for an audience |
create_webhook | Create a new webhook |
delete_webhook | Delete a webhook |
Automations
| Tool | Description |
|---|---|
list_automations | List automated email workflows |
get_automation_emails | List emails in a workflow |
get_automation_email_queue | View the send queue for an automation email |
pause_automation | Pause all emails in a workflow |
start_automation | Start/resume all emails in a workflow |
Templates
| Tool | Description |
|---|---|
list_templates | List available email templates |
get_template | Get template metadata (name, type, dates, thumbnail) |
get_template_default_content | Get template HTML content |
create_template | Create a new email template |
update_template | Update template name or HTML |
delete_template | Delete a user-created template |
Landing Pages
| Tool | Description |
|---|---|
list_landing_pages | List all landing pages |
get_landing_page | Get details of a landing page |
create_landing_page | Create a new landing page from a template |
update_landing_page | Update settings of an existing landing page |
delete_landing_page | Permanently delete a landing page |
publish_landing_page | Publish a landing page to its public URL |
unpublish_landing_page | Take a published landing page offline |
E-commerce
| Tool | Description |
|---|---|
list_ecommerce_stores | List connected e-commerce stores |
list_store_orders | List orders from a store |
list_store_products | List products from a store |
list_store_customers | List customers from a store |
E-commerce Carts
| Tool | Description |
|---|---|
list_store_carts | List carts (including abandoned) for a store |
get_store_cart | Get a single cart with full line items |
create_store_cart | Push a cart (e.g. an abandoned cart from an external system) |
update_store_cart | Update a cart's totals, currency, checkout URL, or line items |
delete_store_cart | Permanently delete a cart |
E-commerce Promo Rules & Codes
| Tool | Description |
|---|---|
list_promo_rules | List discount rules for a store |
get_promo_rule | Get a single promo rule's configuration |
create_promo_rule | Create a discount rule (fixed amount, percentage, free shipping) |
update_promo_rule | Update a rule's amount, target, dates, or enabled state |
delete_promo_rule | Permanently delete a rule and all its codes |
list_promo_codes | List redeemable codes attached to a rule |
get_promo_code | Get a single promo code with usage stats |
create_promo_code | Create a redeemable code (e.g. 'SUMMER20') under a rule |
update_promo_code | Update a code's string, redemption URL, or enabled state |
delete_promo_code | Permanently delete a promo code |
Batch Operations
| Tool | Description |
|---|---|
create_batch | Run multiple API operations in bulk |
get_batch_status | Check status of a batch operation |
list_batches | List recent batch operations |
Example Prompts
Once connected, you can ask your MCP client to perform requests like:
- "Show me all my sent campaigns from the last 3 months"
- "What was the open rate and click rate for my last newsletter?"
- "How many subscribers did I gain this year?"
- "Which links got the most clicks in campaign X?"
- "Search for subscriber [email protected]"
- "Add tag 'VIP' to all members who opened my last campaign"
- "Create a draft campaign for my main audience with subject 'March Update'"
- "Create a campaign targeting only my VIP segment"
- "Send a test email of my draft campaign to [email protected]"
- "List all merge fields for my main audience"
- "Create a dropdown merge field called 'Industry' with options Tech, Finance, Healthcare"
- "Create a dynamic segment of members where FNAME is John"
- "Batch subscribe 50 members from this CSV data"
- "Set up a webhook to notify my app when new subscribers join"
- "Unsubscribe [email protected] from my list"
- "Show me the domain performance breakdown for my last campaign"
- "Where in the world did people open my newsletter? Show me the geographic breakdown."
- "Create an A/B test campaign with two subject lines and pick the winner by opens after 24 hours"
- "What advice does Mailchimp have for improving my last campaign?"
- "Pause my welcome automation"
- "List all orders from my Shopify store this month"
Contributing
Contributions are welcome. See CONTRIBUTING.md for development setup, test instructions, and pull request guidelines.
Security
If you find a security vulnerability, please follow the responsible disclosure process described in SECURITY.md.
Changelog
See CHANGELOG.md for the full release history.
Author
Built by Damien Tilman — [email protected]
License
MIT — see LICENSE for details.
関連サーバー
StackSwap MCP
B2B SaaS GTM stack intelligence — 17 tools spanning catalog search, overlap detection, n-way vendor comparison, decision-stage buyer questions, and renewal-negotiation playbooks.
AdCritter_Agent
Allow automated workflows to control your digital advertising campaigns across multiple channels including Connected TV (CTV), Digital Roadside Billboards (digital out-of home or DooH), Internet Display & Native, and Streaming Audio, geographic & audience targeting within automated workflows.
X Algorithm MCP
Tweet scoring and optimization using X's actual algorithm weights - 22 engagement signals, 18 safety filters, diversity penalty calculator, and 11 research tools.
Apollo.io MCP
MCP server for Apollo.io, search leads, enrich contacts, manage sequences & CRM from Claude Code, Cursor, or any MCP client. 45+ tool calls covering the full Apollo.io API.
Google My Business MCP
Connect Google My Business to Claude or ChatGPT via Two Minute Reports MCP. Analyze profile views, customer actions, and top-performing locations to improve visibility and conversions.
instagram-mcp
Instagram Graph API server for Business/Creator accounts — 24 tools for posting, comments, DMs, and insights.
Hooklayer
Live TikTok creator intelligence MCP — 7 tools (analyze creators, score hooks, remix scripts, predict virality) that chain automatically via a recommended_chain that pre-fills the next 3 tool calls.
toflow.ai
Run your entire sales outreach by chatting with AI
DataDoe
Hosted Amazon Seller & Vendor MCP server. Connect Claude, ChatGPT, Cursor, Codex, Gemini, GitHub Copilot to live Amazon SP-API and Ads API data
Salestools Club
A technical registry that empowers AI agents to discover, audit, and compare 300+ sales APIs and MCP servers with verified starter prompts for immediate integration