Mailchimp MCP
The Mailchimp MCP server provides a Model Context Protocol interface to Mailchimp's Marketing API with 78 tools for querying and managing your Mailchimp account, covering both read and write operations.
Account & Audiences
Get account info (name, email, subscriber count, industry benchmarks)
List audiences, get details, view growth history, update settings
Batch subscribe/update up to 500 members at once
Campaigns
List, search, inspect campaign details and folders
Create, update, set HTML content, schedule/unschedule, send, send test emails, cancel, duplicate, or delete campaigns
Campaign Reports & Analytics
Aggregate performance metrics (opens, clicks, bounces, industry benchmarks)
Per-link click data, per-recipient email activity, open details, unsubscribes
Domain performance, e-commerce product revenue, and sub-reports (A/B tests, RSS)
Members (Contacts)
List, search, add, update, unsubscribe, permanently delete, and tag/untag members
View individual member activity history, tags, and custom events
Segments & Tags
List, create, update, and delete segments (static or dynamic filter-based)
Add/remove members from static segments
Merge Fields
List, create, update, and delete custom audience data fields
Interest Categories & Groups
List, create, and delete interest categories and individual interest options
Webhooks
List, create, and delete webhooks for real-time event notifications
Automations
List workflows, inspect emails and send queues, pause or start/resume automations
Templates & Landing Pages
Browse email templates; list and inspect landing pages
E-commerce
List connected stores (Shopify, WooCommerce, etc.) and browse orders, products, and customers
Batch Operations
Run bulk API operations asynchronously, monitor status and progress
Safety Modes
Read-only mode to block all write operations
Dry-run mode to preview write operations without executing them
Provides comprehensive management of Mailchimp accounts, enabling users to create and schedule campaigns, manage audiences and segments, track performance reports, and control automation workflows.
Supports performance tracking and reporting for RSS-driven email campaigns.
Allows for the retrieval and management of e-commerce data from connected stores, such as Shopify, including orders, products, and customer information.
Mailchimp MCP Server
The most complete Model Context Protocol (MCP) server for the Mailchimp Marketing API: 227 tools to query and manage your Mailchimp account from any MCP-compatible client. It covers the full campaign, audience, member, segment, automation and reporting surface, complete e-commerce (read and write), landing pages, File Manager, surveys, signup forms and verified domains, plus multi-account support and runtime-security guardrails (read-only, dry-run and audit modes, with per-tool risk metadata).
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.
Quick start
uvx mailchimp-mcp # no install required; just needs MAILCHIMP_API_KEYAdd it to your MCP client (Claude Desktop, Cursor, Cline, …):
{
"mcpServers": {
"mailchimp": {
"command": "uvx",
"args": ["mailchimp-mcp"],
"env": {
"MAILCHIMP_API_KEY": "your-key-us8",
"MAILCHIMP_READ_ONLY": "true"
}
}
}
}Tip: start with MAILCHIMP_READ_ONLY=true to explore safely, then flip it off when you are ready to write. See Configuration for all options.
Related MCP server: Mailchimp MCP Server
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
File Manager - Browse stored images and files, and folders
Surveys - List and inspect an audience's surveys
Signup forms - Inspect an audience's signup forms
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
File Manager - Upload (base64) and delete images and files
Surveys - Publish and unpublish audience surveys
Signup forms - Customize header, contents, and styles
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
Runtime security
Risk metadata - Per-tool read / write / destructive classification via MCP annotations and
describe_toolsAudit log - Optional structured JSON audit events per dispatch (
MAILCHIMP_AUDIT_LOG)Argument validation - Pagination caps and required-ID checks before every request
Prerequisites
Python 3.10+
Installation
Using uvx (recommended)
No installation needed — run directly:
uvx mailchimp-mcpUsing pip
pip install mailchimp-mcpThen run:
mailchimp-mcpFrom 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 |
| Yes | Your Mailchimp API key (format: |
| No | Set to |
| No | Set to |
| No | API key for an additional named account (e.g. |
| No | Read-only mode for a specific named account (default: |
| No | Dry-run mode for a specific named account (default: |
| No | Set to |
The datacenter (us8, us21, etc.) is automatically extracted from each 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, and its risk tier) without making any API call. Useful for testing prompts before going live.
Runtime security
The server is designed for defense-in-depth alongside an external MCP gateway: it owns the semantics (which tools are reads, reversible writes, or irreversible) and exposes them as machine-readable signals a gateway can enforce on, rather than making the gateway guess which calls are dangerous.
Risk metadata — Every tool is classified as read, write, or destructive (irreversible data loss or an irreversible send). This surfaces two ways:
MCP tool annotations —
readOnlyHint,destructiveHint, andidempotentHinttravel through the standardtools/list, so any compliant client or gateway reads them directly.describe_tools— a read tool returning{name, risk, read_only, destructive, idempotent}for every tool plus per-tier counts, for gateways that prefer a tool call.
Structured audit log — With MAILCHIMP_AUDIT_LOG=true, each dispatch emits one JSON event to stderr with the tool, its risk tier, the destructive flag, the target account, the outcome (executed / blocked_read_only / dry_run), and the inspected arguments. Bulky or sensitive values (e.g. base64 file_data) are redacted and response bodies are never logged, so the stream is a safe audit sink to tail centrally.
Argument-contract validation — All writes funnel through a single _guard_write chokepoint, and every request is validated before dispatch (pagination count capped to 1–1000, missing path IDs rejected), so malformed calls fail fast and consistently instead of hitting the API.
Multi-account
By default the server uses the single MAILCHIMP_API_KEY, exposed as the default account. To manage several Mailchimp accounts from one server, add MAILCHIMP_API_KEY_<NAME> variables — the suffix becomes the lowercased account name (e.g. MAILCHIMP_API_KEY_MARKETING → marketing).
Every tool then accepts an optional account argument, e.g. list_audiences(account="marketing"). Selection is per call and stateless — there is no "current account" to switch, so a write always names its target. Omitting account uses default. Call list_accounts to see the configured names and their safety-flag state, and each account can carry its own MAILCHIMP_READ_ONLY_<NAME> / MAILCHIMP_DRY_RUN_<NAME> flags (so a write-protected account and a writable one can live side by side). An unknown account returns an error listing the configured names.
Single-key setups are unaffected: with only MAILCHIMP_API_KEY set, nothing changes.
{
"mcpServers": {
"mailchimp": {
"command": "uvx",
"args": ["mailchimp-mcp"],
"env": {
"MAILCHIMP_API_KEY": "your-default-key-us8",
"MAILCHIMP_API_KEY_MARKETING": "another-key-us5",
"MAILCHIMP_READ_ONLY_MARKETING": "true"
}
}
}
}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.
{
"mcpServers": {
"mailchimp": {
"command": "uvx",
"args": ["mailchimp-mcp"],
"env": {
"MAILCHIMP_API_KEY": "your-api-key-here"
}
}
}
}{
"mcpServers": {
"mailchimp": {
"command": "mailchimp-mcp",
"env": {
"MAILCHIMP_API_KEY": "your-api-key-here"
}
}
}
}{
"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-mcpReplace 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 name, email, and subscriber count |
| List configured accounts and their read-only / dry-run state (for multi-account setups) |
| List every tool with its risk tier (read / write / destructive) for policy enforcement |
Campaigns (read)
Tool | Description |
| List campaigns with optional filters (status, date) |
| Get full details of a specific campaign |
| List campaign folders |
Campaign Reports
Tool | Description |
| Get performance metrics (opens, clicks, bounces) |
| Get per-link click data for a campaign |
| Per-recipient activity (opens, clicks, bounces) |
| Who opened, when, how many times |
| List of recipients with delivery status |
| Who unsubscribed after a campaign |
| Performance by email domain (gmail, outlook, etc.) |
| Revenue per product for a campaign |
| Sub-reports (A/B tests, RSS, etc.) |
| Mailchimp's automated post-send feedback on a campaign |
| Geographic open data (country, region) |
| Social sharing stats (Twitter, Facebook, referrers) |
Campaigns (write)
Tool | Description |
| Create a new campaign draft (regular or A/B |
| Update settings or segment targeting of a campaign |
| Set the HTML content of a campaign draft |
| Schedule a campaign for a specific date/time |
| Unschedule a campaign (back to draft) |
| Duplicate an existing campaign |
| Delete an unsent campaign |
| Send a campaign immediately |
| Send a test email for a campaign |
| Cancel a campaign that is currently sending |
Audiences (read)
Tool | Description |
| List all audiences with stats |
| Get detailed info for a specific audience |
| List members with optional status filter |
| Search members by email or name |
| Monthly growth data (subscribes, unsubscribes) |
Members (read)
Tool | Description |
| Activity history of a specific contact |
| All tags assigned to a contact |
| Custom events for a contact |
| List CRM-style internal notes attached to a contact |
Members (write)
Tool | Description |
| Add a new contact to an audience |
| Update a contact's name or status |
| Unsubscribe a contact |
| Permanently delete a contact |
| Add or remove tags from a contact |
| Attach a CRM-style internal note to a contact |
| Update the text of an existing member note |
| Delete a member note |
Audiences (write)
Tool | Description |
| Batch add/update multiple members in an audience |
| Update audience settings (name, defaults, permission reminder) |
| Create a new audience with contact info and campaign defaults |
| Permanently delete an audience and all its data |
Segments & Tags
Tool | Description |
| List segments and tags for an audience |
| Get segment details including conditions |
| List members in a segment |
| Create a new segment or tag (static or dynamic with conditions) |
| Update a segment's name or conditions |
| Delete a segment or tag |
| Add contacts to a segment/tag |
| Remove contacts from a segment/tag |
Merge Fields
Tool | Description |
| List custom fields for an audience |
| Create a new custom field (text, number, dropdown, etc.) |
| Update a custom field |
| Delete a custom field |
Interest Categories & Groups
Tool | Description |
| List interest categories for an audience |
| Create a new interest category |
| List interests within a category |
| Create a new interest option |
| Delete an interest category |
| Delete an interest option |
Webhooks
Tool | Description |
| List webhooks for an audience |
| Create a new webhook |
| Delete a webhook |
Automations & Customer Journeys
Tool | Description |
| List Classic Automation workflows (Customer Journeys are not exposed by Mailchimp's API) |
| List emails in a Classic workflow |
| View the send queue for an automation email |
| Pause all emails in a Classic workflow |
| Start/resume all emails in a Classic workflow |
| Enroll a contact into a Customer Journey step (the only journey write Mailchimp exposes) |
| List campaigns emitted by either Classic Automations or Customer Journeys |
| Filter a member's activity feed to automation/journey-related events |
| Combined overview: Classic workflows by status + recent automation send volume |
Mailchimp does not expose a public read API for Customer Journeys (only the trigger endpoint above). The
search_automation_campaigns,get_member_journey_eventsandget_automation_summarytools provide the recommended workarounds — they surface every campaign emitted by automations or journeys, even though the journey graph itself remains private.
Templates
Tool | Description |
| List available email templates |
| Get template metadata (name, type, dates, thumbnail) |
| Get template HTML content |
| Create a new email template |
| Update template name or HTML |
| Delete a user-created template |
Landing Pages
Tool | Description |
| List all landing pages |
| Get details of a landing page |
| Create a new landing page from a template |
| Update settings of an existing landing page |
| Permanently delete a landing page |
| Publish a landing page to its public URL |
| Take a published landing page offline |
File Manager
Tool | Description |
| List images and files stored in the File Manager |
| Get a single file's metadata and hosted URL |
| Upload a new image or file (base64-encoded) |
| Permanently delete a file |
| List File Manager folders |
Surveys
Tool | Description |
| List an audience's surveys with status and public URL |
| Get a single survey's full details |
| Publish a survey to its public URL |
| Take a published survey offline |
Signup Forms
Tool | Description |
| Get the signup forms configured for an audience |
| Customize a signup form's header, contents, and styles |
E-commerce
Tool | Description |
| List connected e-commerce stores |
| List orders from a store |
| List products from a store |
| List customers from a store |
E-commerce Carts
Tool | Description |
| List carts (including abandoned) for a store |
| Get a single cart with full line items |
| Push a cart (e.g. an abandoned cart from an external system) |
| Update a cart's totals, currency, checkout URL, or line items |
| Permanently delete a cart |
E-commerce Promo Rules & Codes
Tool | Description |
| List discount rules for a store |
| Get a single promo rule's configuration |
| Create a discount rule (fixed amount, percentage, free shipping) |
| Update a rule's amount, target, dates, or enabled state |
| Permanently delete a rule and all its codes |
| List redeemable codes attached to a rule |
| Get a single promo code with usage stats |
| Create a redeemable code (e.g. 'SUMMER20') under a rule |
| Update a code's string, redemption URL, or enabled state |
| Permanently delete a promo code |
Batch Operations
Tool | Description |
| Run multiple API operations in bulk |
| Check status of a batch operation |
| List recent batch operations |
| List batch-completion webhooks |
| Get a single batch webhook |
| Create a batch-completion webhook |
| Update a batch webhook's URL |
| Delete a batch webhook |
Verified Domains
Tool | Description |
| List sending domains and their verification state |
| Get a single sending domain's record |
| Start verification for a sending domain |
| Complete verification with the emailed code |
| Remove a verified sending domain |
Connected Sites & Account
Tool | Description |
| List connected sites for tracking and pop-ups |
| Get a single connected site with its script |
| Connect a website and generate its script |
| Remove a connected site |
| Verify the tracking script is installed |
| List OAuth-authorized applications |
| Get a single authorized application |
| Read the account activity feed |
| List account data export jobs |
| Get an export job's status and download URL |
| Start an account data export |
Folders
Tool | Description |
| Create a campaign folder |
| Get a single campaign folder |
| Rename a campaign folder |
| Delete a campaign folder |
| List template folders |
| Get a single template folder |
| Create a template folder |
| Rename a template folder |
| Delete a template folder |
Campaign Extras (checklist, collaboration, RSS)
Tool | Description |
| Pre-send readiness checklist |
| List team collaboration comments |
| Get a single comment |
| Add a collaboration comment |
| Edit a comment |
| Delete a comment |
| Pause an RSS-driven campaign |
| Resume an RSS-driven campaign |
Audience Insights & Deliverability
Tool | Description |
| Recent daily activity for an audience |
| Top countries of an audience |
| Top email clients used by an audience |
| Spam complaints for an audience |
| A single audience abuse report |
Members (compliance & advanced)
Tool | Description |
| Add-or-update a member idempotently (PUT) |
| GDPR permanent erasure of a member |
| A member's recent tracked goal events |
| Record a custom event on a member |
Automation Emails (single-email control)
Tool | Description |
| Get one email in a classic automation |
| Pause a single automation email |
| Start a single automation email |
| Enqueue a subscriber for an automation email |
| Get a subscriber's queue status |
| List subscribers removed from a workflow |
| Remove a subscriber from a workflow |
| Get a single removed subscriber |
Reporting (extras)
Tool | Description |
| Per-recipient delivery status for a campaign |
| Spam complaints for a campaign |
| A single campaign abuse report |
| Reports across all landing pages |
| Report for a single landing page |
| Reports across all surveys |
| Report for a single survey |
| List a survey's responses |
| Get a single survey response |
| Per-question survey report |
| Answers for a single survey question |
E-commerce (write)
Tool | Description |
| Store lifecycle |
| Product lifecycle |
| Product variants |
| Product images |
| Order lifecycle |
| Order line items |
| Customer lifecycle |
| List orders across every store |
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 john@example.com"
"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 test@example.com"
"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 user@example.com 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"
Workflow recipes
Multi-step requests that chain tools end to end:
Weekly performance review — "Summarise my last week: list campaigns sent since Monday, pull each report, and rank them by click rate with one takeaway each." Chains
search_campaigns→get_campaign_report→get_campaign_advice.Deliverability audit — "Check my sending health: are my domains verified, any spam complaints on recent campaigns, and how did the last one perform by recipient domain?" Chains
list_verified_domains→get_campaign_abuse_reports→get_domain_performance.Re-engagement — "Find everyone who didn't open my last newsletter and resend it with a new subject line." Chains
get_campaign_report→resend_to_non_openers.Safe send — "Dry-run a campaign to my VIP segment, show me the send checklist, then send it once I confirm." With
MAILCHIMP_DRY_RUN=true, previews viacreate_campaign→get_campaign_send_checklist→send_campaign.Agencies (multi-account) — "For both the
acmeandglobexaccounts, list this month's top campaign by open rate." Passesaccount="acme"/account="globex"per call. See Multi-account.
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 — damien@tilman.marketing
License
MIT — see LICENSE for details.
Maintenance
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/damientilman/mailchimp-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server