Klaviyo

Klaviyo

Klaviyo is a data-driven email and SMS marketing platform that allows e-commerce brands to deliver targeted messages, track conversions, and scale customer relationships

893VIEWS
73USERS

Install MCP Server

Paste and run this command in your terminal to set up Cursor with MCP

npx @composio/cli add cursor --app klaviyonpx @composio/cli add cursor --app klaviyonpx @composio/cli add cursor --app klaviyonpx @composio/cli add cursor --app klaviyo

After running the command, restart Cursor to start using the MCP Server.

Available Tools

Add Profile To List

Add profiles to a klaviyo list by profile ids or email addresses. this action subscribes profiles to a marketing list, which is ideal for giving marketing consent. you can add up to 1000 profiles per call using either their klaviyo profile ids or email addresses. rate limits: 10/s burst, 150/m steady. required scopes: `lists:write` and `profiles:write`. preconditions: - either profile ids or emails must be provided (not both) - maximum 1000 profiles per call - email addresses must be valid format - the list must exist and be accessible

Create Campaign Recipient Estimation Job

Start an asynchronous task to estimate the number of recipients for a campaign. this action creates a background job that calculates how many profiles would receive the campaign based on its current audience settings. use the job id returned to track progress with the 'get campaign recipient estimation job' action, and get the final count via 'get campaign recipient estimation' action. rate limits: 10/s burst, 150/m steady. required scope: `campaigns:write`. preconditions: - valid api key with campaigns:write scope - campaign id must exist and be accessible - campaign must have audience settings configured

Create Event

Create or update a profile event with minimum identifiers and metric name. success means validation, not completion. burst limit: 350/s, steady: 3500/m. scope required: `events:write`.

Create List

Create a new list.<br><br>*rate limits*:<br>burst: `10/s`<br>steady: `150/m`<br>daily: `100/d` **scopes:** `lists:write`

Create Or Update Profile

Create or update a profile in klaviyo with the given attributes. this action allows you to create a new profile or update an existing one if it already exists (based on email or other identifiers). returns 201 for creation, 200 for update. empty fields are cleared with `null`; omitted fields remain unchanged. rate limits: 75/s burst, 700/m steady. required scope: `profiles:write`. preconditions: - at least one identifier (email, phone number, external id, or anonymous id) must be provided - email must be in valid format if provided - phone number must be in e.164 format if provided

Create Profile

Create a new profile.<br><br>*rate limits*:<br>burst: `75/s`<br>steady: `700/m` **scopes:** `profiles:write`

Get Campaign

Retrieve a specific campaign by its id from klaviyo. this action fetches detailed information about a single campaign including its name, status, audience settings, send strategy, and optionally related messages and tags. rate limits: 10/s burst, 150/m steady. required scope: `campaigns:read`. preconditions: - valid api key with campaigns:read scope - campaign id must exist and be accessible

Get Campaigns

Retrieve campaigns from your klaviyo account. this action allows you to fetch campaigns with optional filtering and sorting. klaviyo requires specifying a channel (email or sms) to list campaigns. you can add additional filters for status, name, creation date, and other attributes. results are paginated with a default of 10 campaigns per page. rate limits: 10/s burst, 150/m steady. required scope: `campaigns:read`. preconditions: - valid api key with campaigns:read scope - channel must be specified (email or sms) - additional filter syntax must be valid if provided

Get Events

Get all events in an account requests can be sorted by the following fields: `datetime`, `timestamp` returns a maximum of 200 events per page.<br><br>*rate limits*:<br>burst: `350/s`<br>steady: `3500/m` **scopes:** `events:read`

Get Lists

Retrieve marketing lists from your klaviyo account. this action allows you to fetch lists with optional filtering and sorting. you can filter by name, creation date, and other attributes. results are paginated with a default of 10 lists per page. rate limits: 75/s burst, 700/m steady. required scope: `lists:read`. preconditions: - valid api key with lists:read scope - filter syntax must be valid if provided

Get Profiles

Retrieve profiles from your klaviyo account. this action allows you to fetch profiles with optional filtering and sorting. you can filter by email, external id, creation date, and other attributes. results are paginated with a configurable page size. rate limits: 75/s burst, 700/m steady (lower with predictive analytics). required scope: `profiles:read`. preconditions: - valid api key with profiles:read scope - filter syntax must be valid if provided - page size must be between 1 and 100

Update Campaign

Update a campaign with the specified attributes. this action allows you to modify campaign settings including name, audiences, and send strategy. only the fields you provide will be updated; others remain unchanged. rate limits: 10/s burst, 150/m steady. required scope: `campaigns:write`. preconditions: - valid api key with campaigns:write scope - campaign id must exist and be accessible - campaign must be in a state that allows updates (usually draft status) - send strategy options must match the selected method

12 actions available