Skip to main content
Glama
damientilman

Mailchimp MCP

Mailchimp MCP Server

CI PyPI version PyPI downloads License: MIT Python 3.10+ MCP

The most complete Model Context Protocol (MCP) server for the Mailchimp Marketing API112 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

Related MCP server: Mailchimp MCP Server

Prerequisites

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.

{
  "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-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 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"

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 Tilmandamien@tilman.marketing

License

MIT — see LICENSE for details.

Install Server
A
license - permissive license
A
quality
B
maintenance

Maintenance

Maintainers
11dResponse time
2wRelease cycle
7Releases (12mo)

Latest Blog Posts

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