# Mailchimp MCP

> Mailchimp MCP Server gives your AI client direct control over complex marketing operations. Use it to sync contacts across lists, manage audience segments, and run full campaign lifecycle actions—all without opening a web browser or copying IDs. You can list all audiences, add members with specific statuses, create drafts, track performance reports, and trigger live sends autonomously.

## Overview
- **Category:** industry-titans
- **Price:** Free
- **Tags:** audience-sync, subscriber-management, campaign-tracking, marketing-analytics, contact-lists, email-delivery

## Description

You're getting direct control over your entire Mailchimp setup through your AI client. You don't gotta jump between tabs or manually copy IDs anymore; you just talk to your agent, and it handles all the heavy lifting for your marketing lists and campaigns. This server gives you deep access to manage contacts across multiple lists, draft whole campaigns from scratch, and even trigger live sends—all without ever opening a web browser.

**Syncing Contacts and Lists**

You can get a full picture of what you're working with first. Use the `list_audiences` tool to grab an ID, name, and member count for every list your account runs. If you know which audience you need details on, run `get_audience`; that gives you specific stats, current member numbers, and configuration settings for just that one list.

Need to find a single user? You can use `search_members` to locate an individual contact across every single list in your account using just their email address or name. If you need the full roster of people inside a known audience, run `list_members`. This pulls out every person's email, status, and assigned tags for that specific audience ID.

When you find someone to add, use `add_member` to drop them into any list. You can set their initial membership status right there—whether they're subscribed or still pending confirmation. It’s simple control over your entire contact database.

**Campaign Workflow and Sending**

Starting a campaign is straightforward. Run `create_campaign`, and it builds the whole structure for a brand-new email marketing piece, returning its unique ID so you can work with it later. Once that draft is ready, if you need to check what's already on the table, use `get_campaign` to pull all the full details—like the intended subject lines or scheduled send times—for any campaign ID you have.

To see what’s been done before, run `list_campaigns`. This gives you a list of every campaign you've drafted or ran, along with their IDs and basic performance stats. When it's time to go live, use the `send_campaign` tool. Be warned: this action sends the email immediately, and there ain't no hitting 'undo.'

**Performance Reporting**

You don't just send stuff out and walk away. You wanna know how well it worked? After a campaign sends, run `get_report`. This pulls the final performance report for that specific mailing—you get hard metrics like open rates and click counts for exactly what your audience did with the email.

It’s all about giving your agent direct command over these functions: listing every list (`list_audiences`), getting detailed stats on a single list (`get_audience`), locating any user across your whole system (`search_members`), managing who gets added or removed (`add_member`, `list_members`), drafting and checking existing campaign details (`create_campaign`, `get_campaign`), triggering the send (`send_campaign`), listing past runs (`list_campaigns`), and pulling concrete performance metrics on finished jobs (`get_report`).

## Tools

### add_member
Adds a new contact to any Mailchimp audience, allowing you to set their initial status (e.g., subscribed or pending).

### create_campaign
Builds the structure for a brand-new email marketing campaign and returns its unique ID.

### get_audience
Retrieves detailed statistics, member counts, and configuration settings for one specific mailing audience.

### get_campaign
Fetches all the full details—including subject lines and send times—for a particular campaign ID.

### get_report
Pulls the final performance report, showing open rates and click metrics for an already sent campaign.

### list_audiences
Lists every audience (or 'list') associated with your account, providing IDs, names, and member counts.

### list_campaigns
Gets a list of all campaigns you've run or drafted, along with their IDs and basic stats.

### list_members
Retrieves the email addresses, status, and tags for every contact within a specific audience ID.

### search_members
Finds individual contacts across all your audiences using just their name or email address.

### send_campaign
Immediately triggers the live dispatch of a campaign. Be aware this action is irreversible.

## Prompt Examples

**Prompt:** 
```
Fetch the ID of my primary audience list.
```

**Response:** 
```
Query complete. Your main audience 'Weekly Newsletter' uses the List ID 'a1b2c3d4e5'. You can now use this ID to fetch subscribers.
```

**Prompt:** 
```
Add exactly test@domain.com as a subscriber to list a1b2c3d4e5.
```

**Response:** 
```
Added subscriber successfully! The contact test@domain.com is now fully mapped as 'subscribed' against that specific audience ID.
```

**Prompt:** 
```
List all active marketing campaigns we have on the server.
```

**Response:** 
```
I've fetched 3 campaign items. 'Summer Sale 2026' (Sent), 'Welcome Series' (Draft), and 'Churn Automation' (Sent). Would you like to inspect CTR metrics for the sent ones?
```

## Capabilities

### Syncing Contacts and Lists
List all available audiences (lists), retrieve detailed stats for a specific list, or find individual contacts across your entire account.

