Skip the install. Get this working in under 2 minutes.
Start a free trial on cloud.anythingmcp.com, add the Iterable in one click, then point your AI client (Claude, ChatGPT, Copilot or Cursor) at the generated MCP endpoint. No Docker, no git clone, zero engineering experience required.
Summary
Let your AI work with Iterable: look up users, their events and messages, review lists, campaigns and campaign metrics, templates and catalogs, update profiles, track events, manage list membership and send a triggered email after you confirm.
Try asking
Example prompts for Iterable
Click any prompt to copy it. Paste into Claude, ChatGPT, Cursor, Gemini, Copilot or OpenClaw to run it against this connector.
Claude is AI and can make mistakes. Please double-check responses.
💡 No install? Use cloud.anythingmcp.com directly. Sign in, click Connectors → Iterable, paste your credentials, mint an MCP API key and you're done. No Docker, no
git clone, no local server.
Iterable + Cursor
Let your AI work with Iterable: look up users, their events and messages, review lists, campaigns and campaign metrics, templates and catalogs, update profiles, track events, manage list membership and send a triggered email after you confirm.
Prerequisites
See the full setup instructions baked into the connector (visible in the in-app store when you select the connector). The required environment variables for this connector are:
ITERABLE_API_URL, ITERABLE_API_KEY
Step 1 — Get credentials
Setting up takes about 3 minutes. You need an Iterable user who can create API keys in the project, and you need to know whether the project is hosted in the US or the EU.
- In Iterable, open Integrations → API Keys in the project settings and click New API Key. Choose a Server-side key if the AI should read and write, or a Read-only key if it should only read. JavaScript and Mobile keys do not work here.
- Copy the key and paste it into
ITERABLE_API_KEY. A key belongs to one project, so one connector works with one Iterable project. The key is sent only to Iterable, in theApi-Keyheader. - Set
ITERABLE_API_URLto the project's data center:https://api.iterable.comfor US projects,https://api.eu.iterable.comfor EU projects (the ones you sign in to at app.eu.iterable.com), without/apior any other path. - Install the connector and start with
iterable_list_channels: it checks the key and shows the project's marketing and transactional channels.
One key for the whole project: the key acts for the project, not for one person. Whoever uses this connector sees every user and campaign the key can read, so share the MCP server only with people allowed to see that.
What it covers: user profiles by email or userId with all their fields, their latest events (custom events, purchases, sends, opens, clicks, bounces, unsubscribes) and the messages sent to them; lists with their size and members; campaigns with their details and metrics; templates, channels, message types, catalogs and catalog items. Campaign metrics come back as a table, one row per campaign, with sends, deliveries, unique opens and clicks, bounces, complaints, unsubscribes, purchases and revenue.
Changes wait for your yes: the AI shows what it will write and waits for your confirmation before every change.
iterable_update_usermerges fields into a profile. Changed fields can move the user into dynamic lists and start journeys.iterable_track_eventrecords a custom event, such as a signup or a booking, which can also start a journey.iterable_subscribe_to_listanditerable_unsubscribe_from_listchange list membership. Unsubscribing with the channel option works like a global unsubscribe from that channel.iterable_send_emailsends a real email from a triggered campaign to one person, now or at a set time. Sending to many people stays a campaign in Iterable.
Switched off at install: iterable_delete_user_by_email and iterable_delete_user_by_user_id remove profiles and their data for good. An administrator turns them on only on purpose. With a Read-only key, every write answers 403; switch off the write tools for a read-only setup.
Email or userId: depending on whether the project is email-based, userID-based or hybrid, the AI identifies a user by email or by userId, never both in the same call. Times in answers are epoch milliseconds.
Limits per project: most reads 100 calls a second, campaign metrics 10 a minute, list size and list members 5 a minute, sent messages 3 a second. Members of large lists are cut at about 100 KB; the AI checks the list size first.
Common errors: 401 "Invalid API key" means the key is wrong or deleted, a JavaScript or Mobile key, or from the other data center; check ITERABLE_API_URL. 400 with a code such as BadParams or RequestFieldsTypesMismatched: a parameter or a field type is wrong, and the message says which. 404 or NotFound: the user, list or campaign does not exist in this project. 429: a rate limit is reached; wait and try again.
The connector does not run export jobs or bulk endpoints, edit templates or snippets, manage experiments or journeys, send in-app, push, SMS or web push messages, change subscriptions per message type or change catalogs.
Step 2 — Install the adapter
curl -fsSL https://raw.githubusercontent.com/HelpCode-ai/anythingmcp/main/docker-compose.quickstart.yml -o docker-compose.yml
printf 'JWT_SECRET=%s\nENCRYPTION_KEY=%s\n' "$(openssl rand -hex 32)" "$(openssl rand -hex 32)" > .env
docker compose up -d
Step 3 — Add the connector in Cursor
Your server URL: in AnythingMCP, open MCP Servers → the server this connector is on, and copy its URL (
https://cloud.anythingmcp.com/mcp/…). Use it wherever this guide showsYOUR_SERVER_ID.
Cursor reads MCP servers from ~/.cursor/mcp.json. Add this entry:
{
"mcpServers": {
"anythingmcp": {
"url": "https://cloud.anythingmcp.com/mcp/YOUR_SERVER_ID",
"headers": { "X-API-Key": "YOUR_MCP_API_KEY" }
}
}
}
- Create an MCP API key in AnythingMCP under MCP Servers → your server → API keys, and paste it in place of
YOUR_MCP_API_KEY. - Save the file and restart Cursor.
- Open Cursor → Settings → MCP and check that
anythingmcpis listed and connected. - Start chatting: the agent can now call the
Iterabletools.
Available tools
| Tool | What it does |
|---|---|
iterable_list_lists | List the user lists of the Iterable project: id, name, type (Standard, Dynamic, Suppression, Internal), description and creation time… |
iterable_get_list_size | Count the users in one Iterable list |
iterable_list_list_users | Get the users of one Iterable list as plain text, one email (or userId) per line |
iterable_get_user_by_email | Get an Iterable user profile by email: email, userId and all dataFields (profile fields, subscription and channel settings, signup date and… |
iterable_get_user_by_id | Get an Iterable user profile by userId: email, userId and all dataFields |
iterable_get_user_events_by_email | Get the latest events of an Iterable user by email, newest first: custom events, purchases, email sends, opens, clicks, bounces… |
iterable_get_user_events_by_user_id | Get the latest events of an Iterable user by userId, newest first: custom events, purchases, message sends, opens, clicks, bounces and… |
iterable_get_sent_messages | List the messages Iterable sent to a user (by email or userId): message id, campaign id, template id and time, optionally filtered by… |
iterable_list_campaigns | List the campaigns of the Iterable project, a page at a time: id, name, type (Blast or Triggered), state, message medium, template, lists… |
iterable_get_campaign | Get one Iterable campaign by id: name, type, state, message medium, template id, send size, lists and suppression lists, labels, workflow… |
iterable_get_campaign_metrics | Get campaign metrics from Iterable as CSV text: one row per campaign with columns such as total sends, deliveries, unique opens and clicks… |
iterable_list_templates | List the message templates of the Iterable project, a page at a time: template id, name, message type, campaign, creator, created and… |
iterable_list_channels | List the message channels of the Iterable project: id, name, channel type (Marketing or Transactional) and medium (Email, Push, SMS) |
iterable_list_message_types | List the message types of the Iterable project: id, name, channel id, subscription policy (opt-in or opt-out), frequency cap and rate limit |
iterable_list_catalogs | List the catalog names of the Iterable project (catalogs hold products, articles or other items used for personalization) |
iterable_list_catalog_items | List the items of one Iterable catalog, a page at a time: item id, last modified time and the item's fields |
iterable_update_user | Create or update an Iterable user profile by email or userId: the dataFields given are merged into the profile, missing fields are kept |
iterable_track_event | Record a custom event for an Iterable user (by email or userId), such as a signup, a booking or a page view, with its data |
iterable_subscribe_to_list | Add users to a static Iterable list (by email or userId), creating profiles that do not exist unless update_existing_users_only is true |
iterable_unsubscribe_from_list | Remove users from a static Iterable list (by email or userId) |
iterable_send_email | Send the email of a triggered Iterable campaign to one user (by email or userId), now or at send_at, with dataFields for the template |
iterable_delete_user_by_email | Delete an Iterable user by email, asynchronously (email-based and hybrid projects) |
iterable_delete_user_by_user_id | Delete Iterable users by userId, asynchronously; every profile with that userId is removed for good |
Example prompts
- "Look up [email protected] in Iterable: her profile fields, her last 20 events and the campaigns that emailed her this month."
- "Compare sends, unique opens, unique clicks and unsubscribes of our last five blast campaigns in a table."
- "How many users are in the VIP Newsletter list, and which templates does the Welcome campaign use?"
- "Add [email protected] to the Beta testers list and record a beta_signup event for him, but show me what you will write first."
FAQ
Does Cursor support custom MCP servers on the free tier? Yes, MCP is available on Hobby, Pro and Business plans.
Next steps
Was this guide helpful?