Klaviyo MCP server
39 operations0 webhooks
Email and SMS marketing from Klaviyo - manage profiles, marketing lists, segments, events and metrics, and configure the webhooks that deliver them.
Try Klaviyo with your agent
Connect Klaviyo, then paste this into Claude, ChatGPT or Cursor. For ideas from other apps, see the use cases.
Using Corsair, show me what you can do in Klaviyo on my account, then run one read-only example and show me the result.
Klaviyo tools and triggers
Tools are what your agent can do in Klaviyo through Corsair's MCP server. Triggers are the Klaviyo events a routine can start from.
Lists
- Add ProfilesWrite
Add up to 1000 profiles to a list by id; adding does not change their subscription consent
lists.addProfiles
- CreateWrite
Create an empty marketing list with a name
lists.create
- GetRead-only
Read one marketing list by id, with its name and timestamps
lists.get
- ListRead-only
List the marketing lists on the account, filtered and cursor-paged
lists.list
- ProfilesRead-only
Page the profiles that belong to a list
lists.profiles
- RemoveDestructive
Delete a list; the profiles on it stay on the account but lose that membership, and the list cannot be restored
lists.remove
- Remove ProfilesDestructive
Remove up to 1000 profiles from a list; their submission or consent elsewhere is untouched
lists.removeProfiles
- UpdateWrite
Rename an existing list
lists.update
Segments
- CreateWrite
Create a segment from a condition group; Klaviyo evaluates it server-side, so the segment is not immediately populated
segments.create
- GetRead-only
Read one segment by id, with its active flag
segments.get
- ListRead-only
List the segments on the account, filtered and cursor-paged
segments.list
- ProfilesRead-only
Page the profiles that currently match a segment
segments.profiles
- RemoveDestructive
Delete a segment; its definition is lost and cannot be restored
segments.remove
- UpdateWrite
Change a segment name or its condition group
segments.update
Profiles
- CreateWrite
Create a profile from an email, phone number or external id, with names, location and custom properties; Klaviyo merges a duplicate onto the existing profile
profiles.create
- GetRead-only
Read one profile by id, optionally including its conversations or push tokens
profiles.get
- ListRead-only
Search profiles with a Klaviyo filter expression, sorted and cursor-paged; returns each profile with its attributes and subscription state
profiles.list
- SubscribeWrite
Subscribe a profile to a list over email or SMS; this grants marketing consent through a queued bulk job, so it confirms the request was accepted rather than returning the profile
profiles.subscribe
- UpdateWrite
Change a profile name, location, custom properties or identifiers by id
profiles.update
Tags
- CreateWrite
Create a tag with a name, unique within its tag group
tags.create
- GetRead-only
Read one tag by id, with its name and timestamps
tags.get
- ListRead-only
List the tags on the account, filtered and cursor-paged
tags.list
- RemoveDestructive
Delete a tag; it detaches from every campaign, flow, list and segment that carried it
tags.remove
- UpdateWrite
Rename a tag; its group and attachments stay as they are
tags.update
Webhooks
- CreateWrite
Create a webhook with an endpoint URL, a shared secret and one or more topics; Klaviyo signs each delivery with that secret
webhooks.create
- GetRead-only
Read one webhook by id
webhooks.get
- ListRead-only
List the webhooks configured on the account
webhooks.list
- RemoveDestructive
Delete a webhook; deliveries stop immediately and it cannot be restored
webhooks.remove
- UpdateWrite
Change a webhook name, description, endpoint URL or enabled flag
webhooks.update
Events
- CreateWrite
Record an event against a profile by metric name; Klaviyo creates the metric on first use, and the event can trigger flows
events.create
- GetRead-only
Read one event by id, with its properties and timestamp
events.get
- ListRead-only
Page the events recorded for the account, filtered by metric, profile or time
events.list
Metrics
- AggregateRead-only
Aggregate a metric into time buckets, such as a daily count over a date range, optionally grouped by a dimension
metrics.aggregate
- GetRead-only
Read one metric by id
metrics.get
- ListRead-only
List the metrics defined on the account, such as Placed Order
metrics.list
Tag Groups
- CreateWrite
Create a tag group, optionally exclusive so only one of its tags applies
tagGroups.create
- ListRead-only
List the tag groups, which namespace tags and can allow only one tag each
tagGroups.list
- RemoveDestructive
Delete a tag group; the tags inside it go with it and cannot be restored
tagGroups.remove
Webhook Topics
- ListRead-only
List the topics a webhook can subscribe to, such as Placed Order
webhookTopics.list
Connect Klaviyo to Claude, ChatGPT or Cursor
- 1
Connect Klaviyo in Corsair
Add your Klaviyo API key once in Corsair. Corsair stores the credential encrypted and makes the Klaviyo API calls for your agent, so it never goes into a prompt or a config file. Connect Klaviyo
If your link lets the agent add apps, you can skip this: it gives you a sign-in link the first time it needs Klaviyo. On a ChatGPT personal plan, connect Klaviyo here first.
- 2
Add Corsair's MCP server to your agent
Every client uses the same address:
https://mcp.corsair.dev/mcpOpen Customize → Connectors → Add custom connector, paste the address, then select Connect.Add a custom MCP server with the address and choose OAuth. Personal plans get read tools only.Add to CursorOr add this to~/.cursor/mcp.json. Cursor opens Corsair to sign in the first time it connects.{ "mcpServers": { "corsair": { "url": "https://mcp.corsair.dev/mcp" } } }Run this, then run/mcpin Claude Code to sign in.claude mcp add --transport http corsair https://mcp.corsair.dev/mcpCodex, Gemini CLI, VS Code, Zed and other clients with OAuth sign-in work the same way. Clients without it, such as GitHub Copilot's coding agent, use a link's own address and an API key. Setup for every client
- 3
Sign in and choose what needs your approval
Your client opens Corsair to sign in. Pick a link: the apps your agent can use and a mode that decides what it may do without asking. In the default Cautious mode, Klaviyo's read and write operations run right away and its 6 destructive operations wait for your approval. Strict mode asks before every write and refuses destructive operations, and Read mode allows reads only.
FAQ
Install corsair and @corsair-dev/klaviyo, add the Klaviyo plugin, and connect with an API key. Then call methods like corsair.klaviyo.api.events.create() from your app. Corsair keeps each tenant isolated.
Yes. Klaviyo requires an API key from your Klaviyo account or developer dashboard. Create credentials with access that matches what you automate, then paste them into Corsair or connect through managed auth in Hub.
Yes. One Corsair client can hit Klaviyo, GitHub, Notion, Stripe, and the rest. Trigger Klaviyo from a webhook, push updates to Slack, or chain actions across plugins. Same tenant context across integrations, plain TypeScript.
Teams use Corsair for email and SMS marketing from Klaviyo - manage profiles, marketing lists, segments, events and metrics, and configure the webhooks that deliver them. Common builds include sync jobs, admin tooling, and agents that call Klaviyo APIs from your backend.
The SDK is open source. Self-host and you pay Corsair nothing for the integration layer. Hub bills for hosted auth and execution, not per Klaviyo API call. Hub has a generous free tier. For hobby projects you can probably run the whole thing on free. Paid plans start to matter with more tenants or heavier traffic.
We maintain @corsair-dev/klaviyo in the open repo. When Klaviyo ships API changes, upgrade the package. Your call sites stay typed. You should not need to rewrite the integration layer each time.
No. Corsair does not read your Klaviyo data or hold individual access credentials. Credentials stay in your database. API calls run on your instance. We do not store Klaviyo data on your behalf.
Yes. Add https://mcp.corsair.dev/mcp as a custom connector or MCP server in Claude, ChatGPT, Cursor, VS Code, Claude Code, Codex or any client that supports remote MCP servers with OAuth sign-in, then sign in to Corsair. On ChatGPT personal plans, custom servers currently get read tools only.
Yes. Put Klaviyo on a link in Strict mode and every write waits for your approval, while destructive actions are refused. The default Cautious mode asks only before the 6 destructive Klaviyo operations. You can change a link's mode at hub.corsair.dev/me.