Model Context Protocol (MCP) server for Mailchimp.
Copy or create newsletter campaigns, push HTML content, and send test emails — all from Claude Code or any MCP-compatible client.
Draft + test only. This server can list, copy, and create draft campaigns and send test emails to seed addresses. It deliberately exposes no send/schedule tool — you review the draft and hit Send in the Mailchimp UI. No accidental blasts from the CLI.
| Tool | Description |
|---|---|
mailchimp_list_audiences |
List audiences (lists) with member counts |
mailchimp_list_campaigns |
List recent campaigns, newest first |
mailchimp_get_campaign |
Get a campaign's settings, recipients, status |
mailchimp_get_content |
Peek at a campaign's stored HTML (truncated) |
mailchimp_replicate_campaign |
Copy an existing campaign into a new draft |
mailchimp_create_campaign |
Create a new draft campaign for an audience |
mailchimp_set_content_from_file |
Push a local HTML file as the campaign content |
mailchimp_update_settings |
Update subject, title, preview text, sender |
mailchimp_send_test |
Send a test to seed addresses |
mailchimp_report |
Opens/clicks/bounces for a sent campaign |
Mailchimp → Account → Extras → API keys. The key ends in a data-center suffix like -us19, which the server uses to find the right API host.
cp .env.example .env
# edit .env and paste your MAILCHIMP_API_KEY
poetry install{
"mcpServers": {
"mtl-mailchimp": {
"command": "poetry",
"args": ["run", "python", "-m", "mtl_mailchimp_mcp"],
"cwd": "/absolute/path/to/mtl-mailchimp-mcp"
}
}
}mailchimp_list_campaigns— find the previous issuemailchimp_replicate_campaign <id>— fresh draftmailchimp_set_content_from_file <new_id> /path/to/newsletter.html— push new HTMLmailchimp_update_settings <new_id> subject="..." preview_text="..."mailchimp_send_test <new_id>— check your inbox- Review in Mailchimp and send from the UI
Note on images: Mailchimp does not rehost images. Use absolute URLs in your HTML (e.g.
https://yourdomain.com/img/...) so they render in the inbox.
- Your API key lives only in
.env(git-ignored) and is never logged. mailchimp_set_content_from_fileis confined toMAILCHIMP_CONTENT_DIR(or your home directory) and refuses hidden paths and secret files (keys, certs,*.env).- No send/schedule capability — see SECURITY.md.
poetry install
poetry run ruff check .
poetry run ruff format --check .
poetry run pytestBuilt by MusicTech Lab.