### Campaign Lifecycle Management
Create new campaign drafts, get full details on existing campaigns, and trigger an immediate, live email send.

### Audience Membership Control
Add specific contacts to a list or search for users by name or email address across all your audiences.

### Performance Reporting
Retrieve detailed performance metrics, including open and click rates, for any sent campaign report.

## Use Cases

### Investigating a Low-Performing Campaign
The marketing team notices that last month’s campaign didn't hit its engagement goals. They ask their agent to check performance. The agent runs `get_report` and instantly provides the click rates and open metrics, telling them exactly which element failed.

### Re-engaging Churned Users
The Growth Engineer identifies a list of users who unsubscribed six months ago. They ask the agent to run `list_audiences` to find the correct segment, then use `add_member` on those contacts with 'subscribed' status to start a re-engagement flow.

### Auditing Audience Health
A specialist needs to know how many people are in their main list versus their secondary list. They prompt the agent, which uses `list_audiences` and then `get_audience` for each ID, giving a quick side-by-side comparison of member counts.

### Sending an Urgent Update
The CEO needs to send an urgent announcement immediately. They prompt the agent: 'Send Campaign X now.' The agent first verifies the campaign structure using `get_campaign` and then executes the irreversible action with `send_campaign`.

## Benefits

- Stop manually tracking performance. Use `get_report` to instantly pull open/click metrics for any campaign, letting your agent summarize trends instead of you reading raw data tables.
- Handle massive contact lists without exporting CSVs. Run `list_members` or use `search_members` to get the full list and status of contacts directly through the API call.
- Automate cleanup workflows. You can run `add_member` to re-subscribe specific users who previously unsubscribed, updating their status instantly across your whole system.
- Never lose an ID again. Use `list_audiences` or `list_campaigns` first; the agent pulls all necessary IDs and stats before you even ask for a deep dive with `get_audience`.
- Execute campaigns with confidence. Your agent can check campaign details using `get_campaign` before running `send_campaign`, ensuring you're sending the right version at the right time.

## How It Works

The bottom line is: you tell your agent what marketing goal you have—like 'find all unsubscribed users from Q1'—and the server executes the necessary steps through its tools.

1. Enable the MCP connection under your local profile.
2. Input an application-level API token specific to your Mailchimp account.
3. Engage directly with your AI agent, letting it manage flows using natural language and raw commands.

## Frequently Asked Questions

**How do I check if a user is on my mailing list using the Mailchimp MCP Server?**
Use the `search_members` tool. You give it an email or name, and it searches across all your audiences to confirm if that contact exists and provides their current status.

**What's the difference between list_audiences and get_audience with Mailchimp MCP Server?**
`list_audiences` gives you an overview of every list ID and name. `get_audience` requires a specific ID and pulls deep, detailed data—like open rates and configuration settings—for *that single* audience.

**Can I create a campaign draft before sending it using the Mailchimp MCP Server?**
Yes. Use `create_campaign` to build the structure and get the ID of a new campaign. You can then use `get_campaign` to review all details before you run the final `send_campaign`.

**Which tool should I use if I need to find out how many contacts I have?**
If you know the specific segment, use `get_audience` and ask for the member count. If you want a total list of every contact in one place, run `list_members` after providing an audience ID.

**What happens when I use the `send_campaign` tool? Does it confirm everything?**
The campaign sends immediately. Because this action is irreversible, your AI client must ensure all details are correct before calling `send_campaign`. It triggers a live email send through Mailchimp.

**If I need to update a contact's status, should I use the `add_member` tool?**
Yes. Use `add_member` to change statuses like 'subscribed,' 'unsubscribed,' or 'pending.' It allows you to manage member metadata directly without needing access to the web interface.

**What information does the `get_report` tool pull for campaign performance?**
It retrieves a detailed report showing global campaign metrics. You get insights into open and click rates, helping you measure overall campaign effectiveness programmatically.

**How is `search_members` different from listing all contacts with `list_members`?**
Unlike `list_members`, which requires a specific audience ID, `search_members` looks across all audiences. You can find contacts by name or email address regardless of their primary list.

**Do I need the server prefix combined with my API key automatically?**
Mailchimp API keys usually have a suffix (like `key-us6`). The system will parse everything internally. Just paste the full API key into our simplified authentication box naturally.

**Can I bulk add 5,000 users directly in a single conversational prompt?**
While structurally possible via API logic, context windows prohibit reading arrays of 5000 units. Adding is handled dynamically unit by unit securely or in exceptionally tiny batches to bypass hard egress caps effectively.

**Does the system allow firing off actual live campaigns immediately to massive audiences?**
No. The MCP server prioritizes safe state changes (subscribers). Launching massive destructive dispatches is omitted from the handler array to avoid rogue AI actions firing misconfigured commercial payload sets blindly.