Campaign Monitor MCP server
Campaign Monitor in any MCP client, through Memtro: Campaign Monitor does not publish this server. Memtro's Campaign Monitor connector reads Campaign Monitor through its API with the credentials you connect, and one endpoint hands those tools, every other system you connect and Memtro's memory tools to Claude Code, Cursor, Claude Desktop or anything else that speaks Streamable HTTP, as you.
What the model can do
Campaign Monitor: clients, sent, scheduled and draft campaigns, each campaign's opens, clicks, bounces and unsubscribes with who did what, subscriber lists and their active subscribers, and one subscriber's state by email; when asked, can create a draft campaign, send or schedule it to its lists, unschedule or delete a campaign, and unsubscribe or delete a subscriber.
Reads
campaignmonitor_list_clientsThe clients on the Campaign Monitor account: id and name.campaignmonitor_list_sent_campaignsA client's sent campaigns, newest first: name, subject, sender, when sent (account time), number of recipients, tags and the web version link.campaignmonitor_list_unsent_campaignsA client's scheduled campaigns (with when, in the scheduled time zone) or drafts (with when created): name, subject and sender.campaignmonitor_list_listsA client's subscriber lists: id and name.campaignmonitor_campaign_summaryOne campaign's results: recipients, total and unique opens, clicks, unsubscribes, bounces, spam complaints and forwards.campaignmonitor_campaign_activityWho did what with one campaign: its opens, clicks (with the link), bounces (with type and reason), unsubscribes, or recipients…campaignmonitor_list_subscribersA list's active subscribers: email, name, when they joined (account time), state and custom fields.campaignmonitor_get_subscriberOne subscriber on a list, by email: name, state (Active, Unconfirmed, Unsubscribed, Bounced, Deleted), when they joined and custom fields.
Acts, when you ask
These change something in Campaign Monitor. The model is told to use them only when you ask for exactly that, and each one is granted by name: per team on a shared connection, by the owner on a personal one.
campaignmonitor_create_draft_campaignCreate a DRAFT campaign for a client, with its content fetched from an HTML page's https URL, aimed at the given lists or segments.campaignmonitor_send_campaignSend a draft campaign to every subscriber on the lists or segments it was created for, immediately or at a scheduled time (client time zone).campaignmonitor_unschedule_campaignCancel a scheduled campaign's send and return it to drafts.campaignmonitor_delete_campaignPermanently delete a campaign: a draft or scheduled one is gone (a scheduled send will not happen)…campaignmonitor_unsubscribe_subscriberUnsubscribe an email address from one list: it stops receiving campaigns sent to that list…campaignmonitor_delete_subscriberDelete a subscriber from one list: their state becomes Deleted and they stop receiving that list's campaigns…
Connect it
First connect Campaign Monitor on Dashboard → Connections, then add Memtro to your client once. The Campaign Monitor tools appear alongside the tools of everything else you have connected; nothing is configured per connector.
Claude Code
The Memtro plugin registers the server and a skill for when to use it; the tools are then available in every session.
claude plugin marketplace add memtro-org/claude-memtro
claude plugin install memtro@memtro --config api_key=sk-memtro-...Cursor
Add the server to .cursor/mcp.json in the project, or to the global file under ~/.cursor/.
{
"mcpServers": {
"memtro": {
"url": "https://platform.memtro.com/api/mcp",
"headers": {
"Authorization": "Bearer sk-memtro-..."
}
}
}
}Claude Desktop
Create a personal API key on Dashboard → Profile → API keys. In Claude Desktop add an MCP server of type HTTP with URL https://platform.memtro.com/api/mcp and the header Authorization: Bearer sk-memtro-…
OpenCode
A remote server in opencode.json.
{
"mcp": {
"memtro": {
"type": "remote",
"url": "https://platform.memtro.com/api/mcp",
"headers": {
"Authorization": "Bearer sk-memtro-..."
}
}
}
}Pi
One command: pi mcp add memtro --url https://platform.memtro.com/api/mcp --bearer-token-env-var MEMTRO_API_KEY. Tools arrive as mcp__memtro__*. The pi-memtro extension registers it for you, alongside Memtro as the model.
Any other client
Add an MCP server of type HTTP (Streamable HTTP, stateless) at https://platform.memtro.com/api/mcp with the header Authorization: Bearer sk-memtro-.... Codex, Zed, Windsurf, Cline and the SDKs all take a remote server this way.
Who may use it
The key identifies the person, and the server offers that person the tools they may use everywhere else in Memtro. A shared Campaign Monitor connection is used by the teams an administrator granted it to, tool by tool, on the Permissions page; a personal connection is used by its owner alone, and its tools that act stay off until the owner allows them. See Teams and permissions and Connectors.
Ask it like this
- › How did the October newsletter do compared with September's?
- › Who clicked the pricing link in last week's campaign?
- › Is priya@acme.com still subscribed to the customers list?
- › Which campaigns are scheduled to go out this month?
- › Unsubscribe dan@northwind.com from the product updates list
Questions
- Is this an official Campaign Monitor MCP server?
- No. It is Memtro's MCP server with Memtro's Campaign Monitor connector behind it: the connector reads Campaign Monitor through its API with the credentials you connect on Dashboard → Connections, and Campaign Monitor publishes nothing here. The same endpoint carries every other system you connect and Memtro's memory tools.
- What does it cost?
- Nothing on top of Memtro. One price per organisation by its number of users, from $50 a month for up to 10 users after a 7-day free trial, with every connector, the MCP server, jobs and memory included. You bring your own model keys.
- Can it change anything in Campaign Monitor?
- Only when you ask, and only what it has been granted: create a draft campaign from an HTML page's URL, aimed at lists or segments (sends nothing); send a draft campaign to its lists now or schedule it (emails every subscriber on them, may spend credits); unschedule a scheduled campaign back to drafts; delete a campaign (permanent); unsubscribe an email address from a list; delete a subscriber from a list. Every other tool reads, searches or lists. An administrator grants each acting tool by name per team, and a personal connection acts only after its owner allows it.
- Which clients work?
- Any MCP client that speaks Streamable HTTP: Claude Code, Cursor, Claude Desktop, OpenCode, Codex, Zed, Windsurf, Cline and the Anthropic and OpenAI SDKs. There is no local process to run; the server is remote and authenticated with your key.