Read audiences, members, campaigns and reports; add, update, tag and archive subscribers.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Add a new member (subscriber) to an audience (list). Note: status "pending" triggers a double-opt-in confirmation email. REST: POST /lists/{list_id}/members.
The audience (list) id to add the member to.
The member's email address (required).
Array of tag-name strings to apply to the new member.
Subscription status (default "subscribed"; "pending" sends a double-opt-in email).
Merge-field values, e.g. { FNAME: "Ada", LNAME: "Lovelace" }.
The server marks this tool as destructive. Running it may delete or overwrite data on the server or in any account you connected with your headers.
Add a new member (subscriber) to an audience (list). Note: status "pending" triggers a double-opt-in confirmation email. REST: POST /lists/{list_id}/members.
| Argument | Type | Description |
|---|---|---|
| tags | array | Array of tag-name strings to apply to the new member. |
| status | string | Subscription status (default "subscribed"; "pending" sends a double-opt-in email). |
| list_id* | string | The audience (list) id to add the member to. |
| merge_fields | object | Merge-field values, e.g. { FNAME: "Ada", LNAME: "Lovelace" }. |
| email_address* | string | The member's email address (required). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"list_id",
"email_address"
],
"properties": {
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "Array of tag-name strings to apply to the new member."
},
"status": {
"enum": [
"subscribed",
"pending",
"unsubscribed",
"cleaned"
],
"type": "string",
"description": "Subscription status (default \"subscribed\"; \"pending\" sends a double-opt-in email)."
},
"list_id": {
"type": "string",
"description": "The audience (list) id to add the member to."
},
"merge_fields": {
"type": "object",
"description": "Merge-field values, e.g. { FNAME: \"Ada\", LNAME: \"Lovelace\" }.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"email_address": {
"type": "string",
"description": "The member's email address (required)."
}
}
}Add and/or remove tags on an audience member (by email or subscriber_hash). `tags` are added (status active); `removeTags` are removed (status inactive). Mailchimp returns HTTP 204 (no body). REST: POST /lists/{list_id}/members/{subscriber_hash}/tags (email → MD5 hash).
| Argument | Type | Description |
|---|---|---|
| tags | array | Tag names to ADD to the member (mapped to status "active"). |
| string | Member email address — MD5-hashed (lowercased) into the subscriber_hash for you. | |
| list_id* | string | The audience (list) id. |
| removeTags | array | Tag names to REMOVE from the member (mapped to status "inactive"). |
| subscriberHash | string | The subscriber_hash (MD5 of lowercased email) or contact id, if you have it instead of `email`. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"list_id"
],
"properties": {
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "Tag names to ADD to the member (mapped to status \"active\")."
},
"email": {
"type": "string",
"description": "Member email address — MD5-hashed (lowercased) into the subscriber_hash for you."
},
"list_id": {
"type": "string",
"description": "The audience (list) id."
},
"removeTags": {
"type": "array",
"items": {
"type": "string"
},
"description": "Tag names to REMOVE from the member (mapped to status \"inactive\")."
},
"subscriberHash": {
"type": "string",
"description": "The subscriber_hash (MD5 of lowercased email) or contact id, if you have it instead of `email`."
}
}
}Archive (soft-remove) an audience member — reversible; this is NOT the permanent-delete action. REST: DELETE /lists/{list_id}/members/{subscriber_hash} (email → MD5 hash). Returns HTTP 204 (no body).
| Argument | Type | Description |
|---|---|---|
| string | Member email address — MD5-hashed (lowercased) into the subscriber_hash for you. | |
| list_id* | string | The audience (list) id. |
| subscriberHash | string | The subscriber_hash (MD5 of lowercased email) or contact id, if you have it instead of `email`. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"list_id"
],
"properties": {
"email": {
"type": "string",
"description": "Member email address — MD5-hashed (lowercased) into the subscriber_hash for you."
},
"list_id": {
"type": "string",
"description": "The audience (list) id."
},
"subscriberHash": {
"type": "string",
"description": "The subscriber_hash (MD5 of lowercased email) or contact id, if you have it instead of `email`."
}
}
}Get the API Root — the authenticated Mailchimp account: account name, total subscribers, contact info, plan and industry stats. REST: GET /.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}Get a single audience (list) by id, including subscriber stats, default from-name/email and settings. REST: GET /lists/{list_id}.
| Argument | Type | Description |
|---|---|---|
| list_id* | string | The audience (list) id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"list_id"
],
"properties": {
"list_id": {
"type": "string",
"description": "The audience (list) id."
}
}
}Get a single campaign by id, including its settings, recipients and send status. REST: GET /campaigns/{campaign_id}.
| Argument | Type | Description |
|---|---|---|
| campaign_id* | string | The campaign id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"campaign_id"
],
"properties": {
"campaign_id": {
"type": "string",
"description": "The campaign id."
}
}
}Get the report for one campaign — opens, clicks, bounces, unsubscribes and other engagement summary stats. REST: GET /reports/{campaign_id}.
| Argument | Type | Description |
|---|---|---|
| campaign_id* | string | The campaign id to fetch the report for. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"campaign_id"
],
"properties": {
"campaign_id": {
"type": "string",
"description": "The campaign id to fetch the report for."
}
}
}Get a single audience member (subscriber) by email or subscriber_hash, including status, merge fields, tags and stats. REST: GET /lists/{list_id}/members/{subscriber_hash} (email → MD5 hash).
| Argument | Type | Description |
|---|---|---|
| string | Member email address — MD5-hashed (lowercased) into the subscriber_hash for you. | |
| list_id* | string | The audience (list) id. |
| subscriberHash | string | The subscriber_hash (MD5 of lowercased email) or contact id, if you have it instead of `email`. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"list_id"
],
"properties": {
"email": {
"type": "string",
"description": "Member email address — MD5-hashed (lowercased) into the subscriber_hash for you."
},
"list_id": {
"type": "string",
"description": "The audience (list) id."
},
"subscriberHash": {
"type": "string",
"description": "The subscriber_hash (MD5 of lowercased email) or contact id, if you have it instead of `email`."
}
}
}List the account's audiences — Mailchimp's `/lists` resource (an audience is a list of subscribers). Paginated, with optional sort. REST: GET /lists.
| Argument | Type | Description |
|---|---|---|
| count | integer | Records to return (Mailchimp `count`; default 10, max 1000). |
| offset | integer | Number of records to skip (Mailchimp `offset`, for pagination). |
| sortDir | string | Sort direction ASC/DESC (Mailchimp `sort_dir`). |
| sortField | string | Field to sort by (Mailchimp `sort_field`, e.g. date_created / create_time). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"count": {
"type": "integer",
"maximum": 1000,
"description": "Records to return (Mailchimp `count`; default 10, max 1000).",
"exclusiveMinimum": 0
},
"offset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Number of records to skip (Mailchimp `offset`, for pagination)."
},
"sortDir": {
"enum": [
"ASC",
"DESC"
],
"type": "string",
"description": "Sort direction ASC/DESC (Mailchimp `sort_dir`)."
},
"sortField": {
"type": "string",
"description": "Field to sort by (Mailchimp `sort_field`, e.g. date_created / create_time)."
}
}
}List the account's classic automations (automated email workflows). Paginated. REST: GET /automations.
| Argument | Type | Description |
|---|---|---|
| count | integer | Records to return (Mailchimp `count`; default 10, max 1000). |
| offset | integer | Number of records to skip (Mailchimp `offset`, for pagination). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"count": {
"type": "integer",
"maximum": 1000,
"description": "Records to return (Mailchimp `count`; default 10, max 1000).",
"exclusiveMinimum": 0
},
"offset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Number of records to skip (Mailchimp `offset`, for pagination)."
}
}
}List the account's campaigns (email sends). Paginated, with optional type/status/audience filters and sort. REST: GET /campaigns.
| Argument | Type | Description |
|---|---|---|
| type | string | Filter by campaign type (Mailchimp `type`). |
| count | integer | Records to return (Mailchimp `count`; default 10, max 1000). |
| offset | integer | Number of records to skip (Mailchimp `offset`, for pagination). |
| status | string | Filter by campaign status (Mailchimp `status`). |
| list_id | string | Restrict to campaigns sent to this audience (list) id. |
| sortDir | string | Sort direction ASC/DESC (Mailchimp `sort_dir`). |
| sortField | string | Field to sort by (Mailchimp `sort_field`, e.g. date_created / create_time). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"type": {
"enum": [
"regular",
"plaintext",
"absplit",
"rss",
"variate"
],
"type": "string",
"description": "Filter by campaign type (Mailchimp `type`)."
},
"count": {
"type": "integer",
"maximum": 1000,
"description": "Records to return (Mailchimp `count`; default 10, max 1000).",
"exclusiveMinimum": 0
},
"offset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Number of records to skip (Mailchimp `offset`, for pagination)."
},
"status": {
"enum": [
"save",
"paused",
"schedule",
"sending",
"sent"
],
"type": "string",
"description": "Filter by campaign status (Mailchimp `status`)."
},
"list_id": {
"type": "string",
"description": "Restrict to campaigns sent to this audience (list) id."
},
"sortDir": {
"enum": [
"ASC",
"DESC"
],
"type": "string",
"description": "Sort direction ASC/DESC (Mailchimp `sort_dir`)."
},
"sortField": {
"type": "string",
"description": "Field to sort by (Mailchimp `sort_field`, e.g. date_created / create_time)."
}
}
}List the tags applied to a single audience member (by email or subscriber_hash). Paginated. REST: GET /lists/{list_id}/members/{subscriber_hash}/tags (email → MD5 hash).
| Argument | Type | Description |
|---|---|---|
| count | integer | Records to return (Mailchimp `count`; default 10, max 1000). |
| string | Member email address — MD5-hashed (lowercased) into the subscriber_hash for you. | |
| offset | integer | Number of records to skip (Mailchimp `offset`, for pagination). |
| list_id* | string | The audience (list) id. |
| subscriberHash | string | The subscriber_hash (MD5 of lowercased email) or contact id, if you have it instead of `email`. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"list_id"
],
"properties": {
"count": {
"type": "integer",
"maximum": 1000,
"description": "Records to return (Mailchimp `count`; default 10, max 1000).",
"exclusiveMinimum": 0
},
"email": {
"type": "string",
"description": "Member email address — MD5-hashed (lowercased) into the subscriber_hash for you."
},
"offset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Number of records to skip (Mailchimp `offset`, for pagination)."
},
"list_id": {
"type": "string",
"description": "The audience (list) id."
},
"subscriberHash": {
"type": "string",
"description": "The subscriber_hash (MD5 of lowercased email) or contact id, if you have it instead of `email`."
}
}
}List members of an audience (list). Paginated, with an optional status filter and sort. REST: GET /lists/{list_id}/members.
| Argument | Type | Description |
|---|---|---|
| count | integer | Records to return (Mailchimp `count`; default 10, max 1000). |
| offset | integer | Number of records to skip (Mailchimp `offset`, for pagination). |
| status | string | Filter by member status (Mailchimp `status`). |
| list_id* | string | The audience (list) id to list members from. |
| sortDir | string | Sort direction ASC/DESC (Mailchimp `sort_dir`). |
| sortField | string | Field to sort by (Mailchimp `sort_field`, e.g. date_created / create_time). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"list_id"
],
"properties": {
"count": {
"type": "integer",
"maximum": 1000,
"description": "Records to return (Mailchimp `count`; default 10, max 1000).",
"exclusiveMinimum": 0
},
"offset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Number of records to skip (Mailchimp `offset`, for pagination)."
},
"status": {
"enum": [
"subscribed",
"unsubscribed",
"cleaned",
"pending",
"transactional",
"archived"
],
"type": "string",
"description": "Filter by member status (Mailchimp `status`)."
},
"list_id": {
"type": "string",
"description": "The audience (list) id to list members from."
},
"sortDir": {
"enum": [
"ASC",
"DESC"
],
"type": "string",
"description": "Sort direction ASC/DESC (Mailchimp `sort_dir`)."
},
"sortField": {
"type": "string",
"description": "Field to sort by (Mailchimp `sort_field`, e.g. date_created / create_time)."
}
}
}List campaign reports (aggregate performance for sent campaigns). Paginated, with an optional type filter. REST: GET /reports.
| Argument | Type | Description |
|---|---|---|
| type | string | Filter reports by campaign type (Mailchimp `type`). |
| count | integer | Records to return (Mailchimp `count`; default 10, max 1000). |
| offset | integer | Number of records to skip (Mailchimp `offset`, for pagination). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"type": {
"enum": [
"regular",
"plaintext",
"absplit",
"rss",
"variate"
],
"type": "string",
"description": "Filter reports by campaign type (Mailchimp `type`)."
},
"count": {
"type": "integer",
"maximum": 1000,
"description": "Records to return (Mailchimp `count`; default 10, max 1000).",
"exclusiveMinimum": 0
},
"offset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Number of records to skip (Mailchimp `offset`, for pagination)."
}
}
}List an audience's segments and tags (saved segments include static tags). Paginated. REST: GET /lists/{list_id}/segments.
| Argument | Type | Description |
|---|---|---|
| count | integer | Records to return (Mailchimp `count`; default 10, max 1000). |
| offset | integer | Number of records to skip (Mailchimp `offset`, for pagination). |
| list_id* | string | The audience (list) id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"list_id"
],
"properties": {
"count": {
"type": "integer",
"maximum": 1000,
"description": "Records to return (Mailchimp `count`; default 10, max 1000).",
"exclusiveMinimum": 0
},
"offset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Number of records to skip (Mailchimp `offset`, for pagination)."
},
"list_id": {
"type": "string",
"description": "The audience (list) id."
}
}
}List the account's email templates (saved and pre-built layouts). Paginated, with optional type filter and sort. REST: GET /templates.
| Argument | Type | Description |
|---|---|---|
| type | string | Filter by template type (Mailchimp `type`: user / base / gallery). |
| count | integer | Records to return (Mailchimp `count`; default 10, max 1000). |
| offset | integer | Number of records to skip (Mailchimp `offset`, for pagination). |
| sortDir | string | Sort direction ASC/DESC (Mailchimp `sort_dir`). |
| sortField | string | Field to sort by (Mailchimp `sort_field`, e.g. date_created / create_time). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"type": {
"enum": [
"user",
"base",
"gallery"
],
"type": "string",
"description": "Filter by template type (Mailchimp `type`: user / base / gallery)."
},
"count": {
"type": "integer",
"maximum": 1000,
"description": "Records to return (Mailchimp `count`; default 10, max 1000).",
"exclusiveMinimum": 0
},
"offset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Number of records to skip (Mailchimp `offset`, for pagination)."
},
"sortDir": {
"enum": [
"ASC",
"DESC"
],
"type": "string",
"description": "Sort direction ASC/DESC (Mailchimp `sort_dir`)."
},
"sortField": {
"type": "string",
"description": "Field to sort by (Mailchimp `sort_field`, e.g. date_created / create_time)."
}
}
}Search for members across the account (or one audience) by email, name or other fields. Returns exact + full-text matches. REST: GET /search-members.
| Argument | Type | Description |
|---|---|---|
| query* | string | The search query (email, name, etc.). |
| list_id | string | Restrict the search to this audience (list) id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"query"
],
"properties": {
"query": {
"type": "string",
"description": "The search query (email, name, etc.)."
},
"list_id": {
"type": "string",
"description": "Restrict the search to this audience (list) id."
}
}
}Update an existing audience member (by email or subscriber_hash). Only the fields you supply change. REST: PATCH /lists/{list_id}/members/{subscriber_hash} (email → MD5 hash).
| Argument | Type | Description |
|---|---|---|
| string | Member email address — MD5-hashed (lowercased) into the subscriber_hash for you. | |
| status | string | New subscription status. |
| list_id* | string | The audience (list) id. |
| merge_fields | object | Merge-field values to set, e.g. { FNAME: "Ada" }. |
| subscriberHash | string | The subscriber_hash (MD5 of lowercased email) or contact id, if you have it instead of `email`. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"list_id"
],
"properties": {
"email": {
"type": "string",
"description": "Member email address — MD5-hashed (lowercased) into the subscriber_hash for you."
},
"status": {
"enum": [
"subscribed",
"pending",
"unsubscribed",
"cleaned"
],
"type": "string",
"description": "New subscription status."
},
"list_id": {
"type": "string",
"description": "The audience (list) id."
},
"merge_fields": {
"type": "object",
"description": "Merge-field values to set, e.g. { FNAME: \"Ada\" }.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"subscriberHash": {
"type": "string",
"description": "The subscriber_hash (MD5 of lowercased email) or contact id, if you have it instead of `email`."
}
}
}