Mailchimp MCP connector
OAuth 2.1MarketingAutomationCommunicationConnect to Mailchimp's email marketing and automation platform via Model Context Protocol. Manage audiences, campaigns, automations, and analytics through...
Mailchimp MCP connector
-
Install the SDK
Section titled “Install the SDK”Terminal window npm install @scalekit-sdk/nodeTerminal window pip install scalekit -
Set your credentials
Section titled “Set your credentials”Add your Scalekit credentials to your
.envfile. Find values in app.scalekit.com > Developers > API Credentials..env SCALEKIT_ENVIRONMENT_URL=<your-environment-url>SCALEKIT_CLIENT_ID=<your-client-id>SCALEKIT_CLIENT_SECRET=<your-client-secret> -
Set up the connector
Section titled “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
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.
-
Copy the redirect URI from Scalekit
In the Scalekit dashboard, go to AgentKit > Connections > Create Connection. Find Mailchimp MCP and click Create. Copy the redirect URI — it looks like
https://<SCALEKIT_ENVIRONMENT_URL>/sso/v1/oauth/<CONNECTION_ID>/callback. -
Open the Rovo MCP server settings in Atlassian
- Go to 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.
-
Add the redirect URI as a domain
- Under Your domains, click Add domain.
- In the Add domain dialog, paste the redirect URI from Scalekit into the Domain field.
- Accept the terms and click Add.
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.
-
-
Authorize and make your first call
Section titled “Authorize and make your first call”quickstart.ts import { ScalekitClient } from '@scalekit-sdk/node'import 'dotenv/config'const scalekit = new ScalekitClient(process.env.SCALEKIT_ENV_URL,process.env.SCALEKIT_CLIENT_ID,process.env.SCALEKIT_CLIENT_SECRET,)const actions = scalekit.actionsconst connector = 'mailchimpmcp'const identifier = 'user_123'// Generate an authorization link for the userconst { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })console.log('Authorize Mailchimp MCP:', link)process.stdout.write('Press Enter after authorizing...')await new Promise(r => process.stdin.once('data', r))// Make your first callconst result = await actions.executeTool({connector,identifier,toolName: 'mailchimpmcp_mailchimp_get_account',toolInput: {},})console.log(result)quickstart.py import osfrom scalekit.client import ScalekitClientfrom dotenv import load_dotenvload_dotenv()scalekit_client = ScalekitClient(env_url=os.getenv("SCALEKIT_ENV_URL"),client_id=os.getenv("SCALEKIT_CLIENT_ID"),client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),)actions = scalekit_client.actionsconnection_name = "mailchimpmcp"identifier = "user_123"# Generate an authorization link for the userlink_response = actions.get_authorization_link(connection_name=connection_name,identifier=identifier,)print("Authorize Mailchimp MCP:", link_response.link)input("Press Enter after authorizing...")# Make your first callresult = actions.execute_tool(tool_input={},tool_name="mailchimpmcp_mailchimp_get_account",connection_name=connection_name,identifier=identifier,)print(result)
What you can do
Section titled “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
Section titled “Common workflows”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.
// Step 1 — get the cloud IDconst resources = await actions.executeTool({ connectionName: 'mailchimpmcp', identifier: 'user_123', toolName: 'mailchimpmcp_getaccessibleatlassianresources', toolInput: {},});const cloudId = resources[0].id;
// Step 2 — use cloudId in subsequent callsconst issue = await actions.executeTool({ connectionName: 'mailchimpmcp', identifier: 'user_123', toolName: 'mailchimpmcp_getjiraissue', toolInput: { cloudId, issueIdOrKey: 'KAN-1', },});console.log(issue);# Step 1 — get the cloud IDresources = 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 callsissue = 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:
[ { "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.
Tool list
Section titled “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.
mailchimpmcp_mailchimp_add_member_note#Appends a CRM-style note to a specific member's record.3 params
Appends a CRM-style note to a specific member's record.
list_idstringrequiredThe unique identifier for the audience/listnotestringrequiredThe note content to addsubscriber_hashstringrequiredMD5 hash of the lowercase version of the member's email addressmailchimpmcp_mailchimp_add_or_update_member#Adds a new subscriber to an audience or updates an existing one (upsert operation).5 params
Adds a new subscriber to an audience or updates an existing one (upsert operation).
email_addressstringrequiredThe email address of the subscriber.list_idstringrequiredThe unique identifier for the audience/list.statusstringrequiredSubscriber status: subscribed, unsubscribed, cleaned, pending.merge_fieldsobjectoptionalCustom merge field values (e.g. FNAME, LNAME).tagsarrayoptionalTags to assign to the subscriber.mailchimpmcp_mailchimp_archive_member#Archives (soft-deletes) a contact from an audience without permanently removing them.2 params
Archives (soft-deletes) a contact from an audience without permanently removing them.
list_idstringrequiredThe unique identifier for the audience/list.subscriber_hashstringrequiredMD5 hash of the lowercase version of the member's email address.mailchimpmcp_mailchimp_create_audience#Creates a new audience (list) in the Mailchimp account with specified settings.5 params
Creates a new audience (list) in the Mailchimp account with specified settings.
campaign_defaultsobjectrequiredDefault values for campaigns sent to this list.contactobjectrequiredContact information for the list owner.email_type_optionbooleanrequiredWhether the list supports multiple formats for emails.namestringrequiredThe name of the new audience.permission_reminderstringrequiredReminder of how the user signed up for the list.mailchimpmcp_mailchimp_create_campaign#Creates a new campaign draft with specified type, audience, subject line, and sender details.3 params
Creates a new campaign draft with specified type, audience, subject line, and sender details.
typestringrequiredCampaign type: regular, plaintext, absplit, rss, variate.recipientsobjectoptionalList settings including list_id and segment conditions.settingsobjectoptionalCampaign settings including subject_line, from_name, reply_to.mailchimpmcp_mailchimp_create_merge_field#Adds a new custom merge field to an audience for collecting additional subscriber data.3 params
Adds a new custom merge field to an audience for collecting additional subscriber data.
list_idstringrequiredThe unique identifier for the audience/listnamestringrequiredThe name of the merge fieldtypestringrequiredField type: text, number, address, phone, date, url, imageurl, radio, dropdown, birthday, zipmailchimpmcp_mailchimp_create_segment#Builds a static or dynamic segment within an audience based on conditions.4 params
Builds a static or dynamic segment within an audience based on conditions.
list_idstringrequiredThe unique identifier for the audience/list.namestringrequiredName of the segment.optionsobjectoptionalSegment conditions (match, conditions array).static_segmentarrayoptionalEmail addresses for a static segment.mailchimpmcp_mailchimp_create_template#Creates a new email template with custom HTML content.2 params
Creates a new email template with custom HTML content.
htmlstringrequiredHTML content of the template.namestringrequiredName of the template.mailchimpmcp_mailchimp_delete_audience#Permanently deletes an audience and all associated member data.1 param
Permanently deletes an audience and all associated member data.
list_idstringrequiredThe unique identifier for the audience/list to delete.mailchimpmcp_mailchimp_delete_campaign#Removes an unsent campaign from the account permanently.1 param
Removes an unsent campaign from the account permanently.
campaign_idstringrequiredThe unique identifier for the campaign to delete.mailchimpmcp_mailchimp_delete_member_permanent#Permanently and irreversibly removes a contact from an audience.2 params
Permanently and irreversibly removes a contact from an audience.
list_idstringrequiredThe unique identifier for the audience/listsubscriber_hashstringrequiredMD5 hash of the lowercase version of the member's email addressmailchimpmcp_mailchimp_delete_segment#Permanently removes a segment from an audience.2 params
Permanently removes a segment from an audience.
list_idstringrequiredThe unique identifier for the audience/list.segment_idintegerrequiredThe unique identifier for the segment to delete.mailchimpmcp_mailchimp_delete_template#Permanently removes a template from the account.1 param
Permanently removes a template from the account.
template_idintegerrequiredThe unique identifier for the template to delete.mailchimpmcp_mailchimp_get_account#Retrieves account details including plan information, total subscriber count, and account metadata.0 params
Retrieves account details including plan information, total subscriber count, and account metadata.
mailchimpmcp_mailchimp_get_audience#Retrieves detailed information about a specific Mailchimp audience including settings and statistics.1 param
Retrieves detailed information about a specific Mailchimp audience including settings and statistics.
list_idstringrequiredThe unique identifier for the audience/list.mailchimpmcp_mailchimp_get_automation#Retrieves details of a specific Classic Automation workflow.1 param
Retrieves details of a specific Classic Automation workflow.
workflow_idstringrequiredThe unique identifier for the automation workflow.mailchimpmcp_mailchimp_get_campaign#Returns full configuration details for a specific campaign.1 param
Returns full configuration details for a specific campaign.
campaign_idstringrequiredThe unique identifier for the campaign.mailchimpmcp_mailchimp_get_campaign_content#Retrieves the HTML and plain-text content of a campaign.1 param
Retrieves the HTML and plain-text content of a campaign.
campaign_idstringrequiredThe unique identifier for the campaign.mailchimpmcp_mailchimp_get_campaign_report#Returns engagement metrics for a sent campaign including opens, clicks, and bounces.1 param
Returns engagement metrics for a sent campaign including opens, clicks, and bounces.
campaign_idstringrequiredThe unique identifier for the campaign.mailchimpmcp_mailchimp_get_campaign_sent_to#Returns the complete list of recipients a campaign was sent to with delivery status.1 param
Returns the complete list of recipients a campaign was sent to with delivery status.
campaign_idstringrequiredThe unique identifier for the campaign.mailchimpmcp_mailchimp_get_click_details#Returns per-link click engagement metrics for a campaign.1 param
Returns per-link click engagement metrics for a campaign.
campaign_idstringrequiredThe unique identifier for the campaign.mailchimpmcp_mailchimp_get_domain_performance#Returns email campaign performance broken down by recipient email domain (e.g. gmail.com, yahoo.com).1 param
Returns email campaign performance broken down by recipient email domain (e.g. gmail.com, yahoo.com).
campaign_idstringrequiredThe unique identifier for the campaign.mailchimpmcp_mailchimp_get_email_activity#Reports per-recipient delivery status and engagement for a campaign.1 param
Reports per-recipient delivery status and engagement for a campaign.
campaign_idstringrequiredThe unique identifier for the campaign.mailchimpmcp_mailchimp_get_member#Retrieves full profile information for a specific member in an audience.2 params
Retrieves full profile information for a specific member in an audience.
list_idstringrequiredThe unique identifier for the audience/list.subscriber_hashstringrequiredMD5 hash of the lowercase version of the member's email address.mailchimpmcp_mailchimp_get_member_activity#Retrieves a member's activity history including opens, clicks, and bounce events.2 params
Retrieves a member's activity history including opens, clicks, and bounce events.
list_idstringrequiredThe unique identifier for the audience/listsubscriber_hashstringrequiredMD5 hash of the lowercase version of the member's email addressmailchimpmcp_mailchimp_get_member_notes#Retrieves CRM-style notes attached to a specific member.2 params
Retrieves CRM-style notes attached to a specific member.
list_idstringrequiredThe unique identifier for the audience/listsubscriber_hashstringrequiredMD5 hash of the lowercase version of the member's email addressmailchimpmcp_mailchimp_get_member_tags#Returns the tags assigned to a specific subscriber.2 params
Returns the tags assigned to a specific subscriber.
list_idstringrequiredThe unique identifier for the audience/list.subscriber_hashstringrequiredMD5 hash of the lowercase version of the member's email address.mailchimpmcp_mailchimp_get_open_details#Returns details about who opened a campaign and when, including open frequency and timing.1 param
Returns details about who opened a campaign and when, including open frequency and timing.
campaign_idstringrequiredThe unique identifier for the campaign.mailchimpmcp_mailchimp_get_template#Fetches the details of a specific email template.1 param
Fetches the details of a specific email template.
template_idintegerrequiredThe unique identifier for the template.mailchimpmcp_mailchimp_get_top_links#Ranks campaign links by click performance to identify highest-engagement content.1 param
Ranks campaign links by click performance to identify highest-engagement content.
campaign_idstringrequiredThe unique identifier for the campaign.mailchimpmcp_mailchimp_list_audiences#Returns a list of all audiences (lists) in the Mailchimp account with member counts and statistics.2 params
Returns a list of all audiences (lists) in the Mailchimp account with member counts and statistics.
countintegeroptionalNumber of records to return (max 1000).offsetintegeroptionalNumber of records to skip for pagination.mailchimpmcp_mailchimp_list_automation_emails#Returns the emails within a Classic Automation workflow.1 param
Returns the emails within a Classic Automation workflow.
workflow_idstringrequiredThe unique identifier for the automation workflow.mailchimpmcp_mailchimp_list_automations#Returns all Classic Automation workflows in the account.0 params
Returns all Classic Automation workflows in the account.
mailchimpmcp_mailchimp_list_campaign_abuse_reports#Returns a list of spam complaints received for a campaign.1 param
Returns a list of spam complaints received for a campaign.
campaign_idstringrequiredThe unique identifier for the campaign.mailchimpmcp_mailchimp_list_campaigns#Returns a list of campaigns in the Mailchimp account with optional status and audience filtering.4 params
Returns a list of campaigns in the Mailchimp account with optional status and audience filtering.
countintegeroptionalNumber of records to returnlist_idstringoptionalFilter campaigns by audienceoffsetintegeroptionalNumber of records to skip for paginationstatusstringoptionalFilter by campaign status: save, paused, schedule, sending, sentmailchimpmcp_mailchimp_list_interest_categories#Returns interest category groupings for an audience used in subscriber preference management.1 param
Returns interest category groupings for an audience used in subscriber preference management.
list_idstringrequiredThe unique identifier for the audience/listmailchimpmcp_mailchimp_list_interests#Returns interests within a specific interest category for an audience.2 params
Returns interests within a specific interest category for an audience.
interest_category_idstringrequiredThe unique identifier for the interest categorylist_idstringrequiredThe unique identifier for the audience/listmailchimpmcp_mailchimp_list_members#Returns a list of members in a specified audience with optional status filtering.4 params
Returns a list of members in a specified audience with optional status filtering.
list_idstringrequiredThe unique identifier for the audience/list.countintegeroptionalNumber of records to return.offsetintegeroptionalNumber of records to skip for pagination.statusstringoptionalMember status filter: subscribed, unsubscribed, cleaned, pending, transactional.mailchimpmcp_mailchimp_list_merge_fields#Returns all custom merge fields (custom contact data fields) for an audience.1 param
Returns all custom merge fields (custom contact data fields) for an audience.
list_idstringrequiredThe unique identifier for the audience/listmailchimpmcp_mailchimp_list_segments#Returns all saved segments in an audience.1 param
Returns all saved segments in an audience.
list_idstringrequiredThe unique identifier for the audience/list.mailchimpmcp_mailchimp_list_tags#Returns all tags available in a specific audience.1 param
Returns all tags available in a specific audience.
list_idstringrequiredThe unique identifier for the audience/list.mailchimpmcp_mailchimp_list_templates#Returns available email templates in the account.2 params
Returns available email templates in the account.
countintegeroptionalNumber of records to return.offsetintegeroptionalNumber of records to skip for pagination.mailchimpmcp_mailchimp_pause_automation#Pauses a Classic Automation workflow, halting email delivery until restarted.1 param
Pauses a Classic Automation workflow, halting email delivery until restarted.
workflow_idstringrequiredThe unique identifier for the automation workflow.mailchimpmcp_mailchimp_ping#Validates API key connectivity and checks that the Mailchimp account is reachable.0 params
Validates API key connectivity and checks that the Mailchimp account is reachable.
mailchimpmcp_mailchimp_schedule_campaign#Queues a campaign for future delivery at a specified date and time.2 params
Queues a campaign for future delivery at a specified date and time.
campaign_idstringrequiredThe unique identifier for the campaign.schedule_timestringrequiredUTC datetime for scheduled delivery (ISO 8601 format).mailchimpmcp_mailchimp_search_members#Searches across audiences for members matching a query by email address or name.2 params
Searches across audiences for members matching a query by email address or name.
querystringrequiredSearch query string (email or name)list_idstringoptionalOptional: restrict search to a specific audiencemailchimpmcp_mailchimp_send_campaign#Dispatches a campaign immediately to all recipients. This action is irreversible.1 param
Dispatches a campaign immediately to all recipients. This action is irreversible.
campaign_idstringrequiredThe unique identifier for the campaign to send.mailchimpmcp_mailchimp_send_test_email#Sends a preview test email to specified recipients before live distribution.3 params
Sends a preview test email to specified recipients before live distribution.
campaign_idstringrequiredThe unique identifier for the campaign.send_typestringrequiredTest type: html or plaintext.test_emailsarrayrequiredEmail addresses to send the test to.mailchimpmcp_mailchimp_start_automation#Activates a Classic Automation workflow so it begins processing.1 param
Activates a Classic Automation workflow so it begins processing.
workflow_idstringrequiredThe unique identifier for the automation workflow.mailchimpmcp_mailchimp_unschedule_campaign#Cancels a previously scheduled campaign, returning it to draft status.1 param
Cancels a previously scheduled campaign, returning it to draft status.
campaign_idstringrequiredThe unique identifier for the scheduled campaign.mailchimpmcp_mailchimp_update_audience#Updates an existing audience's settings such as name and campaign defaults.2 params
Updates an existing audience's settings such as name and campaign defaults.
list_idstringrequiredThe unique identifier for the audience/list.namestringoptionalNew name for the audience.mailchimpmcp_mailchimp_update_campaign#Modifies an existing campaign's settings including subject line, sender info, and audience targeting.3 params
Modifies an existing campaign's settings including subject line, sender info, and audience targeting.
campaign_idstringrequiredThe unique identifier for the campaign.recipientsobjectoptionalAudience targeting settings.settingsobjectoptionalCampaign settings to update (subject_line, from_name, reply_to, etc.).mailchimpmcp_mailchimp_update_campaign_content#Sets or modifies the HTML and plain-text content of a campaign draft.4 params
Sets or modifies the HTML and plain-text content of a campaign draft.
campaign_idstringrequiredThe unique identifier for the campaign.htmlstringoptionalThe HTML content for the campaign.plain_textstringoptionalThe plain-text content for the campaign.templateobjectoptionalTemplate ID and section content to use for the campaign.mailchimpmcp_mailchimp_update_member_tags#Adds or removes tags for a specific subscriber in an audience.3 params
Adds or removes tags for a specific subscriber in an audience.
list_idstringrequiredThe unique identifier for the audience/list.subscriber_hashstringrequiredMD5 hash of the lowercase version of the member's email address.tagsarrayrequiredTags to add (active) or remove (inactive).mailchimpmcp_mailchimp_update_segment#Modifies an existing audience segment's name or conditions.3 params
Modifies an existing audience segment's name or conditions.
list_idstringrequiredThe unique identifier for the audience/list.segment_idintegerrequiredThe unique identifier for the segment.namestringoptionalNew name for the segment.mailchimpmcp_mailchimp_update_template#Modifies an existing template's name or HTML content.3 params
Modifies an existing template's name or HTML content.
template_idintegerrequiredThe unique identifier for the template.htmlstringoptionalUpdated HTML content.namestringoptionalNew name for the template.