mailchimp-mcp
Provides tools for managing Mailchimp audiences, campaigns, templates, subscribers, and reports, as well as universal tools to access the full Mailchimp Marketing API (282 endpoints).
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mailchimp-mcp list my Mailchimp audiences"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mailchimp-mcp
12 tools. 282 endpoints. Zero bloat.
A hybrid Mailchimp MCP server built on the architecture Cloudflare pioneered for their own API: instead of drowning the model in 50+ tool definitions, we give it 10 fast native tools for the email workflow you actually use, plus two universal tools that unlock the entire Mailchimp Marketing API on demand.
The Problem with Every Other Mailchimp MCP
There are half a dozen Mailchimp MCP servers on GitHub. They all do the same thing: expose 40–50+ individual tools, one per API operation. list_campaigns, get_campaign, create_campaign, delete_campaign, list_audiences, get_audience, add_member, update_member... on and on.
Every single one of those tool definitions gets loaded into the LLM's context window on every turn of every conversation — even when you're talking about something completely unrelated to Mailchimp. That's thousands of tokens burned before the model even starts thinking about your question.
This is the context flooding problem. Cloudflare ran the math on their own API (2,500+ endpoints) and found that exposing everything as native MCP tools would consume 1.17 million tokens per turn. Even aggressively pruned, it was 244,000 tokens. Their solution was radical: collapse the entire API surface into just two tools — search and execute — and let the model discover what it needs on the fly. They called it Code Mode, and it reduced the footprint to ~1,000 tokens.
Related MCP server: Mailchimp MCP Server
Our Take: The Hybrid Architecture
Pure Code Mode is elegant, but it has a tradeoff. For the stuff you do every single day — list your audiences, create a campaign, check open rates — forcing the model to search the API catalog first adds an unnecessary round trip. You already know what you want. The model should too.
The deeper analysis of real-world API traffic reveals a consistent pattern: a Pareto distribution. The vast majority of what people actually do hits a tiny subset of endpoints. The long tail is everything else.
So we built a hybrid:
Layer 1: 10 native tools for the mass email workflow. These are purpose-built, zero-overhead, and handle the 80% case. Creating a campaign, sending it, checking the report — one tool call, done. No searching, no discovering, no extra turns.
Layer 2: search + execute for everything else. An embedded catalog of all 282 Mailchimp API endpoints, generated from the official OpenAPI spec. The model searches to discover endpoints, then executes to call them. Automations, e-commerce, landing pages, file management, batch operations — it's all there without adding a single extra tool definition.
The result: 12 tool schemas in your context window instead of 50+. Fast for the common case, omnipotent for the edge case.
Other Mailchimp MCPs | mailchimp-mcp | |
Tools in context | 40–50+ | 12 |
API coverage | Partial | Full (282 endpoints) |
Token cost per turn | High (all schemas always loaded) | Minimal |
Common tasks | Same overhead as rare ones | Optimized native tools |
New Mailchimp endpoints | Requires code changes | Already covered via execute |
Setup
Get Your Mailchimp API Key
Log in to Mailchimp
Go to Profile → Extras → API keys
Click Create A Key
Copy the key — it looks like:
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-usXX
The suffix after the dash (us12, us6, etc.) is your data center. The server extracts it automatically.
Claude Code
Add to your ~/.claude.json (or project-level .claude.json) under mcpServers:
{
"mcpServers": {
"mailchimp": {
"type": "stdio",
"command": "npx",
"args": ["-y", "mailchimp-mcp"],
"env": {
"MAILCHIMP_API_KEY": "your-api-key-us12"
}
}
}
}Restart Claude Code for the server to connect. You'll see mailchimp in your MCP server list, and the tools will appear as mcp__mailchimp__list_audiences, mcp__mailchimp__search, etc.
Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"mailchimp": {
"command": "npx",
"args": ["-y", "mailchimp-mcp"],
"env": {
"MAILCHIMP_API_KEY": "your-api-key-us12"
}
}
}
}Restart Claude Desktop. The Mailchimp tools will appear in the tools menu (hammer icon).
Cursor / Windsurf / Other MCP Clients
The config pattern is the same — npx -y mailchimp-mcp as the command, with your API key in the env block. Consult your client's MCP documentation for where to place the config.
Running from Source (Development)
If you cloned the repo instead of using npx:
{
"mcpServers": {
"mailchimp": {
"command": "node",
"args": ["/path/to/mailchimp-mcp/dist/index.js"],
"env": {
"MAILCHIMP_API_KEY": "your-api-key-us12"
}
}
}
}Native Tools: The Fast Path
These 10 tools cover the complete mass email lifecycle — no searching required:
Tool | What it does |
| List all audiences with subscriber counts, open rates, click rates |
| Browse campaigns by status (draft, sent, scheduled, etc.) |
| Create a new email campaign with subject, from name, reply-to |
| Set HTML content or assign a template to a campaign |
| Schedule a campaign for a future send time |
| Send a campaign immediately |
| Get opens, clicks, bounces, unsubscribes for a sent campaign |
| Browse your email templates |
| Find subscribers by name or email across all audiences |
| Add/update a subscriber with auto MD5 hash + optional tags |
Example: End-to-End Campaign
1. list_audiences() → find your audience ID
2. list_templates(type: "user") → find a template
3. create_campaign(list_id, subject, from_name, reply_to) → get a campaign_id back
4. update_campaign_content(campaign_id, template_id: 123) → set the email content
5. send_campaign(campaign_id) → fire it off
6. get_campaign_report(campaign_id) → check opens & clicksExample: Add a Subscriber
add_or_update_member(
list_id: "abc123",
email: "jane@example.com",
merge_fields: { "FNAME": "Jane", "LNAME": "Doe" },
tags: ["VIP", "2026-spring"]
)The MD5 subscriber hash that Mailchimp requires is computed automatically from the email — you never have to think about it.
Universal Tools: The Long Tail
For anything beyond the 10 native tools — automations, e-commerce, segments, webhooks, landing pages, file uploads, batch operations, and hundreds more — use search and execute.
Search: Discover What's Available
Call with no arguments to see the full API map:
> search()
Mailchimp Marketing API — 282 endpoints across 29 categories
lists (66) — Audiences, members, segments, merge fields, tags, webhooks, signups
ecommerce (60) — Stores, products, orders, carts, customers
campaigns (22) — Email campaigns — create, schedule, send, content, feedback
reports (22) — Campaign performance reports — opens, clicks, bounces
automations (18) — Marketing automation workflows and triggered emails
...Narrow it down:
> search(tag: "automations")
> search(query: "segment members")
> search(query: "merge fields", method: "POST")Execute: Call Any Endpoint
> execute(method: "GET", path: "/ping")
{ "health_status": "Everything's Chimpy!" }
> execute(method: "GET", path: "/automations", params: { "count": "5" })
> execute(method: "POST", path: "/lists/{list_id}/segments", body: {
"name": "Active subscribers",
"static_segment": ["email1@test.com", "email2@test.com"]
})All 29 API Categories
Category | Endpoints | Description |
lists | 66 | Audiences, members, segments, merge fields, tags |
ecommerce | 60 | Stores, products, orders, carts, customers |
campaigns | 22 | Create, schedule, send, content, feedback |
reports | 22 | Opens, clicks, bounces, email activity |
automations | 18 | Workflows, triggered emails, queues |
reporting | 12 | Advanced analytics |
fileManager | 11 | File and image uploads |
landingPages | 8 | Landing page management |
templates | 6 | Email templates |
verifiedDomains | 5 | Domain verification for sending |
connectedSites | 5 | Connected e-commerce sites |
batchWebhooks | 5 | Batch webhook configurations |
campaignFolders | 5 | Organize campaigns into folders |
templateFolders | 5 | Organize templates into folders |
batches | 4 | Batch operations for bulk API calls |
conversations | 4 | Conversation tracking and messages |
contacts | 4 | Contact management |
audiences | 4 | Audience management |
Surveys | 3 | Survey management |
accountExports | 2 | Account data exports |
authorizedApps | 2 | OAuth authorized applications |
facebookAds | 2 | Facebook ad campaigns |
accountExport | 1 | Export account data |
activityFeed | 1 | Activity feed events |
customerJourneys | 1 | Customer journey automations |
ping | 1 | API health check |
root | 1 | API root and account info |
searchCampaigns | 1 | Search campaigns by query |
searchMembers | 1 | Search audience members by query |
Development
git clone https://github.com/livemau5/mailchimp-mcp.git
cd mailchimp-mcp
npm install
npm run build
# Regenerate the API catalog from the latest Mailchimp spec
npm run generate-catalog
# Run in development mode
MAILCHIMP_API_KEY=your-key-us12 npm run devProject Structure
src/
index.ts Entry point — server setup, tool registration, stdio transport
types.ts CatalogEntry interface
utils.ts Data center extraction, URL building, auth, response formatting
api-catalog.ts Auto-generated catalog of all 282 endpoints
tools/
native.ts 10 native tools for the mass email workflow
search.ts Search tool — text/tag/method filtering over the catalog
execute.ts Execute tool — HTTP client with automatic Basic Auth
scripts/
generate-catalog.ts Parses official Mailchimp OpenAPI spec into api-catalog.tsLicense
MIT
Available Tools
12 toolsadd_or_update_memberA
Add a new subscriber or update an existing one (upsert). Automatically computes the required subscriber hash from the email. Returns compact confirmation by default — set verbose=true for full response.
Inputs: email (required), list_id (required), tags, status, +2 more.
create_campaignA
Create a new email campaign. Returns the campaign ID for use with update_campaign_content and send/schedule. Returns compact confirmation by default — set verbose=true for full response.
Inputs: list_id (required), subject (required), reply_to (required), from_name (required), +4 more.
executeA
Execute any Mailchimp Marketing API call. Use the search tool first to discover available endpoints and their parameters. Write operations return compact summaries by default — set verbose=true for full response.
Inputs: path (required), method (required), body, params, +1 more.
get_campaign_reportA
Get performance report for a sent campaign: opens, clicks, bounces, unsubscribes, and more.
Inputs: campaign_id (required).
list_audiencesA
List all audiences (lists) with subscriber counts and key stats.
Inputs: count.
list_campaignsA
List email campaigns, optionally filtered by status (save, paused, schedule, sending, sent).
Inputs: count, offset, status.
list_templatesC
List available email templates.
Inputs: type, count.
schedule_campaignA
Schedule a campaign to send at a specific time. Returns compact confirmation by default — set verbose=true for full response.
Inputs: campaign_id (required), schedule_time (required), verbose.
searchA
Search the Mailchimp Marketing API catalog to discover endpoints. Returns method, path, summary, and parameter details. Call with no arguments to see all available categories.
Inputs: tag, limit, query, method.
search_membersA
Search for audience members by name or email address across all audiences.
Inputs: query (required), list_id.
send_campaignA
Send a campaign immediately. The campaign must have content set first via update_campaign_content. Returns compact confirmation by default — set verbose=true for full response.
Inputs: campaign_id (required), verbose.
update_campaign_contentA
Set the HTML content or template for a campaign. Provide either html OR template_id. Returns compact confirmation by default — set verbose=true for full response.
Inputs: campaign_id (required), html, verbose, template_id.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 12 tools
Each specific tool targets a distinct resource and action (campaigns, content, scheduling, sending, reports, templates, members). The meta-tools 'search' and 'execute' are clearly differentiated as discovery and fallback execution, so there is no practical confusion.
Most tools follow a consistent verb_noun pattern (list_audiences, create_campaign, get_campaign_report). The exceptions are the bare verbs 'search' and 'execute', which are minor deviations but still clear in intent.
Twelve tools is well within the ideal 3-15 range. Each tool covers a distinct part of the Mailchimp workflow without redundancy or bloat.
The core campaign lifecycle (create, content, schedule, send, report) and audience/member management are covered. The 'search' and 'execute' meta-tools ensure no Mailchimp API endpoint is unreachable, effectively filling any gaps.
Maintenance
Related MCP Connectors
Hosted Mailchimp MCP server for Claude, ChatGPT and Cursor, with each action switched per account.
335 MCP tools, 75 playbooks. AI-native CRM, email/SMS, events, OAuth.
Marketo MCP server for AI. 130 tools to operate Marketo from Claude, Cursor, or ChatGPT.
Build and run AI workflows, agents, data tables and 1000+ API integrations from any MCP client.
Related MCP Servers
- AlicenseAqualityDmaintenanceAn MCP server that interfaces with the Mailchimp Marketing API to manage audiences, email campaigns, and subscribers. It enables users to create and schedule campaigns, handle member lists, and send test or live emails through natural language commands.1331 npmMIT
- AlicenseBqualityDmaintenanceA production-grade MCP server that integrates with the Mailchimp Marketing API to manage campaigns, audiences, members, and reports. It provides 28 specialized tools for automating marketing tasks such as sending emails, managing subscriber tags, and analyzing performance data.711MIT
- FlicenseBqualityDmaintenanceMCP server for Mailchimp Marketing API v3 with 72 tools covering audiences, campaigns, templates, reports, and more.72-
- AlicenseCqualityDmaintenanceComprehensive MCP server for Mailchimp Marketing API v3.0 with over 104 tools and 15+ React UI apps, enabling management of campaigns, audiences, ecommerce, automations, reports, and more via natural language.1001MIT