Your Mailchimp account, fully accessible through AI.
A Model Context Protocol (MCP) server that exposes Mailchimp's Marketing API for managing campaigns, automations, audiences, templates, landing pages, and e-commerce data.
The Mailchimp MCP Server provides a complete interface to your Mailchimp account:
Perfect for:
Pings the Mailchimp API to verify credentials and connectivity are working correctly.
Inputs:
noneoutput:
{
"health_status": "Everything's Chimpy!"
}Returns a paginated summary of all classic automations in the account, with optional filtering by status or date range.
Inputs:
- `count` (int, optional) — Number of records to return (default: 10, max: 1000)
- `offset` (int, optional) — Number of records to skip for pagination (default: 0)
- `fields` (string, optional) — Comma-separated list of fields to return
- `exclude_fields` (string, optional) — Comma-separated list of fields to exclude
- `before_create_time` (string, optional) — ISO 8601 datetime; restrict to automations created before this time
- `since_create_time` (string, optional) — ISO 8601 datetime; restrict to automations created after this time
- `before_start_time` (string, optional) — ISO 8601 datetime; restrict to automations started before this time
- `since_start_time` (string, optional) — ISO 8601 datetime; restrict to automations started after this time
Returns full details of a single automation workflow including settings, tracking, and status.
Inputs:
- `workflow_id` (string, required) — The unique ID of the automation workflow
- `fields` (string, optional) — Comma-separated list of fields to return
- `exclude_fields` (string, optional) — Comma-separated list of fields to excludeoutput:
{
"id": "b0a1c24f6b",
"status": "sending",
"emails_sent": 120,
Returns a summary of all emails configured within a specific classic automation workflow.
Inputs:
- `workflow_id` (string, required) — The unique ID of the automation workflowoutput:
{
"emails": [...],
"total_items": 3
}Returns detailed information about one email step within an automation workflow, including delay settings, content, tracking, and performance metrics.
Inputs:
- `workflow_id` (string, required) — The unique ID of the automation workflow
- `workflow_email_id` (string, required) — The unique ID of the automation workflow emailoutput:
{
"id": "a1b2c3d4e5",
"subject_line": "Welcome!",
"status": "sending",
"open_rate"
Returns the list of subscribers currently queued to receive a specific automation email.
Inputs:
- `workflow_id` (string, required) — The unique ID of the automation workflow
- `workflow_email_id` (string, required) — The unique ID of the automation workflow emailoutput:
{
"queue": [...],
"total_items": 15
}Returns details about a specific subscriber's position in an automation email queue.
Inputs:
- `workflow_id` (string, required) — The unique ID of the automation workflow
- `workflow_email_id` (string, required) — The unique ID of the automation workflow email
- `subscriber_hash` (string, required) — MD5 hash of the lowercase subscriber email addressoutput:
{
"id": "subscriber_hash",
"email_address": "user@example.com",
Returns information about all lists (audiences) in the Mailchimp account.
Inputs:
noneoutput:
{
"lists": [...],
"total_items": 3
}Returns full details about a specific Mailchimp list including stats, settings, and contact defaults.
Inputs:
- `list_id` (string, required) — The unique ID for the listoutput:
{
"id": "a1b2c3d4e5",
"name": "My Audience",
"stats": { "member_count": 1200, ... },
...
Returns all campaigns in the Mailchimp account.
Inputs:
noneoutput:
{
"campaigns": [...],
"total_items": 10
}Returns full details about a specific campaign including settings, content, and status.
Inputs:
- `campaign_id` (string, required) — The unique ID for the campaignoutput:
{
"id": "campaign_id",
"status": "sent",
"subject_line": "Newsletter #42",
...
}Returns all folders used to organize templates in the account.
Inputs:
- `count` (int, optional) — Number of folders to return (default: 10, max: 1000)
- `offset` (int, optional) — Number of records to skip for pagination (default: 0)output:
{
"folders": [...],
"total_items": 4
}Creates a new folder for organizing templates in the account.
Inputs:
- `name` (string, required) — The name of the folderoutput:
{
"id": "folder_id",
"name": "My Folder",
"count": 0
}Returns all templates in the account with optional filtering by type or content type.
Inputs:
- `count` (int, optional) — Number of templates to return (default: 10, max: 1000)
- `offset` (int, optional) — Number of records to skip for pagination (default: 0)
- `type` (string, optional) — Filter by type: `user`, `base`, or `gallery`
- `content_type` (string, optional) — Filter by content type: `html`, `template`, or `multichannel`output:
{
"templates": [...
Returns full details about a specific template including its name, type, and folder.
Inputs:
- `template_id` (string, required) — The unique ID for the templateoutput:
{
"id": "template_id",
"name": "My Template",
"type": "user",
...
}Creates a new Classic template with custom HTML. Supports Mailchimp Template Language for dynamic content.
Inputs:
- `name` (string, required) — The name of the template
- `html` (string, required) — Raw HTML for the template; supports Mailchimp Template Language
- `folder_id` (string, optional) — The ID of the folder to place the template inoutput:
{
"id": "template_id",
"name": "My Template",
"type": "user"
}Updates the name, HTML content, or folder of an existing template.
Inputs:
- `template_id` (string, required) — The unique ID for the template
- `name` (string, required) — The updated name of the template
- `html` (string, required) — Updated raw HTML; supports Mailchimp Template Language
- `folder_id` (string, optional) — The ID of the folder to move the template tooutput:
{
"id": "template_id",
"name": "Updated Template",
"type"
Returns performance reports for all campaigns with optional filtering by campaign type.
Inputs:
- `count` (int, optional) — Number of reports to return (default: 10, max: 1000)
- `offset` (int, optional) — Number of records to skip for pagination (default: 0)
- `type` (string, optional) — Filter by campaign type: `regular`, `plaintext`, `absplit`, `rss`, or `variate`output:
{
"reports": [...],
"total_items"
Returns the detailed performance report for a specific sent campaign including opens, clicks, and unsubscribes.
Inputs:
- `campaign_id` (string, required) — The unique ID for the campaignoutput:
{
"id": "campaign_id",
"opens": { "opens_total": 450, "unique_opens": 300 },
"clicks": { "clicks_total": 120
Returns all landing pages in the account with optional sorting.
Inputs:
- `count` (int, optional) — Number of landing pages to return (default: 10, max: 1000)
- `sort_field` (string, optional) — Sort by: `created_at` or `updated_at`
- `sort_dir` (string, optional) — Sort direction: `ASC` or `DESC`output:
{
"landing_pages": [...],
"total_items": 2
}Returns full information about a specific landing page including its status, URL, and settings.
Inputs:
- `page_id` (string, required) — The unique ID for the landing pageoutput:
{
"id": "page_id",
"name": "Spring Sale",
"status": "published",
"url": "https://mailchimp.com/landing/...",
...
Returns the raw HTML content of a specific landing page.
Inputs:
- `page_id` (string, required) — The unique ID for the landing pageoutput:
{
"html": "<!DOCTYPE html>..."
}Returns all connected e-commerce stores in the Mailchimp account.
Inputs:
- `count` (int, optional) — Number of stores to return (default: 10, max: 1000)
- `offset` (int, optional) — Number of records to skip for pagination (default: 0)output:
{
"stores": [...],
"total_items": 1
}Returns full details about a specific connected e-commerce store.
Inputs:
- `store_id` (string, required) — The unique ID for the storeoutput:
{
"id": "store_id",
"name": "My Shop",
"domain": "myshop.com",
...
}Returns all products in a specific connected e-commerce store.
Inputs:
- `store_id` (string, required) — The unique ID for the store
- `count` (int, optional) — Number of products to return (default: 10, max: 1000)
- `offset` (int, optional) — Number of records to skip for pagination (default: 0)output:
{
"products": [...],
"total_items": 25
Returns full details about a specific product in an e-commerce store.
Inputs:
- `store_id` (string, required) — The unique ID for the store
- `product_id` (string, required) — The unique ID for the productoutput:
{
"id": "product_id",
"title": "Blue T-Shirt",
"variants": [...],
...
}Returns all orders in a specific e-commerce store with optional filtering by customer or campaign.
Inputs:
- `store_id` (string, required) — The unique ID for the store
- `count` (int, optional) — Number of orders to return (default: 10, max: 1000)
- `offset` (int, optional) — Number of records to skip for pagination (default: 0)
- `customer_id` (string, optional) — Filter orders by a specific customer ID
- `campaign_id` (string, optional) — Filter orders attributed to a specific campaign IDoutput:
{
Returns full details about a specific order in an e-commerce store including line items and customer info.
Inputs:
- `store_id` (string, required) — The unique ID for the store
- `order_id` (string, required) — The unique ID for the orderoutput:
{
"id": "order_id",
"customer": { "email_address": "buyer@example.com" },
"order_total": 59.99,
"lines": [
count — Number of records to return per request (default: 10, max: 1000)offset — Number of records to skip; use with count to page through resultsfields — Comma-separated list of response fields to include (reduces payload size)exclude_fields — Comma-separated list of response fields to omitExample:
fields: "id,status,subject_line"
exclude_fields: "_links"All datetime parameters use ISO 8601 format:
format: YYYY-MM-DDTHH:MM:SS+HH:MM
Example: 2024-01-15T10:30:00+00:00The subscriber_hash parameter is the MD5 hash of the subscriber's lowercase email address.
input: user@example.com → lowercase → user@example.com
Hash: md5("user@example.com") → b58996c504c5638798eb6b511e6f49afAuthorization: Bearer YOUR_TOKEN and X-Mewcp-Credential-Id: CREDENTIAL-ID headers are presentX-Mewcp-Credential-Id headercount must be an integer){server-name}/mcp/{tool-name}output:
{
"automations": [...],
"total_items": 5
}