mailchimp-mcp 0.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- mailchimp_mcp-0.1.0/.claude/settings.local.json +13 -0
- mailchimp_mcp-0.1.0/.github/CODEOWNERS +1 -0
- mailchimp_mcp-0.1.0/.gitignore +11 -0
- mailchimp_mcp-0.1.0/Dockerfile +12 -0
- mailchimp_mcp-0.1.0/LICENSE +21 -0
- mailchimp_mcp-0.1.0/PKG-INFO +331 -0
- mailchimp_mcp-0.1.0/README.md +306 -0
- mailchimp_mcp-0.1.0/glama.json +4 -0
- mailchimp_mcp-0.1.0/pyproject.toml +41 -0
- mailchimp_mcp-0.1.0/src/mailchimp_mcp_server/__init__.py +3 -0
- mailchimp_mcp-0.1.0/src/mailchimp_mcp_server/server.py +1228 -0
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"permissions": {
|
|
3
|
+
"allow": [
|
|
4
|
+
"Bash(python -m build 2>&1)",
|
|
5
|
+
"Bash(pip install build 2>&1)",
|
|
6
|
+
"Bash(twine upload dist/* 2>&1)",
|
|
7
|
+
"Bash(pip install twine && twine upload dist/* 2>&1)",
|
|
8
|
+
"Bash(twine upload dist/* -u __token__ -p pypi-AgEIcHlwaS5vcmcCJDU2YjZiZTQwLWVjMjMtNDhhMC1iMzVlLTI0NjYwNDUxMDYxYQACKlszLCIzODg4OThlYy1jYTBkLTRhY2EtODZhMy1jMDljMTZkZTRjZjMiXQAABiDnA9MT7fsAsJ1O8xcB_jhsMk3yEnNfCgRaqeGOqdeRDA 2>&1)",
|
|
9
|
+
"Bash(pip index versions mailchimp-mcp 2>&1)",
|
|
10
|
+
"Bash(rm -rf dist/ && python -m build 2>&1)"
|
|
11
|
+
]
|
|
12
|
+
}
|
|
13
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
* @damientilman
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Damien Tilman
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,331 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: mailchimp-mcp
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: MCP server for the Mailchimp Marketing API — access campaigns, audiences, reports, and more from Claude.
|
|
5
|
+
Project-URL: Homepage, https://github.com/damientilman/mailchimp-mcp-server
|
|
6
|
+
Project-URL: Repository, https://github.com/damientilman/mailchimp-mcp-server
|
|
7
|
+
Project-URL: Issues, https://github.com/damientilman/mailchimp-mcp-server/issues
|
|
8
|
+
Author-email: Damien Tilman <damien@tilman.marketing>
|
|
9
|
+
License-Expression: MIT
|
|
10
|
+
License-File: LICENSE
|
|
11
|
+
Keywords: ai,claude,email-marketing,mailchimp,mcp,model-context-protocol
|
|
12
|
+
Classifier: Development Status :: 4 - Beta
|
|
13
|
+
Classifier: Intended Audience :: Developers
|
|
14
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
15
|
+
Classifier: Programming Language :: Python :: 3
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
20
|
+
Classifier: Topic :: Communications :: Email
|
|
21
|
+
Requires-Python: >=3.10
|
|
22
|
+
Requires-Dist: mcp[cli]>=1.0.0
|
|
23
|
+
Requires-Dist: requests>=2.28.0
|
|
24
|
+
Description-Content-Type: text/markdown
|
|
25
|
+
|
|
26
|
+
# Mailchimp MCP Server
|
|
27
|
+
|
|
28
|
+
[](https://opensource.org/licenses/MIT)
|
|
29
|
+
[](https://www.python.org/downloads/)
|
|
30
|
+
[](https://modelcontextprotocol.io)
|
|
31
|
+
|
|
32
|
+
A [Model Context Protocol (MCP)](https://modelcontextprotocol.io) server for the [Mailchimp Marketing API](https://mailchimp.com/developer/marketing/). 53 tools to query and manage your Mailchimp account directly from Claude.
|
|
33
|
+
|
|
34
|
+
<a href="https://glama.ai/mcp/servers/@damientilman/mailchimp-mcp">
|
|
35
|
+
<img width="380" height="200" src="https://glama.ai/mcp/servers/@damientilman/mailchimp-mcp/badge" alt="Mailchimp MCP server" />
|
|
36
|
+
</a>
|
|
37
|
+
|
|
38
|
+
## Features
|
|
39
|
+
|
|
40
|
+
**Read**
|
|
41
|
+
- **Campaigns** - List, search, and inspect campaign details
|
|
42
|
+
- **Reports** - Open/click rates, bounces, per-link clicks, domain performance, unsubscribe details
|
|
43
|
+
- **Email activity** - Per-recipient open/click tracking, member activity history
|
|
44
|
+
- **Audiences** - Browse audiences, members, segments, tags, and growth history
|
|
45
|
+
- **Automations** - List workflows, inspect emails in a workflow, view queues
|
|
46
|
+
- **Templates** - Browse available email templates
|
|
47
|
+
- **Landing pages** - List and inspect landing pages
|
|
48
|
+
- **E-commerce** - Stores, orders, products, customers (requires e-commerce integration)
|
|
49
|
+
- **Campaign folders** - Browse folder organization
|
|
50
|
+
- **Batch operations** - Monitor bulk operation status
|
|
51
|
+
|
|
52
|
+
**Write**
|
|
53
|
+
- **Members** - Add, update, unsubscribe, delete, and tag contacts
|
|
54
|
+
- **Campaigns** - Create drafts, set HTML content, schedule, unschedule, duplicate, delete
|
|
55
|
+
- **Segments/Tags** - Create, delete, add/remove members
|
|
56
|
+
- **Automations** - Pause and start automation workflows
|
|
57
|
+
- **Batch** - Run bulk API operations in a single request
|
|
58
|
+
|
|
59
|
+
## Prerequisites
|
|
60
|
+
|
|
61
|
+
- Python 3.10+
|
|
62
|
+
- A [Mailchimp API key](https://mailchimp.com/help/about-api-keys/)
|
|
63
|
+
|
|
64
|
+
## Installation
|
|
65
|
+
|
|
66
|
+
### Using `uvx` (recommended)
|
|
67
|
+
|
|
68
|
+
No installation needed — run directly:
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
uvx mailchimp-mcp-server
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### Using `pip`
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
pip install mailchimp-mcp-server
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
Then run:
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
mailchimp-mcp-server
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### From source
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
git clone https://github.com/damientilman/mailchimp-mcp-server.git
|
|
90
|
+
cd mailchimp-mcp-server
|
|
91
|
+
python -m venv .venv
|
|
92
|
+
source .venv/bin/activate
|
|
93
|
+
pip install -e .
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
## Configuration
|
|
97
|
+
|
|
98
|
+
| Variable | Required | Description |
|
|
99
|
+
|---|---|---|
|
|
100
|
+
| `MAILCHIMP_API_KEY` | Yes | Your Mailchimp API key (format: `<key>-<dc>`, e.g. `abc123-us8`) |
|
|
101
|
+
| `MAILCHIMP_READ_ONLY` | No | Set to `true` to disable all write operations (default: `false`) |
|
|
102
|
+
| `MAILCHIMP_DRY_RUN` | No | Set to `true` to preview write operations without executing them (default: `false`) |
|
|
103
|
+
|
|
104
|
+
The datacenter (`us8`, `us21`, etc.) is automatically extracted from the key.
|
|
105
|
+
|
|
106
|
+
### Safety modes
|
|
107
|
+
|
|
108
|
+
**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.
|
|
109
|
+
|
|
110
|
+
**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.
|
|
111
|
+
|
|
112
|
+
### Claude Desktop
|
|
113
|
+
|
|
114
|
+
Add this to your `claude_desktop_config.json`:
|
|
115
|
+
|
|
116
|
+
<details>
|
|
117
|
+
<summary>Using uvx (recommended)</summary>
|
|
118
|
+
|
|
119
|
+
```json
|
|
120
|
+
{
|
|
121
|
+
"mcpServers": {
|
|
122
|
+
"mailchimp": {
|
|
123
|
+
"command": "uvx",
|
|
124
|
+
"args": ["mailchimp-mcp-server"],
|
|
125
|
+
"env": {
|
|
126
|
+
"MAILCHIMP_API_KEY": "your-api-key-here"
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
```
|
|
132
|
+
</details>
|
|
133
|
+
|
|
134
|
+
<details>
|
|
135
|
+
<summary>Using pip install</summary>
|
|
136
|
+
|
|
137
|
+
```json
|
|
138
|
+
{
|
|
139
|
+
"mcpServers": {
|
|
140
|
+
"mailchimp": {
|
|
141
|
+
"command": "mailchimp-mcp-server",
|
|
142
|
+
"env": {
|
|
143
|
+
"MAILCHIMP_API_KEY": "your-api-key-here"
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
```
|
|
149
|
+
</details>
|
|
150
|
+
|
|
151
|
+
<details>
|
|
152
|
+
<summary>Read-only mode (recommended for exploration)</summary>
|
|
153
|
+
|
|
154
|
+
```json
|
|
155
|
+
{
|
|
156
|
+
"mcpServers": {
|
|
157
|
+
"mailchimp": {
|
|
158
|
+
"command": "uvx",
|
|
159
|
+
"args": ["mailchimp-mcp-server"],
|
|
160
|
+
"env": {
|
|
161
|
+
"MAILCHIMP_API_KEY": "your-api-key-here",
|
|
162
|
+
"MAILCHIMP_READ_ONLY": "true"
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
```
|
|
168
|
+
</details>
|
|
169
|
+
|
|
170
|
+
### Claude Code
|
|
171
|
+
|
|
172
|
+
```bash
|
|
173
|
+
claude mcp add mailchimp \
|
|
174
|
+
-s user \
|
|
175
|
+
-e MAILCHIMP_API_KEY=your-api-key-here \
|
|
176
|
+
-- uvx mailchimp-mcp-server
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
For read-only mode:
|
|
180
|
+
|
|
181
|
+
```bash
|
|
182
|
+
claude mcp add mailchimp \
|
|
183
|
+
-s user \
|
|
184
|
+
-e MAILCHIMP_API_KEY=your-api-key-here \
|
|
185
|
+
-e MAILCHIMP_READ_ONLY=true \
|
|
186
|
+
-- uvx mailchimp-mcp-server
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
## Available Tools
|
|
190
|
+
|
|
191
|
+
### Account
|
|
192
|
+
|
|
193
|
+
| Tool | Description |
|
|
194
|
+
|---|---|
|
|
195
|
+
| `get_account_info` | Get account name, email, and subscriber count |
|
|
196
|
+
|
|
197
|
+
### Campaigns (read)
|
|
198
|
+
|
|
199
|
+
| Tool | Description |
|
|
200
|
+
|---|---|
|
|
201
|
+
| `list_campaigns` | List campaigns with optional filters (status, date) |
|
|
202
|
+
| `get_campaign_details` | Get full details of a specific campaign |
|
|
203
|
+
| `list_campaign_folders` | List campaign folders |
|
|
204
|
+
|
|
205
|
+
### Campaign Reports
|
|
206
|
+
|
|
207
|
+
| Tool | Description |
|
|
208
|
+
|---|---|
|
|
209
|
+
| `get_campaign_report` | Get performance metrics (opens, clicks, bounces) |
|
|
210
|
+
| `get_campaign_click_details` | Get per-link click data for a campaign |
|
|
211
|
+
| `get_email_activity` | Per-recipient activity (opens, clicks, bounces) |
|
|
212
|
+
| `get_open_details` | Who opened, when, how many times |
|
|
213
|
+
| `get_campaign_recipients` | List of recipients with delivery status |
|
|
214
|
+
| `get_campaign_unsubscribes` | Who unsubscribed after a campaign |
|
|
215
|
+
| `get_domain_performance` | Performance by email domain (gmail, outlook, etc.) |
|
|
216
|
+
| `get_ecommerce_product_activity` | Revenue per product for a campaign |
|
|
217
|
+
| `get_campaign_sub_reports` | Sub-reports (A/B tests, RSS, etc.) |
|
|
218
|
+
|
|
219
|
+
### Campaigns (write)
|
|
220
|
+
|
|
221
|
+
| Tool | Description |
|
|
222
|
+
|---|---|
|
|
223
|
+
| `create_campaign` | Create a new campaign draft |
|
|
224
|
+
| `update_campaign` | Update subject line, title, preview text, etc. |
|
|
225
|
+
| `set_campaign_content` | Set the HTML content of a campaign draft |
|
|
226
|
+
| `schedule_campaign` | Schedule a campaign for a specific date/time |
|
|
227
|
+
| `unschedule_campaign` | Unschedule a campaign (back to draft) |
|
|
228
|
+
| `replicate_campaign` | Duplicate an existing campaign |
|
|
229
|
+
| `delete_campaign` | Delete an unsent campaign |
|
|
230
|
+
|
|
231
|
+
### Audiences (read)
|
|
232
|
+
|
|
233
|
+
| Tool | Description |
|
|
234
|
+
|---|---|
|
|
235
|
+
| `list_audiences` | List all audiences with stats |
|
|
236
|
+
| `get_audience_details` | Get detailed info for a specific audience |
|
|
237
|
+
| `list_audience_members` | List members with optional status filter |
|
|
238
|
+
| `search_members` | Search members by email or name |
|
|
239
|
+
| `get_audience_growth_history` | Monthly growth data (subscribes, unsubscribes) |
|
|
240
|
+
| `list_segments` | List segments and tags for an audience |
|
|
241
|
+
|
|
242
|
+
### Members (read)
|
|
243
|
+
|
|
244
|
+
| Tool | Description |
|
|
245
|
+
|---|---|
|
|
246
|
+
| `get_member_activity` | Activity history of a specific contact |
|
|
247
|
+
| `get_member_tags` | All tags assigned to a contact |
|
|
248
|
+
| `get_member_events` | Custom events for a contact |
|
|
249
|
+
|
|
250
|
+
### Members (write)
|
|
251
|
+
|
|
252
|
+
| Tool | Description |
|
|
253
|
+
|---|---|
|
|
254
|
+
| `add_member` | Add a new contact to an audience |
|
|
255
|
+
| `update_member` | Update a contact's name or status |
|
|
256
|
+
| `unsubscribe_member` | Unsubscribe a contact |
|
|
257
|
+
| `delete_member` | Permanently delete a contact |
|
|
258
|
+
| `tag_member` | Add or remove tags from a contact |
|
|
259
|
+
|
|
260
|
+
### Segments & Tags (write)
|
|
261
|
+
|
|
262
|
+
| Tool | Description |
|
|
263
|
+
|---|---|
|
|
264
|
+
| `create_segment` | Create a new segment or tag |
|
|
265
|
+
| `delete_segment` | Delete a segment or tag |
|
|
266
|
+
| `add_members_to_segment` | Add contacts to a segment/tag |
|
|
267
|
+
| `remove_members_from_segment` | Remove contacts from a segment/tag |
|
|
268
|
+
|
|
269
|
+
### Automations
|
|
270
|
+
|
|
271
|
+
| Tool | Description |
|
|
272
|
+
|---|---|
|
|
273
|
+
| `list_automations` | List automated email workflows |
|
|
274
|
+
| `get_automation_emails` | List emails in a workflow |
|
|
275
|
+
| `get_automation_email_queue` | View the send queue for an automation email |
|
|
276
|
+
| `pause_automation` | Pause all emails in a workflow |
|
|
277
|
+
| `start_automation` | Start/resume all emails in a workflow |
|
|
278
|
+
|
|
279
|
+
### Templates
|
|
280
|
+
|
|
281
|
+
| Tool | Description |
|
|
282
|
+
|---|---|
|
|
283
|
+
| `list_templates` | List available email templates |
|
|
284
|
+
|
|
285
|
+
### Landing Pages
|
|
286
|
+
|
|
287
|
+
| Tool | Description |
|
|
288
|
+
|---|---|
|
|
289
|
+
| `list_landing_pages` | List all landing pages |
|
|
290
|
+
| `get_landing_page` | Get details of a landing page |
|
|
291
|
+
|
|
292
|
+
### E-commerce
|
|
293
|
+
|
|
294
|
+
| Tool | Description |
|
|
295
|
+
|---|---|
|
|
296
|
+
| `list_ecommerce_stores` | List connected e-commerce stores |
|
|
297
|
+
| `list_store_orders` | List orders from a store |
|
|
298
|
+
| `list_store_products` | List products from a store |
|
|
299
|
+
| `list_store_customers` | List customers from a store |
|
|
300
|
+
|
|
301
|
+
### Batch Operations
|
|
302
|
+
|
|
303
|
+
| Tool | Description |
|
|
304
|
+
|---|---|
|
|
305
|
+
| `create_batch` | Run multiple API operations in bulk |
|
|
306
|
+
| `get_batch_status` | Check status of a batch operation |
|
|
307
|
+
| `list_batches` | List recent batch operations |
|
|
308
|
+
|
|
309
|
+
## Example Prompts
|
|
310
|
+
|
|
311
|
+
Once connected, you can ask Claude things like:
|
|
312
|
+
|
|
313
|
+
- *"Show me all my sent campaigns from the last 3 months"*
|
|
314
|
+
- *"What was the open rate and click rate for my last newsletter?"*
|
|
315
|
+
- *"How many subscribers did I gain this year?"*
|
|
316
|
+
- *"Which links got the most clicks in campaign X?"*
|
|
317
|
+
- *"Search for subscriber john@example.com"*
|
|
318
|
+
- *"Add tag 'VIP' to all members who opened my last campaign"*
|
|
319
|
+
- *"Create a draft campaign for my main audience with subject 'March Update'"*
|
|
320
|
+
- *"Unsubscribe user@example.com from my list"*
|
|
321
|
+
- *"Show me the domain performance breakdown for my last campaign"*
|
|
322
|
+
- *"Pause my welcome automation"*
|
|
323
|
+
- *"List all orders from my Shopify store this month"*
|
|
324
|
+
|
|
325
|
+
## Author
|
|
326
|
+
|
|
327
|
+
Built by [Damien Tilman](https://www.tilman.marketing) — damien@tilman.marketing
|
|
328
|
+
|
|
329
|
+
## License
|
|
330
|
+
|
|
331
|
+
MIT — see [LICENSE](LICENSE) for details.
|
|
@@ -0,0 +1,306 @@
|
|
|
1
|
+
# Mailchimp MCP Server
|
|
2
|
+
|
|
3
|
+
[](https://opensource.org/licenses/MIT)
|
|
4
|
+
[](https://www.python.org/downloads/)
|
|
5
|
+
[](https://modelcontextprotocol.io)
|
|
6
|
+
|
|
7
|
+
A [Model Context Protocol (MCP)](https://modelcontextprotocol.io) server for the [Mailchimp Marketing API](https://mailchimp.com/developer/marketing/). 53 tools to query and manage your Mailchimp account directly from Claude.
|
|
8
|
+
|
|
9
|
+
<a href="https://glama.ai/mcp/servers/@damientilman/mailchimp-mcp">
|
|
10
|
+
<img width="380" height="200" src="https://glama.ai/mcp/servers/@damientilman/mailchimp-mcp/badge" alt="Mailchimp MCP server" />
|
|
11
|
+
</a>
|
|
12
|
+
|
|
13
|
+
## Features
|
|
14
|
+
|
|
15
|
+
**Read**
|
|
16
|
+
- **Campaigns** - List, search, and inspect campaign details
|
|
17
|
+
- **Reports** - Open/click rates, bounces, per-link clicks, domain performance, unsubscribe details
|
|
18
|
+
- **Email activity** - Per-recipient open/click tracking, member activity history
|
|
19
|
+
- **Audiences** - Browse audiences, members, segments, tags, and growth history
|
|
20
|
+
- **Automations** - List workflows, inspect emails in a workflow, view queues
|
|
21
|
+
- **Templates** - Browse available email templates
|
|
22
|
+
- **Landing pages** - List and inspect landing pages
|
|
23
|
+
- **E-commerce** - Stores, orders, products, customers (requires e-commerce integration)
|
|
24
|
+
- **Campaign folders** - Browse folder organization
|
|
25
|
+
- **Batch operations** - Monitor bulk operation status
|
|
26
|
+
|
|
27
|
+
**Write**
|
|
28
|
+
- **Members** - Add, update, unsubscribe, delete, and tag contacts
|
|
29
|
+
- **Campaigns** - Create drafts, set HTML content, schedule, unschedule, duplicate, delete
|
|
30
|
+
- **Segments/Tags** - Create, delete, add/remove members
|
|
31
|
+
- **Automations** - Pause and start automation workflows
|
|
32
|
+
- **Batch** - Run bulk API operations in a single request
|
|
33
|
+
|
|
34
|
+
## Prerequisites
|
|
35
|
+
|
|
36
|
+
- Python 3.10+
|
|
37
|
+
- A [Mailchimp API key](https://mailchimp.com/help/about-api-keys/)
|
|
38
|
+
|
|
39
|
+
## Installation
|
|
40
|
+
|
|
41
|
+
### Using `uvx` (recommended)
|
|
42
|
+
|
|
43
|
+
No installation needed — run directly:
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
uvx mailchimp-mcp-server
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### Using `pip`
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
pip install mailchimp-mcp-server
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
Then run:
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
mailchimp-mcp-server
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### From source
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
git clone https://github.com/damientilman/mailchimp-mcp-server.git
|
|
65
|
+
cd mailchimp-mcp-server
|
|
66
|
+
python -m venv .venv
|
|
67
|
+
source .venv/bin/activate
|
|
68
|
+
pip install -e .
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
## Configuration
|
|
72
|
+
|
|
73
|
+
| Variable | Required | Description |
|
|
74
|
+
|---|---|---|
|
|
75
|
+
| `MAILCHIMP_API_KEY` | Yes | Your Mailchimp API key (format: `<key>-<dc>`, e.g. `abc123-us8`) |
|
|
76
|
+
| `MAILCHIMP_READ_ONLY` | No | Set to `true` to disable all write operations (default: `false`) |
|
|
77
|
+
| `MAILCHIMP_DRY_RUN` | No | Set to `true` to preview write operations without executing them (default: `false`) |
|
|
78
|
+
|
|
79
|
+
The datacenter (`us8`, `us21`, etc.) is automatically extracted from the key.
|
|
80
|
+
|
|
81
|
+
### Safety modes
|
|
82
|
+
|
|
83
|
+
**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.
|
|
84
|
+
|
|
85
|
+
**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.
|
|
86
|
+
|
|
87
|
+
### Claude Desktop
|
|
88
|
+
|
|
89
|
+
Add this to your `claude_desktop_config.json`:
|
|
90
|
+
|
|
91
|
+
<details>
|
|
92
|
+
<summary>Using uvx (recommended)</summary>
|
|
93
|
+
|
|
94
|
+
```json
|
|
95
|
+
{
|
|
96
|
+
"mcpServers": {
|
|
97
|
+
"mailchimp": {
|
|
98
|
+
"command": "uvx",
|
|
99
|
+
"args": ["mailchimp-mcp-server"],
|
|
100
|
+
"env": {
|
|
101
|
+
"MAILCHIMP_API_KEY": "your-api-key-here"
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
```
|
|
107
|
+
</details>
|
|
108
|
+
|
|
109
|
+
<details>
|
|
110
|
+
<summary>Using pip install</summary>
|
|
111
|
+
|
|
112
|
+
```json
|
|
113
|
+
{
|
|
114
|
+
"mcpServers": {
|
|
115
|
+
"mailchimp": {
|
|
116
|
+
"command": "mailchimp-mcp-server",
|
|
117
|
+
"env": {
|
|
118
|
+
"MAILCHIMP_API_KEY": "your-api-key-here"
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
```
|
|
124
|
+
</details>
|
|
125
|
+
|
|
126
|
+
<details>
|
|
127
|
+
<summary>Read-only mode (recommended for exploration)</summary>
|
|
128
|
+
|
|
129
|
+
```json
|
|
130
|
+
{
|
|
131
|
+
"mcpServers": {
|
|
132
|
+
"mailchimp": {
|
|
133
|
+
"command": "uvx",
|
|
134
|
+
"args": ["mailchimp-mcp-server"],
|
|
135
|
+
"env": {
|
|
136
|
+
"MAILCHIMP_API_KEY": "your-api-key-here",
|
|
137
|
+
"MAILCHIMP_READ_ONLY": "true"
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
```
|
|
143
|
+
</details>
|
|
144
|
+
|
|
145
|
+
### Claude Code
|
|
146
|
+
|
|
147
|
+
```bash
|
|
148
|
+
claude mcp add mailchimp \
|
|
149
|
+
-s user \
|
|
150
|
+
-e MAILCHIMP_API_KEY=your-api-key-here \
|
|
151
|
+
-- uvx mailchimp-mcp-server
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
For read-only mode:
|
|
155
|
+
|
|
156
|
+
```bash
|
|
157
|
+
claude mcp add mailchimp \
|
|
158
|
+
-s user \
|
|
159
|
+
-e MAILCHIMP_API_KEY=your-api-key-here \
|
|
160
|
+
-e MAILCHIMP_READ_ONLY=true \
|
|
161
|
+
-- uvx mailchimp-mcp-server
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
## Available Tools
|
|
165
|
+
|
|
166
|
+
### Account
|
|
167
|
+
|
|
168
|
+
| Tool | Description |
|
|
169
|
+
|---|---|
|
|
170
|
+
| `get_account_info` | Get account name, email, and subscriber count |
|
|
171
|
+
|
|
172
|
+
### Campaigns (read)
|
|
173
|
+
|
|
174
|
+
| Tool | Description |
|
|
175
|
+
|---|---|
|
|
176
|
+
| `list_campaigns` | List campaigns with optional filters (status, date) |
|
|
177
|
+
| `get_campaign_details` | Get full details of a specific campaign |
|
|
178
|
+
| `list_campaign_folders` | List campaign folders |
|
|
179
|
+
|
|
180
|
+
### Campaign Reports
|
|
181
|
+
|
|
182
|
+
| Tool | Description |
|
|
183
|
+
|---|---|
|
|
184
|
+
| `get_campaign_report` | Get performance metrics (opens, clicks, bounces) |
|
|
185
|
+
| `get_campaign_click_details` | Get per-link click data for a campaign |
|
|
186
|
+
| `get_email_activity` | Per-recipient activity (opens, clicks, bounces) |
|
|
187
|
+
| `get_open_details` | Who opened, when, how many times |
|
|
188
|
+
| `get_campaign_recipients` | List of recipients with delivery status |
|
|
189
|
+
| `get_campaign_unsubscribes` | Who unsubscribed after a campaign |
|
|
190
|
+
| `get_domain_performance` | Performance by email domain (gmail, outlook, etc.) |
|
|
191
|
+
| `get_ecommerce_product_activity` | Revenue per product for a campaign |
|
|
192
|
+
| `get_campaign_sub_reports` | Sub-reports (A/B tests, RSS, etc.) |
|
|
193
|
+
|
|
194
|
+
### Campaigns (write)
|
|
195
|
+
|
|
196
|
+
| Tool | Description |
|
|
197
|
+
|---|---|
|
|
198
|
+
| `create_campaign` | Create a new campaign draft |
|
|
199
|
+
| `update_campaign` | Update subject line, title, preview text, etc. |
|
|
200
|
+
| `set_campaign_content` | Set the HTML content of a campaign draft |
|
|
201
|
+
| `schedule_campaign` | Schedule a campaign for a specific date/time |
|
|
202
|
+
| `unschedule_campaign` | Unschedule a campaign (back to draft) |
|
|
203
|
+
| `replicate_campaign` | Duplicate an existing campaign |
|
|
204
|
+
| `delete_campaign` | Delete an unsent campaign |
|
|
205
|
+
|
|
206
|
+
### Audiences (read)
|
|
207
|
+
|
|
208
|
+
| Tool | Description |
|
|
209
|
+
|---|---|
|
|
210
|
+
| `list_audiences` | List all audiences with stats |
|
|
211
|
+
| `get_audience_details` | Get detailed info for a specific audience |
|
|
212
|
+
| `list_audience_members` | List members with optional status filter |
|
|
213
|
+
| `search_members` | Search members by email or name |
|
|
214
|
+
| `get_audience_growth_history` | Monthly growth data (subscribes, unsubscribes) |
|
|
215
|
+
| `list_segments` | List segments and tags for an audience |
|
|
216
|
+
|
|
217
|
+
### Members (read)
|
|
218
|
+
|
|
219
|
+
| Tool | Description |
|
|
220
|
+
|---|---|
|
|
221
|
+
| `get_member_activity` | Activity history of a specific contact |
|
|
222
|
+
| `get_member_tags` | All tags assigned to a contact |
|
|
223
|
+
| `get_member_events` | Custom events for a contact |
|
|
224
|
+
|
|
225
|
+
### Members (write)
|
|
226
|
+
|
|
227
|
+
| Tool | Description |
|
|
228
|
+
|---|---|
|
|
229
|
+
| `add_member` | Add a new contact to an audience |
|
|
230
|
+
| `update_member` | Update a contact's name or status |
|
|
231
|
+
| `unsubscribe_member` | Unsubscribe a contact |
|
|
232
|
+
| `delete_member` | Permanently delete a contact |
|
|
233
|
+
| `tag_member` | Add or remove tags from a contact |
|
|
234
|
+
|
|
235
|
+
### Segments & Tags (write)
|
|
236
|
+
|
|
237
|
+
| Tool | Description |
|
|
238
|
+
|---|---|
|
|
239
|
+
| `create_segment` | Create a new segment or tag |
|
|
240
|
+
| `delete_segment` | Delete a segment or tag |
|
|
241
|
+
| `add_members_to_segment` | Add contacts to a segment/tag |
|
|
242
|
+
| `remove_members_from_segment` | Remove contacts from a segment/tag |
|
|
243
|
+
|
|
244
|
+
### Automations
|
|
245
|
+
|
|
246
|
+
| Tool | Description |
|
|
247
|
+
|---|---|
|
|
248
|
+
| `list_automations` | List automated email workflows |
|
|
249
|
+
| `get_automation_emails` | List emails in a workflow |
|
|
250
|
+
| `get_automation_email_queue` | View the send queue for an automation email |
|
|
251
|
+
| `pause_automation` | Pause all emails in a workflow |
|
|
252
|
+
| `start_automation` | Start/resume all emails in a workflow |
|
|
253
|
+
|
|
254
|
+
### Templates
|
|
255
|
+
|
|
256
|
+
| Tool | Description |
|
|
257
|
+
|---|---|
|
|
258
|
+
| `list_templates` | List available email templates |
|
|
259
|
+
|
|
260
|
+
### Landing Pages
|
|
261
|
+
|
|
262
|
+
| Tool | Description |
|
|
263
|
+
|---|---|
|
|
264
|
+
| `list_landing_pages` | List all landing pages |
|
|
265
|
+
| `get_landing_page` | Get details of a landing page |
|
|
266
|
+
|
|
267
|
+
### E-commerce
|
|
268
|
+
|
|
269
|
+
| Tool | Description |
|
|
270
|
+
|---|---|
|
|
271
|
+
| `list_ecommerce_stores` | List connected e-commerce stores |
|
|
272
|
+
| `list_store_orders` | List orders from a store |
|
|
273
|
+
| `list_store_products` | List products from a store |
|
|
274
|
+
| `list_store_customers` | List customers from a store |
|
|
275
|
+
|
|
276
|
+
### Batch Operations
|
|
277
|
+
|
|
278
|
+
| Tool | Description |
|
|
279
|
+
|---|---|
|
|
280
|
+
| `create_batch` | Run multiple API operations in bulk |
|
|
281
|
+
| `get_batch_status` | Check status of a batch operation |
|
|
282
|
+
| `list_batches` | List recent batch operations |
|
|
283
|
+
|
|
284
|
+
## Example Prompts
|
|
285
|
+
|
|
286
|
+
Once connected, you can ask Claude things like:
|
|
287
|
+
|
|
288
|
+
- *"Show me all my sent campaigns from the last 3 months"*
|
|
289
|
+
- *"What was the open rate and click rate for my last newsletter?"*
|
|
290
|
+
- *"How many subscribers did I gain this year?"*
|
|
291
|
+
- *"Which links got the most clicks in campaign X?"*
|
|
292
|
+
- *"Search for subscriber john@example.com"*
|
|
293
|
+
- *"Add tag 'VIP' to all members who opened my last campaign"*
|
|
294
|
+
- *"Create a draft campaign for my main audience with subject 'March Update'"*
|
|
295
|
+
- *"Unsubscribe user@example.com from my list"*
|
|
296
|
+
- *"Show me the domain performance breakdown for my last campaign"*
|
|
297
|
+
- *"Pause my welcome automation"*
|
|
298
|
+
- *"List all orders from my Shopify store this month"*
|
|
299
|
+
|
|
300
|
+
## Author
|
|
301
|
+
|
|
302
|
+
Built by [Damien Tilman](https://www.tilman.marketing) — damien@tilman.marketing
|
|
303
|
+
|
|
304
|
+
## License
|
|
305
|
+
|
|
306
|
+
MIT — see [LICENSE](LICENSE) for details.
|