From b46b8d1008381b8794f6d8a6f6078e369ecb8f79 Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 25 Jun 2026 23:48:02 +0000 Subject: [PATCH] docs(mailchimpmcp): add Mailchimp MCP connector documentation --- ...er-setup-mailchimpmcp-common-workflows.mdx | 78 ++ .../agent-connectors/_setup-mailchimpmcp.mdx | 33 + .../templates/agent-connectors/index.ts | 2 + .../docs/agentkit/connectors/mailchimpmcp.mdx | 89 ++ src/data/agent-connectors/catalog.ts | 5 + src/data/agent-connectors/mailchimpmcp.ts | 915 ++++++++++++++++++ 6 files changed, 1122 insertions(+) create mode 100644 src/components/templates/agent-connectors/_section-after-setup-mailchimpmcp-common-workflows.mdx create mode 100644 src/components/templates/agent-connectors/_setup-mailchimpmcp.mdx create mode 100644 src/content/docs/agentkit/connectors/mailchimpmcp.mdx create mode 100644 src/data/agent-connectors/mailchimpmcp.ts diff --git a/src/components/templates/agent-connectors/_section-after-setup-mailchimpmcp-common-workflows.mdx b/src/components/templates/agent-connectors/_section-after-setup-mailchimpmcp-common-workflows.mdx new file mode 100644 index 000000000..20e0dba13 --- /dev/null +++ b/src/components/templates/agent-connectors/_section-after-setup-mailchimpmcp-common-workflows.mdx @@ -0,0 +1,78 @@ +{/* TODO: stub cloned from _section-after-setup-atlassianmcp-common-workflows.mdx for Mailchimp MCP. Review and update connector-specific references (URLs, scopes, app-registration steps) before merging. */} +export const sectionTitle = 'Common workflows' + +import { Tabs, TabItem, Aside } from '@astrojs/starlight/components' + +### Get your cloud ID + +Most Mailchimp MCP tools require a `cloudId` — the UUID that identifies your Atlassian cloud site. Call `mailchimpmcp_getaccessibleatlassianresources` once to retrieve it, then pass the `id` field value in every subsequent tool call. + + + + + + ```typescript + // Step 1 — get the cloud ID + const resources = await actions.executeTool({ + connectionName: 'mailchimpmcp', + identifier: 'user_123', + toolName: 'mailchimpmcp_getaccessibleatlassianresources', + toolInput: {}, + }); + const cloudId = resources[0].id; + + // Step 2 — use cloudId in subsequent calls + const issue = await actions.executeTool({ + connectionName: 'mailchimpmcp', + identifier: 'user_123', + toolName: 'mailchimpmcp_getjiraissue', + toolInput: { + cloudId, + issueIdOrKey: 'KAN-1', + }, + }); + console.log(issue); + ``` + + + ```python + # Step 1 — get the cloud ID + resources = actions.execute_tool( + connection_name="mailchimpmcp", + identifier="user_123", + tool_name="mailchimpmcp_getaccessibleatlassianresources", + tool_input={}, + ) + cloud_id = resources[0]["id"] + + # Step 2 — use cloud_id in subsequent calls + issue = actions.execute_tool( + connection_name="mailchimpmcp", + identifier="user_123", + tool_name="mailchimpmcp_getjiraissue", + tool_input={ + "cloudId": cloud_id, + "issueIdOrKey": "KAN-1", + }, + ) + print(issue) + ``` + + + +The `mailchimpmcp_getaccessibleatlassianresources` response looks like this: + +```json +[ + { + "id": "a4c9b3e2-1234-5678-abcd-ef0123456789", + "name": "My Company", + "url": "https://mycompany.atlassian.net", + "scopes": ["read:jira-work", "write:jira-work", "read:confluence-content.all"] + } +] +``` + +Use `id` as the `cloudId` parameter. If the user belongs to multiple Atlassian sites, the list contains one entry per site — pick the one matching the target `url`. diff --git a/src/components/templates/agent-connectors/_setup-mailchimpmcp.mdx b/src/components/templates/agent-connectors/_setup-mailchimpmcp.mdx new file mode 100644 index 000000000..917123fdb --- /dev/null +++ b/src/components/templates/agent-connectors/_setup-mailchimpmcp.mdx @@ -0,0 +1,33 @@ +{/* TODO: stub cloned from _setup-atlassianmcp.mdx for Mailchimp MCP. Review and update connector-specific references (URLs, scopes, app-registration steps) before merging. */} +import { Steps, Aside } from '@astrojs/starlight/components' + +Mailchimp MCP uses Dynamic Client Registration (DCR) — no client ID or secret is needed. The only step is registering your Scalekit redirect URI as an allowed domain in Atlassian Administration. + + +1. ### Copy the redirect URI from Scalekit + + In the [Scalekit dashboard](https://app.scalekit.com), go to **AgentKit** > **Connections** > **Create Connection**. Find **Mailchimp MCP** and click **Create**. Copy the redirect URI — it looks like `https:///sso/v1/oauth//callback`. + + {/* TODO: add screenshot — alt: "Copy redirect URI from Scalekit dashboard for Mailchimp MCP", original src: @/assets/docs/agent-connectors/mailchimpmcp/copy-redirect-uri.png */} +2. ### Open the Rovo MCP server settings in Atlassian + + - Go to [admin.atlassian.com](https://admin.atlassian.com) and select your organisation. + - In the left sidebar, expand **Rovo** and click **Rovo access**. + - Click **Rovo MCP server** in the submenu. + - Select the **Domains** tab at the top of the page. + + + +3. ### Add the redirect URI as a domain + + - Under **Your domains**, click **Add domain**. + + {/* TODO: add screenshot — alt: "Your domains section in Mailchimp MCP server administration", original src: @/assets/docs/agent-connectors/mailchimpmcp/add-domain-redirect-uri.png */} + - In the **Add domain** dialog, paste the redirect URI from Scalekit into the **Domain** field. + - Accept the terms and click **Add**. + + {/* TODO: add screenshot — alt: "Add domain dialog in Mailchimp MCP server", original src: @/assets/docs/agent-connectors/mailchimpmcp/add-domain-modal.png */} + Once added, Scalekit automatically registers the OAuth client via DCR and handles token management for every user who authorizes the connection — no further configuration needed. + diff --git a/src/components/templates/agent-connectors/index.ts b/src/components/templates/agent-connectors/index.ts index dca9fb9b1..ff83886ce 100644 --- a/src/components/templates/agent-connectors/index.ts +++ b/src/components/templates/agent-connectors/index.ts @@ -62,6 +62,7 @@ export { default as SetupLinearSection } from './_setup-linear.mdx' export { default as SetupLinklymcpSection } from './_setup-linklymcp.mdx' export { default as SetupLushamcpSection } from './_setup-lushamcp.mdx' export { default as SetupMailchimpSection } from './_setup-mailchimp.mdx' +export { default as SetupMailchimpmcpSection } from './_setup-mailchimpmcp.mdx' export { default as SetupMicrosoftExcelSection } from './_setup-microsoft-excel.mdx' export { default as SetupMicrosoftTeamsSection } from './_setup-microsoft-teams.mdx' export { default as SetupMicrosoftWordSection } from './_setup-microsoft-word.mdx' @@ -162,6 +163,7 @@ export { default as SectionAfterSetupLeadiqCommonWorkflows } from './_section-af export { default as SectionAfterSetupLinearCommonWorkflows } from './_section-after-setup-linear-common-workflows.mdx' export { default as SectionAfterSetupLinklymcpCommonWorkflows } from './_section-after-setup-linklymcp-common-workflows.mdx' export { default as SectionAfterSetupMailchimpCommonWorkflows } from './_section-after-setup-mailchimp-common-workflows.mdx' +export { default as SectionAfterSetupMailchimpmcpCommonWorkflows } from './_section-after-setup-mailchimpmcp-common-workflows.mdx' export { default as SectionAfterSetupMicrosoft365CommonWorkflows } from './_section-after-setup-microsoft365-common-workflows.mdx' export { default as SectionAfterSetupMicrosoftexcelCommonWorkflows } from './_section-after-setup-microsoftexcel-common-workflows.mdx' export { default as SectionAfterSetupMicrosoftteamsCommonWorkflows } from './_section-after-setup-microsoftteams-common-workflows.mdx' diff --git a/src/content/docs/agentkit/connectors/mailchimpmcp.mdx b/src/content/docs/agentkit/connectors/mailchimpmcp.mdx new file mode 100644 index 000000000..eb2cdf986 --- /dev/null +++ b/src/content/docs/agentkit/connectors/mailchimpmcp.mdx @@ -0,0 +1,89 @@ +--- +title: 'Mailchimp MCP connector' +tableOfContents: true +description: 'Connect to Mailchimp''s email marketing and automation platform via Model Context Protocol. Manage audiences, campaigns, automations, and analytics through...' +sidebar: + label: 'Mailchimp MCP' +overviewTitle: 'Quickstart' +connectorIcon: https://cdn.scalekit.com/sk-connect/assets/provider-icons/mailchimp.svg +connectorAuthType: OAuth 2.1 +connectorCategories: [Marketing, Automation, Communication] +head: + - tag: style + content: | + .sl-markdown-content h2 { + font-size: var(--sl-text-xl); + } + .sl-markdown-content h3 { + font-size: var(--sl-text-lg); + } +--- + +import ToolList from '@/components/ToolList.astro' +import { tools } from '@/data/agent-connectors/mailchimpmcp' +import { Steps, Tabs, TabItem } from '@astrojs/starlight/components' +import { AgentKitCredentials } from '@components/templates' +import { SetupMailchimpmcpSection } from '@components/templates' +import { QuickstartGenericOauthSection } from '@components/templates' +import { SectionAfterSetupMailchimpmcpCommonWorkflows } from '@components/templates' + + + +1. ### Install the SDK + + + + ```bash frame="terminal" + npm install @scalekit-sdk/node + ``` + + + ```bash frame="terminal" + pip install scalekit + ``` + + + + Full SDK reference: [Node.js](/agentkit/sdks/node/) | [Python](/agentkit/sdks/python/) + +2. ### Set your credentials + + + +3. ### Set up the connector + + Register your Mailchimp MCP credentials with Scalekit so it handles the token lifecycle. You do this once per environment. + +
+ Dashboard setup steps + + + +
+ +4. ### Authorize and make your first call + + + +
+ +## What you can do + +Connect this agent connector to let your agent: + +- **Note mailchimp add member** — Appends a CRM-style note to a specific member's record +- **Update mailchimp add or, mailchimp** — Adds a new subscriber to an audience or updates an existing one (upsert operation) +- **Member mailchimp archive** — Archives (soft-deletes) a contact from an audience without permanently removing them +- **Create mailchimp** — Creates a new audience (list) in the Mailchimp account with specified settings +- **Delete mailchimp** — Permanently deletes an audience and all associated member data +- **Get mailchimp** — Retrieves account details including plan information, total subscriber count, and account metadata + +## Common workflows + + + +## Tool list + +Use the exact tool names from the **Tool list** below when you call `execute_tool`. If you're not sure which name to use, list the tools available for the current user first. + + diff --git a/src/data/agent-connectors/catalog.ts b/src/data/agent-connectors/catalog.ts index 19ff223f2..f3a88b5f6 100644 --- a/src/data/agent-connectors/catalog.ts +++ b/src/data/agent-connectors/catalog.ts @@ -1039,4 +1039,9 @@ export const catalog: Record = { authType: 'Bearer Token', categories: ['Communication', 'AI'], }, + mailchimpmcp: { + iconUrl: 'https://cdn.scalekit.com/sk-connect/assets/provider-icons/mailchimp.svg', + authType: 'OAuth 2.1', + categories: ['Marketing', 'Automation', 'Communication'], + }, } diff --git a/src/data/agent-connectors/mailchimpmcp.ts b/src/data/agent-connectors/mailchimpmcp.ts new file mode 100644 index 000000000..a90504407 --- /dev/null +++ b/src/data/agent-connectors/mailchimpmcp.ts @@ -0,0 +1,915 @@ +import type { Tool } from '../../types/agent-connectors' + +export const tools: Tool[] = [ + { + name: 'mailchimpmcp_mailchimp_add_member_note', + description: `Appends a CRM-style note to a specific member's record.`, + params: [ + { + name: 'list_id', + type: 'string', + required: true, + description: `The unique identifier for the audience/list`, + }, + { name: 'note', type: 'string', required: true, description: `The note content to add` }, + { + name: 'subscriber_hash', + type: 'string', + required: true, + description: `MD5 hash of the lowercase version of the member's email address`, + }, + ], + }, + { + name: 'mailchimpmcp_mailchimp_add_or_update_member', + description: `Adds a new subscriber to an audience or updates an existing one (upsert operation).`, + params: [ + { + name: 'email_address', + type: 'string', + required: true, + description: `The email address of the subscriber.`, + }, + { + name: 'list_id', + type: 'string', + required: true, + description: `The unique identifier for the audience/list.`, + }, + { + name: 'status', + type: 'string', + required: true, + description: `Subscriber status: subscribed, unsubscribed, cleaned, pending.`, + }, + { + name: 'merge_fields', + type: 'object', + required: false, + description: `Custom merge field values (e.g. FNAME, LNAME).`, + }, + { + name: 'tags', + type: 'array', + required: false, + description: `Tags to assign to the subscriber.`, + }, + ], + }, + { + name: 'mailchimpmcp_mailchimp_archive_member', + description: `Archives (soft-deletes) a contact from an audience without permanently removing them.`, + params: [ + { + name: 'list_id', + type: 'string', + required: true, + description: `The unique identifier for the audience/list.`, + }, + { + name: 'subscriber_hash', + type: 'string', + required: true, + description: `MD5 hash of the lowercase version of the member's email address.`, + }, + ], + }, + { + name: 'mailchimpmcp_mailchimp_create_audience', + description: `Creates a new audience (list) in the Mailchimp account with specified settings.`, + params: [ + { + name: 'campaign_defaults', + type: 'object', + required: true, + description: `Default values for campaigns sent to this list.`, + }, + { + name: 'contact', + type: 'object', + required: true, + description: `Contact information for the list owner.`, + }, + { + name: 'email_type_option', + type: 'boolean', + required: true, + description: `Whether the list supports multiple formats for emails.`, + }, + { + name: 'name', + type: 'string', + required: true, + description: `The name of the new audience.`, + }, + { + name: 'permission_reminder', + type: 'string', + required: true, + description: `Reminder of how the user signed up for the list.`, + }, + ], + }, + { + name: 'mailchimpmcp_mailchimp_create_campaign', + description: `Creates a new campaign draft with specified type, audience, subject line, and sender details.`, + params: [ + { + name: 'type', + type: 'string', + required: true, + description: `Campaign type: regular, plaintext, absplit, rss, variate.`, + }, + { + name: 'recipients', + type: 'object', + required: false, + description: `List settings including list_id and segment conditions.`, + }, + { + name: 'settings', + type: 'object', + required: false, + description: `Campaign settings including subject_line, from_name, reply_to.`, + }, + ], + }, + { + name: 'mailchimpmcp_mailchimp_create_merge_field', + description: `Adds a new custom merge field to an audience for collecting additional subscriber data.`, + params: [ + { + name: 'list_id', + type: 'string', + required: true, + description: `The unique identifier for the audience/list`, + }, + { name: 'name', type: 'string', required: true, description: `The name of the merge field` }, + { + name: 'type', + type: 'string', + required: true, + description: `Field type: text, number, address, phone, date, url, imageurl, radio, dropdown, birthday, zip`, + }, + ], + }, + { + name: 'mailchimpmcp_mailchimp_create_segment', + description: `Builds a static or dynamic segment within an audience based on conditions.`, + params: [ + { + name: 'list_id', + type: 'string', + required: true, + description: `The unique identifier for the audience/list.`, + }, + { name: 'name', type: 'string', required: true, description: `Name of the segment.` }, + { + name: 'options', + type: 'object', + required: false, + description: `Segment conditions (match, conditions array).`, + }, + { + name: 'static_segment', + type: 'array', + required: false, + description: `Email addresses for a static segment.`, + }, + ], + }, + { + name: 'mailchimpmcp_mailchimp_create_template', + description: `Creates a new email template with custom HTML content.`, + params: [ + { + name: 'html', + type: 'string', + required: true, + description: `HTML content of the template.`, + }, + { name: 'name', type: 'string', required: true, description: `Name of the template.` }, + ], + }, + { + name: 'mailchimpmcp_mailchimp_delete_audience', + description: `Permanently deletes an audience and all associated member data.`, + params: [ + { + name: 'list_id', + type: 'string', + required: true, + description: `The unique identifier for the audience/list to delete.`, + }, + ], + }, + { + name: 'mailchimpmcp_mailchimp_delete_campaign', + description: `Removes an unsent campaign from the account permanently.`, + params: [ + { + name: 'campaign_id', + type: 'string', + required: true, + description: `The unique identifier for the campaign to delete.`, + }, + ], + }, + { + name: 'mailchimpmcp_mailchimp_delete_member_permanent', + description: `Permanently and irreversibly removes a contact from an audience.`, + params: [ + { + name: 'list_id', + type: 'string', + required: true, + description: `The unique identifier for the audience/list`, + }, + { + name: 'subscriber_hash', + type: 'string', + required: true, + description: `MD5 hash of the lowercase version of the member's email address`, + }, + ], + }, + { + name: 'mailchimpmcp_mailchimp_delete_segment', + description: `Permanently removes a segment from an audience.`, + params: [ + { + name: 'list_id', + type: 'string', + required: true, + description: `The unique identifier for the audience/list.`, + }, + { + name: 'segment_id', + type: 'integer', + required: true, + description: `The unique identifier for the segment to delete.`, + }, + ], + }, + { + name: 'mailchimpmcp_mailchimp_delete_template', + description: `Permanently removes a template from the account.`, + params: [ + { + name: 'template_id', + type: 'integer', + required: true, + description: `The unique identifier for the template to delete.`, + }, + ], + }, + { + name: 'mailchimpmcp_mailchimp_get_account', + description: `Retrieves account details including plan information, total subscriber count, and account metadata.`, + params: [], + }, + { + name: 'mailchimpmcp_mailchimp_get_audience', + description: `Retrieves detailed information about a specific Mailchimp audience including settings and statistics.`, + params: [ + { + name: 'list_id', + type: 'string', + required: true, + description: `The unique identifier for the audience/list.`, + }, + ], + }, + { + name: 'mailchimpmcp_mailchimp_get_automation', + description: `Retrieves details of a specific Classic Automation workflow.`, + params: [ + { + name: 'workflow_id', + type: 'string', + required: true, + description: `The unique identifier for the automation workflow.`, + }, + ], + }, + { + name: 'mailchimpmcp_mailchimp_get_campaign', + description: `Returns full configuration details for a specific campaign.`, + params: [ + { + name: 'campaign_id', + type: 'string', + required: true, + description: `The unique identifier for the campaign.`, + }, + ], + }, + { + name: 'mailchimpmcp_mailchimp_get_campaign_content', + description: `Retrieves the HTML and plain-text content of a campaign.`, + params: [ + { + name: 'campaign_id', + type: 'string', + required: true, + description: `The unique identifier for the campaign.`, + }, + ], + }, + { + name: 'mailchimpmcp_mailchimp_get_campaign_report', + description: `Returns engagement metrics for a sent campaign including opens, clicks, and bounces.`, + params: [ + { + name: 'campaign_id', + type: 'string', + required: true, + description: `The unique identifier for the campaign.`, + }, + ], + }, + { + name: 'mailchimpmcp_mailchimp_get_campaign_sent_to', + description: `Returns the complete list of recipients a campaign was sent to with delivery status.`, + params: [ + { + name: 'campaign_id', + type: 'string', + required: true, + description: `The unique identifier for the campaign.`, + }, + ], + }, + { + name: 'mailchimpmcp_mailchimp_get_click_details', + description: `Returns per-link click engagement metrics for a campaign.`, + params: [ + { + name: 'campaign_id', + type: 'string', + required: true, + description: `The unique identifier for the campaign.`, + }, + ], + }, + { + name: 'mailchimpmcp_mailchimp_get_domain_performance', + description: `Returns email campaign performance broken down by recipient email domain (e.g. gmail.com, yahoo.com).`, + params: [ + { + name: 'campaign_id', + type: 'string', + required: true, + description: `The unique identifier for the campaign.`, + }, + ], + }, + { + name: 'mailchimpmcp_mailchimp_get_email_activity', + description: `Reports per-recipient delivery status and engagement for a campaign.`, + params: [ + { + name: 'campaign_id', + type: 'string', + required: true, + description: `The unique identifier for the campaign.`, + }, + ], + }, + { + name: 'mailchimpmcp_mailchimp_get_member', + description: `Retrieves full profile information for a specific member in an audience.`, + params: [ + { + name: 'list_id', + type: 'string', + required: true, + description: `The unique identifier for the audience/list.`, + }, + { + name: 'subscriber_hash', + type: 'string', + required: true, + description: `MD5 hash of the lowercase version of the member's email address.`, + }, + ], + }, + { + name: 'mailchimpmcp_mailchimp_get_member_activity', + description: `Retrieves a member's activity history including opens, clicks, and bounce events.`, + params: [ + { + name: 'list_id', + type: 'string', + required: true, + description: `The unique identifier for the audience/list`, + }, + { + name: 'subscriber_hash', + type: 'string', + required: true, + description: `MD5 hash of the lowercase version of the member's email address`, + }, + ], + }, + { + name: 'mailchimpmcp_mailchimp_get_member_notes', + description: `Retrieves CRM-style notes attached to a specific member.`, + params: [ + { + name: 'list_id', + type: 'string', + required: true, + description: `The unique identifier for the audience/list`, + }, + { + name: 'subscriber_hash', + type: 'string', + required: true, + description: `MD5 hash of the lowercase version of the member's email address`, + }, + ], + }, + { + name: 'mailchimpmcp_mailchimp_get_member_tags', + description: `Returns the tags assigned to a specific subscriber.`, + params: [ + { + name: 'list_id', + type: 'string', + required: true, + description: `The unique identifier for the audience/list.`, + }, + { + name: 'subscriber_hash', + type: 'string', + required: true, + description: `MD5 hash of the lowercase version of the member's email address.`, + }, + ], + }, + { + name: 'mailchimpmcp_mailchimp_get_open_details', + description: `Returns details about who opened a campaign and when, including open frequency and timing.`, + params: [ + { + name: 'campaign_id', + type: 'string', + required: true, + description: `The unique identifier for the campaign.`, + }, + ], + }, + { + name: 'mailchimpmcp_mailchimp_get_template', + description: `Fetches the details of a specific email template.`, + params: [ + { + name: 'template_id', + type: 'integer', + required: true, + description: `The unique identifier for the template.`, + }, + ], + }, + { + name: 'mailchimpmcp_mailchimp_get_top_links', + description: `Ranks campaign links by click performance to identify highest-engagement content.`, + params: [ + { + name: 'campaign_id', + type: 'string', + required: true, + description: `The unique identifier for the campaign.`, + }, + ], + }, + { + name: 'mailchimpmcp_mailchimp_list_audiences', + description: `Returns a list of all audiences (lists) in the Mailchimp account with member counts and statistics.`, + params: [ + { + name: 'count', + type: 'integer', + required: false, + description: `Number of records to return (max 1000).`, + }, + { + name: 'offset', + type: 'integer', + required: false, + description: `Number of records to skip for pagination.`, + }, + ], + }, + { + name: 'mailchimpmcp_mailchimp_list_automation_emails', + description: `Returns the emails within a Classic Automation workflow.`, + params: [ + { + name: 'workflow_id', + type: 'string', + required: true, + description: `The unique identifier for the automation workflow.`, + }, + ], + }, + { + name: 'mailchimpmcp_mailchimp_list_automations', + description: `Returns all Classic Automation workflows in the account.`, + params: [], + }, + { + name: 'mailchimpmcp_mailchimp_list_campaign_abuse_reports', + description: `Returns a list of spam complaints received for a campaign.`, + params: [ + { + name: 'campaign_id', + type: 'string', + required: true, + description: `The unique identifier for the campaign.`, + }, + ], + }, + { + name: 'mailchimpmcp_mailchimp_list_campaigns', + description: `Returns a list of campaigns in the Mailchimp account with optional status and audience filtering.`, + params: [ + { + name: 'count', + type: 'integer', + required: false, + description: `Number of records to return`, + }, + { + name: 'list_id', + type: 'string', + required: false, + description: `Filter campaigns by audience`, + }, + { + name: 'offset', + type: 'integer', + required: false, + description: `Number of records to skip for pagination`, + }, + { + name: 'status', + type: 'string', + required: false, + description: `Filter by campaign status: save, paused, schedule, sending, sent`, + }, + ], + }, + { + name: 'mailchimpmcp_mailchimp_list_interest_categories', + description: `Returns interest category groupings for an audience used in subscriber preference management.`, + params: [ + { + name: 'list_id', + type: 'string', + required: true, + description: `The unique identifier for the audience/list`, + }, + ], + }, + { + name: 'mailchimpmcp_mailchimp_list_interests', + description: `Returns interests within a specific interest category for an audience.`, + params: [ + { + name: 'interest_category_id', + type: 'string', + required: true, + description: `The unique identifier for the interest category`, + }, + { + name: 'list_id', + type: 'string', + required: true, + description: `The unique identifier for the audience/list`, + }, + ], + }, + { + name: 'mailchimpmcp_mailchimp_list_members', + description: `Returns a list of members in a specified audience with optional status filtering.`, + params: [ + { + name: 'list_id', + type: 'string', + required: true, + description: `The unique identifier for the audience/list.`, + }, + { + name: 'count', + type: 'integer', + required: false, + description: `Number of records to return.`, + }, + { + name: 'offset', + type: 'integer', + required: false, + description: `Number of records to skip for pagination.`, + }, + { + name: 'status', + type: 'string', + required: false, + description: `Member status filter: subscribed, unsubscribed, cleaned, pending, transactional.`, + }, + ], + }, + { + name: 'mailchimpmcp_mailchimp_list_merge_fields', + description: `Returns all custom merge fields (custom contact data fields) for an audience.`, + params: [ + { + name: 'list_id', + type: 'string', + required: true, + description: `The unique identifier for the audience/list`, + }, + ], + }, + { + name: 'mailchimpmcp_mailchimp_list_segments', + description: `Returns all saved segments in an audience.`, + params: [ + { + name: 'list_id', + type: 'string', + required: true, + description: `The unique identifier for the audience/list.`, + }, + ], + }, + { + name: 'mailchimpmcp_mailchimp_list_tags', + description: `Returns all tags available in a specific audience.`, + params: [ + { + name: 'list_id', + type: 'string', + required: true, + description: `The unique identifier for the audience/list.`, + }, + ], + }, + { + name: 'mailchimpmcp_mailchimp_list_templates', + description: `Returns available email templates in the account.`, + params: [ + { + name: 'count', + type: 'integer', + required: false, + description: `Number of records to return.`, + }, + { + name: 'offset', + type: 'integer', + required: false, + description: `Number of records to skip for pagination.`, + }, + ], + }, + { + name: 'mailchimpmcp_mailchimp_pause_automation', + description: `Pauses a Classic Automation workflow, halting email delivery until restarted.`, + params: [ + { + name: 'workflow_id', + type: 'string', + required: true, + description: `The unique identifier for the automation workflow.`, + }, + ], + }, + { + name: 'mailchimpmcp_mailchimp_ping', + description: `Validates API key connectivity and checks that the Mailchimp account is reachable.`, + params: [], + }, + { + name: 'mailchimpmcp_mailchimp_schedule_campaign', + description: `Queues a campaign for future delivery at a specified date and time.`, + params: [ + { + name: 'campaign_id', + type: 'string', + required: true, + description: `The unique identifier for the campaign.`, + }, + { + name: 'schedule_time', + type: 'string', + required: true, + description: `UTC datetime for scheduled delivery (ISO 8601 format).`, + }, + ], + }, + { + name: 'mailchimpmcp_mailchimp_search_members', + description: `Searches across audiences for members matching a query by email address or name.`, + params: [ + { + name: 'query', + type: 'string', + required: true, + description: `Search query string (email or name)`, + }, + { + name: 'list_id', + type: 'string', + required: false, + description: `Optional: restrict search to a specific audience`, + }, + ], + }, + { + name: 'mailchimpmcp_mailchimp_send_campaign', + description: `Dispatches a campaign immediately to all recipients. This action is irreversible.`, + params: [ + { + name: 'campaign_id', + type: 'string', + required: true, + description: `The unique identifier for the campaign to send.`, + }, + ], + }, + { + name: 'mailchimpmcp_mailchimp_send_test_email', + description: `Sends a preview test email to specified recipients before live distribution.`, + params: [ + { + name: 'campaign_id', + type: 'string', + required: true, + description: `The unique identifier for the campaign.`, + }, + { + name: 'send_type', + type: 'string', + required: true, + description: `Test type: html or plaintext.`, + }, + { + name: 'test_emails', + type: 'array', + required: true, + description: `Email addresses to send the test to.`, + }, + ], + }, + { + name: 'mailchimpmcp_mailchimp_start_automation', + description: `Activates a Classic Automation workflow so it begins processing.`, + params: [ + { + name: 'workflow_id', + type: 'string', + required: true, + description: `The unique identifier for the automation workflow.`, + }, + ], + }, + { + name: 'mailchimpmcp_mailchimp_unschedule_campaign', + description: `Cancels a previously scheduled campaign, returning it to draft status.`, + params: [ + { + name: 'campaign_id', + type: 'string', + required: true, + description: `The unique identifier for the scheduled campaign.`, + }, + ], + }, + { + name: 'mailchimpmcp_mailchimp_update_audience', + description: `Updates an existing audience's settings such as name and campaign defaults.`, + params: [ + { + name: 'list_id', + type: 'string', + required: true, + description: `The unique identifier for the audience/list.`, + }, + { name: 'name', type: 'string', required: false, description: `New name for the audience.` }, + ], + }, + { + name: 'mailchimpmcp_mailchimp_update_campaign', + description: `Modifies an existing campaign's settings including subject line, sender info, and audience targeting.`, + params: [ + { + name: 'campaign_id', + type: 'string', + required: true, + description: `The unique identifier for the campaign.`, + }, + { + name: 'recipients', + type: 'object', + required: false, + description: `Audience targeting settings.`, + }, + { + name: 'settings', + type: 'object', + required: false, + description: `Campaign settings to update (subject_line, from_name, reply_to, etc.).`, + }, + ], + }, + { + name: 'mailchimpmcp_mailchimp_update_campaign_content', + description: `Sets or modifies the HTML and plain-text content of a campaign draft.`, + params: [ + { + name: 'campaign_id', + type: 'string', + required: true, + description: `The unique identifier for the campaign.`, + }, + { + name: 'html', + type: 'string', + required: false, + description: `The HTML content for the campaign.`, + }, + { + name: 'plain_text', + type: 'string', + required: false, + description: `The plain-text content for the campaign.`, + }, + { + name: 'template', + type: 'object', + required: false, + description: `Template ID and section content to use for the campaign.`, + }, + ], + }, + { + name: 'mailchimpmcp_mailchimp_update_member_tags', + description: `Adds or removes tags for a specific subscriber in an audience.`, + params: [ + { + name: 'list_id', + type: 'string', + required: true, + description: `The unique identifier for the audience/list.`, + }, + { + name: 'subscriber_hash', + type: 'string', + required: true, + description: `MD5 hash of the lowercase version of the member's email address.`, + }, + { + name: 'tags', + type: 'array', + required: true, + description: `Tags to add (active) or remove (inactive).`, + }, + ], + }, + { + name: 'mailchimpmcp_mailchimp_update_segment', + description: `Modifies an existing audience segment's name or conditions.`, + params: [ + { + name: 'list_id', + type: 'string', + required: true, + description: `The unique identifier for the audience/list.`, + }, + { + name: 'segment_id', + type: 'integer', + required: true, + description: `The unique identifier for the segment.`, + }, + { name: 'name', type: 'string', required: false, description: `New name for the segment.` }, + ], + }, + { + name: 'mailchimpmcp_mailchimp_update_template', + description: `Modifies an existing template's name or HTML content.`, + params: [ + { + name: 'template_id', + type: 'integer', + required: true, + description: `The unique identifier for the template.`, + }, + { name: 'html', type: 'string', required: false, description: `Updated HTML content.` }, + { name: 'name', type: 'string', required: false, description: `New name for the template.` }, + ], + }, +]