---
title: "Klaviyo MCP server for AI agents - actionlake"
description: "Give Claude 423 Klaviyo actions through one MCP server: tags, campaign messages. Your agent never holds the credential. 100,000 calls a month free."
canonical: https://actionlake.com/connectors/klaviyo
updated: 2026-10-22
---

Connectors · Email & messaging

# Klaviyo MCP server for AI agents.

actionlake is an MCP gateway: one remote MCP server that connects Claude and other MCP clients to Klaviyo and the rest of your systems. It gives your agent 423 Klaviyo actions (261 reads, 116 writes and 46 that wait for a confirmation) and holds the Klaviyo credential itself, so the agent never does. It paces Klaviyo's limits and records every call.

[Connect Klaviyo free](https://actionlake.com/console?start=sandbox) [See pricing](https://actionlake.com/pricing)

100,000 free calls a month. No card, no email, no password: press Start a free sandbox on the next screen and keep the key it shows you.

`claude mcp add --transport http actionlake https://connect.actionlake.com/mcp`

the first call

```
do {
  action: "klaviyo.catalog_items.list",
  intent: "check which Klaviyo account is connected"
}
# Get Catalog Items · read · 1 upstream call
```

- 423 actions in one signed file
- 261 read look, never change
- 116 write create and update
- 46 wait for a yes destructive, confirmed first

Set up

## Connect Klaviyo in three steps.

1. 01
   ### Add actionlake to Claude.
   Run the command once in Claude Code; its consent page can create a free sandbox: 100,000 calls a month, no card. In the Claude app, add a custom connector with the URL below and paste your key on the consent page. Creating a new sandbox from the Claude app is not yet tested by us.
   `https://connect.actionlake.com/mcp`
2. 02
   ### Connect Klaviyo.
   API key. No consent screen: your agent can connect it for you, but the key then passes through your chat. To keep it out of the model's context, paste it in the console instead. actionlake stores what you paste write-only, sealed under your tenant's key.
   - `api_key` Klaviyo private API key (pk_...)
   ```
   account { op: "connections.requirements", service: "klaviyo" }
   # free: exactly what to paste, and what is found for you
   ```
3. 03
   ### Make the first call. Check before a write.
   Ask in plain words; Claude picks the action. Before anything changes, `check` validates the call and prices it, for free.
   ```
   do    { action: "klaviyo.catalog_items.list" }
   # get catalog items · read · 1 upstream call
   check { action: "klaviyo.lists.create", input: { … } }
   # free: inputs, permissions, cost and confirmations, nothing sent
   ```

Klaviyo at a glance

**Sign-in**

API key. No consent screen: your agent can connect it for you, but the key then passes through your chat. To keep it out of the model's context, paste it in the console instead.

**You provide**

`api_key`

**Limits we pace to**

10 calls a second and 150 a minute, per connection

**API covered**

Klaviyo API revision 2026-10-15 (OpenAPI 3.0.2)`a.klaviyo.com`

**Built from**

Klaviyo's documentation, read 22 October 2026[OpenAPI spec (GitHub)](https://raw.githubusercontent.com/klaviyo/openapi/main/openapi/stable.json) [developers.klaviyo.com](https://developers.klaviyo.com/en/reference/api_overview)

**Service file**

Version 1.0.0, signed (Ed25519)

**Cached reads**

254 of 261 reads, for up to 5 minutes; a write clears what it affects

**Shared entities**

6, so ask can line Klaviyo up with your other systems

**Data**

Processed and stored in Sydney, Australia. No US region yet

Capabilities

## What an AI agent can do in Klaviyo.

423 actions in 97 areas. Every one carries its effect, so a key can allow the reads and hold the rest.

- **261** read look, never change
- **116** write create and update
- **46** destructive wait for a confirmation

1. ### Tags
   19
   8 read · 6 write · 5 destructive
   Get Tags · Create Tag · Update Tag · Get Tag
2. ### Campaign messages
   18
   14 read · 3 write · 1 destructive
   Create Campaign Message · Get Tag IDs for Campaign Message · Get Tags for Campaign Message · Get Variation IDs for Campaign Message
3. ### Object types
   16
   14 read · 1 write · 1 destructive
   Create Object Type · Get Ingestion Log IDs for Object Type · Get Ingestion Logs for Object Type · Get Object Type Relationships
4. ### Profiles
   14
   12 read · 2 write · 0 destructive
   Get Profiles · Create Profile · Get Profile · Update Profile
5. ### Lists
   13
   8 read · 3 write · 2 destructive
   Get Lists · Create List · Get List · Update List
6. ### Object schemas
   13
   5 read · 6 write · 2 destructive
   Create Object Schema · Create Object Schema Relationship · Create Profile Schema Relationship · Get Object Schema Relationships
7. ### Translations
   13
   10 read · 2 write · 1 destructive
   Create Translation · Get Translations · Get Translation · Get Campaign Variation for Translation
8. ### Catalog items
   12
   6 read · 4 write · 2 destructive
   Get Catalog Items · Create Catalog Item · Get Catalog Item · Update Catalog Item

**89 more areas · 305 actions**

- Campaigns **11**
- Segments **11**
- Campaign variations **10**
- Catalog categories **10**
- Flows **9**
- Campaign audiences **8**
- Flow actions **8**
- Profile bulk import jobs **8**
- Coupon codes **7**
- Coupons **7**
- Custom metrics **7**
- Events **7**
- Forms **7**
- Mapped metrics **7**
- Tag groups **7**
- Metrics **6**
- Push tokens **6**
- Brand buttons **5**
- Brand colors **5**
- Brand logos **5**
- Brand social groups **5**
- Catalog variants **5**
- Flow messages **5**
- Template universal content **5**
- Templates **5**
- Text messaging senders **5**
- Web feeds **5**
- Webhooks **5**
- Data sources **4**
- Images **4**
- Brand email defaults **3**
- Campaign send jobs **3**
- Catalog category bulk create jobs **3**
- Catalog category bulk delete jobs **3**
- Catalog category bulk update jobs **3**
- Catalog item bulk create jobs **3**
- Catalog item bulk delete jobs **3**
- Catalog item bulk update jobs **3**
- Catalog variant bulk create jobs **3**
- Catalog variant bulk delete jobs **3**
- Catalog variant bulk update jobs **3**
- Coupon code bulk create jobs **3**
- Form versions **3**
- Metric properties **3**
- Profile suppression bulk create jobs **3**
- Profile suppression bulk delete jobs **3**
- Reviews **3**
- Template conversion jobs **3**
- Tracking settings **3**
- Accounts **2**
- Billing usage **2**
- Brand voice **2**
- Campaign message schedule **2**
- Campaign recipient estimation jobs **2**
- Source mappings **2**
- Text messaging configurations **2**
- Text messaging sender registrations **2**
- Webhook topics **2**
- Back in stock subscriptions **1**
- Campaign audience clone **1**
- Campaign clone **1**
- Campaign message assign template **1**
- Campaign message clone **1**
- Campaign recipient estimations **1**
- Campaign values reports **1**
- Conversation messages **1**
- Data privacy deletion jobs **1**
- Data source record bulk create jobs **1**
- Data source record create jobs **1**
- Event bulk create jobs **1**
- Flow series reports **1**
- Flow values reports **1**
- Form publish jobs **1**
- Form series reports **1**
- Form unpublish jobs **1**
- Form values reports **1**
- Metric aggregates **1**
- Object record bulk delete jobs **1**
- Object records **1**
- Profile import **1**
- Profile merge **1**
- Profile subscription bulk create jobs **1**
- Profile subscription bulk delete jobs **1**
- Segment series reports **1**
- Segment values reports **1**
- Template clone **1**
- Template preview send jobs **1**
- Template render **1**
- Template universal content clone **1**

Top actions

## The Klaviyo API, shaped for agents.

The ids your agent types, what each does, and the one name it shares with other systems. 42 of Klaviyo's 42 action names are shared with at least one other connector, so an agent learns them once.

| Action | What it does | Effect | Same name in |
| --- | --- | --- | --- |
| `klaviyo.catalog_items.list` Get Catalog Items | Get Catalog Items. | read | `commerce.product.list` 112 connectors |
| `klaviyo.lists.list` Get Lists | Get Lists. | read | `comm.audience.list` 26 connectors |
| `klaviyo.segments.list` Get Segments | Get Segments. | read | `comm.audience_segment.list` 22 connectors |
| `klaviyo.tags.list` Get Tags | Get Tags. | read | `crm.tag.list` 65 connectors |
| `klaviyo.lists.create` Create List | Create List. | write | `comm.audience.create` 24 connectors |
| `klaviyo.catalog_items.create` Create Catalog Item | Create Catalog Item. | write | `commerce.product.create` 92 connectors |
| `klaviyo.segments.create` Create Segment | Create Segment. | write | `comm.audience_segment.create` 16 connectors |
| `klaviyo.lists.delete` Delete List | Delete List. | destructive | `comm.audience.delete` 21 connectors |
| `klaviyo.campaigns.list` Get Campaigns | Get Campaigns. | read | `comm.campaign.list` 41 connectors |
| `klaviyo.campaigns.create` Create Campaign | Create Campaign. | write | `comm.campaign.create` 38 connectors |
| `klaviyo.tags.create` Create Tag | Create Tag. | write | `crm.tag.create` 49 connectors |
| `klaviyo.profiles.list` Get Profiles | Get Profiles. | read | `analytics.profile.list` 3 connectors |

Try it

## Prompts to paste into Claude.

Each one names the Klaviyo actions it will call, so you know what it reads and what it changes before you send it.

1. Read read
   Find the Klaviyo contacts with no email address, so we can clean them up.
   calls `klaviyo.profiles.list`
2. Write write
   Create List in Klaviyo. Show me exactly what you will send before you save it.
   calls `klaviyo.lists.create`
3. Across systems read
   Which contacts are in both Klaviyo and HaloPSA, and how many are in only one of them?
   calls `klaviyo.profiles.list` `halopsa.users.list`

Across your systems

## Klaviyo, joined to the rest of your business.

One `ask` fetches from Klaviyo and another system, joins the rows on the same customer on our side, and hands your agent the answer, not every row.

- Which contacts are in both Klaviyo and HaloPSA, and how many are in only one of them?
  `klaviyo.profiles.list` + `halopsa.users.list`, on `crm.contact` · [HaloPSA](https://actionlake.com/connectors/halopsa)
- Which contacts are in both Klaviyo and NetSuite, and how many are in only one of them?
  `klaviyo.profiles.list` + `netsuite.views.contacts`, on `crm.contact` · [NetSuite](https://actionlake.com/connectors/netsuite)

Also mapped by other connectors `crm.contact` **192** `commerce.product` **109** `crm.tag` **47** `comm.audience` **27** `comm.audience_segment` **18** `analytics.profile` **3**

ask

```
ask {
  intent: "which contacts are in both Klaviyo and HaloPSA, and how many are in only one of them",
  steps: [
    { action: "klaviyo.profiles.list", as: "people", input: {}, limit: 100, max_pages: 5 },
    { action: "halopsa.users.list", as: "people2", input: {}, limit: 100, max_pages: 5 },
    { join: {
        left: "people",
        right: "people2",
        on: "crm.contact",
        group_by: "people.email",
        select: ["people.email", "count(people2.id) as in_halopsa"]
    } }
  ]
}
```

Example. Run it through check first: it validates the steps and prices them, and it is free.

Governance for Klaviyo

## Destructive actions wait for a yes.

46 Klaviyo actions are destructive. The first 10:

- Delete List `klaviyo.lists.delete`
- Delete Catalog Item `klaviyo.catalog_items.delete`
- Delete Segment `klaviyo.segments.delete`
- Delete Campaign `klaviyo.campaigns.delete`
- Delete Tag `klaviyo.tags.delete`
- Delete Coupon `klaviyo.coupons.delete`
- Remove Profiles from List `klaviyo.lists.remove_profiles_from_list`
- Merge Profiles `klaviyo.profile_merge.merge_profiles`
- Delete Flow `klaviyo.flows.delete`
- Delete Template `klaviyo.templates.delete`

A destructive action runs only with `confirm: true`. Under the `human` policy the agent cannot confirm for itself: the run stops until a named person approves, in the console or from a signed link in an email. The cap on a key is refused before the call is sent, never after.

do klaviyo.lists.delete confirm_policy: **human**

Delete List?

**intent:** the user asked me to delete List

run suspended · waiting for a named person · key _klaviyo-agent_ cannot confirm itself

In the console, or from an emailed signed link.

a key for this connector

```
account {
  op: "keys.create", name: "klaviyo-agent",
  allowed_actions: ["klaviyo.*"], cap_calls: 2000,
  confirm_policy: "human_for_writes",
  approval_rules: [
    { match: "klaviyo.lists.delete", approver: "lead@example.com" },
    { match: "klaviyo.catalog_items.delete", approver: "lead@example.com" },
    { match: "klaviyo.segments.delete", approver: "lead@example.com" }
  ]
}
```

Illustrative. Scoped to Klaviyo only, capped at 2,000 upstream calls, every write confirmed, and the destructive ones approved by a named person.

Cost

## What Klaviyo costs on actionlake.

Every Klaviyo action is one upstream call, the only thing actionlake bills. Searching, `check`, `cost`, `account` and any call Klaviyo refused with 401, 403, 429 or a 5xx are free. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.

- 1 upstream call per action all 423 Klaviyo actions
- 423 actions page each page of a long list is one call
- 254 reads can be cached a cache hit costs nothing
- 100,000 calls a month, free paid plans from US$49 a month for 250,000

[See pricing](https://actionlake.com/pricing)

Action index

## Every Klaviyo action.

423 actions by area: the id your agent calls, what it does, and its effect.

**Tags 19**

- `klaviyo.tags.create` Create Tag write
- `klaviyo.tags.get` Get Tag read
- `klaviyo.tags.list` Get Tags read
- `klaviyo.tags.update` Update Tag write
- `klaviyo.tags.delete` Delete Tag destructive
- `klaviyo.tags.get_campaign_ids_for_tag` Get Campaign IDs for Tag read
- and 13 more in this area

**Campaign messages 18**

- `klaviyo.campaign_messages.create` Create Campaign Message write
- `klaviyo.campaign_messages.get_tag_ids_for_campaign_message` Get Tag IDs for Campaign Message read
- `klaviyo.campaign_messages.get_tags_for_campaign_message` Get Tags for Campaign Message read
- `klaviyo.campaign_messages.get_variation_ids_for_campaign_message` Get Variation IDs for Campaign Message read
- `klaviyo.campaign_messages.delete` Delete Campaign Message destructive
- `klaviyo.campaign_messages.get` Get Campaign Message read
- and 12 more in this area

**Object types 16**

- `klaviyo.object_types.create` Create Object Type write
- `klaviyo.object_types.get_ingestion_log_ids_for_object_type` Get Ingestion Log IDs for Object Type read
- `klaviyo.object_types.get_ingestion_logs_for_object_type` Get Ingestion Logs for Object Type read
- `klaviyo.object_types.get_object_type_relationships` Get Object Type Relationships read
- `klaviyo.object_types.delete` Delete Object Type destructive
- `klaviyo.object_types.get` Get Object Type read
- and 10 more in this area

**Profiles 14**

- `klaviyo.profiles.create` Create Profile write
- `klaviyo.profiles.get` Get Profile read
- `klaviyo.profiles.list` Get Profiles read
- `klaviyo.profiles.update` Update Profile write
- `klaviyo.profiles.get_conversation_for_profile` Get Conversation for Profile read
- `klaviyo.profiles.get_conversation_id_for_profile` Get Conversation ID for Profile read
- and 8 more in this area

**Lists 13**

- `klaviyo.lists.create` Create List write
- `klaviyo.lists.get` Get List read
- `klaviyo.lists.list` Get Lists read
- `klaviyo.lists.update` Update List write
- `klaviyo.lists.add_profiles_to_list` Add Profiles to List write
- `klaviyo.lists.delete` Delete List destructive
- and 7 more in this area

**Object schemas 13**

- `klaviyo.object_schemas.create` Create Object Schema write
- `klaviyo.object_schemas.create_object_schema_relationship` Create Object Schema Relationship write
- `klaviyo.object_schemas.create_profile_schema_relationship` Create Profile Schema Relationship write
- `klaviyo.object_schemas.get_object_schema_relationships` Get Object Schema Relationships read
- `klaviyo.object_schemas.delete_object_schema_relationship` Delete Object Schema Relationship destructive
- `klaviyo.object_schemas.delete_profile_schema_relationship` Delete Profile Schema Relationship destructive
- and 7 more in this area

**Translations 13**

- `klaviyo.translations.create` Create Translation write
- `klaviyo.translations.get` Get Translation read
- `klaviyo.translations.get_campaign_variation_for_translation` Get Campaign Variation for Translation read
- `klaviyo.translations.list` Get Translations read
- `klaviyo.translations.delete` Delete Translation destructive
- `klaviyo.translations.get_campaign_variation_id_for_translation` Get Campaign Variation ID for Translation read
- and 7 more in this area

**Catalog items 12**

- `klaviyo.catalog_items.create` Create Catalog Item write
- `klaviyo.catalog_items.get` Get Catalog Item read
- `klaviyo.catalog_items.list` Get Catalog Items read
- `klaviyo.catalog_items.update` Update Catalog Item write
- `klaviyo.catalog_items.add_categories_to_catalog_item` Add Categories to Catalog Item write
- `klaviyo.catalog_items.delete` Delete Catalog Item destructive
- and 6 more in this area

**Campaigns 11**

- `klaviyo.campaigns.create` Create Campaign write
- `klaviyo.campaigns.get` Get Campaign read
- `klaviyo.campaigns.list` Get Campaigns read
- `klaviyo.campaigns.update` Update Campaign write
- `klaviyo.campaigns.delete` Delete Campaign destructive
- `klaviyo.campaigns.get_audience_ids_for_campaign` Get Audience IDs for Campaign read
- and 5 more in this area

**Segments 11**

- `klaviyo.segments.create` Create Segment write
- `klaviyo.segments.get` Get Segment read
- `klaviyo.segments.list` Get Segments read
- `klaviyo.segments.update` Update Segment write
- `klaviyo.segments.delete` Delete Segment destructive
- `klaviyo.segments.get_flows_triggered_by_segment` Get Flows Triggered by Segment read
- and 5 more in this area

**Campaign variations 10**

- `klaviyo.campaign_variations.create` Create Campaign Variation write
- `klaviyo.campaign_variations.get` Get Campaign Variation read
- `klaviyo.campaign_variations.get_image_for_campaign_variation` Get Image for Campaign Variation read
- `klaviyo.campaign_variations.get_image_id_for_campaign_variation` Get Image ID for Campaign Variation read
- `klaviyo.campaign_variations.delete` Delete Campaign Variation destructive
- `klaviyo.campaign_variations.get_message_for_campaign_variation` Get Message for Campaign Variation read
- and 4 more in this area

**Catalog categories 10**

- `klaviyo.catalog_categories.add_items_to_catalog_category` Add Items to Catalog Category write
- `klaviyo.catalog_categories.create` Create Catalog Category write
- `klaviyo.catalog_categories.get_item_ids_for_catalog_category` Get Item IDs for Catalog Category read
- `klaviyo.catalog_categories.get_items_for_catalog_category` Get Items for Catalog Category read
- `klaviyo.catalog_categories.delete` Delete Catalog Category destructive
- `klaviyo.catalog_categories.get` Get Catalog Category read
- and 4 more in this area

**Flows 9**

- `klaviyo.flows.create` Create Flow write
- `klaviyo.flows.get` Get Flow read
- `klaviyo.flows.list` Get Flows read
- `klaviyo.flows.update` Update Flow Status write
- `klaviyo.flows.delete` Delete Flow destructive
- `klaviyo.flows.get_action_ids_for_flow` Get Action IDs for Flow read
- and 3 more in this area

**Campaign audiences 8**

- `klaviyo.campaign_audiences.create` Create Campaign Audience write
- `klaviyo.campaign_audiences.get` Get Campaign Audience read
- `klaviyo.campaign_audiences.get_campaign_messages_for_campaign_audience` Get Campaign Messages for Campaign Audience read
- `klaviyo.campaign_audiences.get_message_ids_for_campaign_audience` Get Message IDs for Campaign Audience read
- `klaviyo.campaign_audiences.delete` Delete Campaign Audience destructive
- `klaviyo.campaign_audiences.get_campaign_for_campaign_audience` Get Campaign for Campaign Audience read
- and 2 more in this area

**Flow actions 8**

- `klaviyo.flow_actions.create` Create Flow Action write
- `klaviyo.flow_actions.get` Get Flow Action read
- `klaviyo.flow_actions.get_flow_action_messages` Get Messages For Flow Action read
- `klaviyo.flow_actions.get_message_ids_for_flow_action` Get Message IDs for Flow Action read
- `klaviyo.flow_actions.delete` Delete Flow Action destructive
- `klaviyo.flow_actions.get_flow_for_flow_action` Get Flow for Flow Action read
- and 2 more in this area

**Profile bulk import jobs 8**

- `klaviyo.profile_bulk_import_jobs.bulk_import_profiles` Bulk Import Profiles write
- `klaviyo.profile_bulk_import_jobs.get_errors_for_bulk_import_profiles_job` Get Errors for Bulk Import Profiles Job read
- `klaviyo.profile_bulk_import_jobs.get_list_for_bulk_import_profiles_job` Get List for Bulk Import Profiles Job read
- `klaviyo.profile_bulk_import_jobs.get_list_ids_for_bulk_import_profiles_job` Get List IDs for Bulk Import Profiles Job read
- `klaviyo.profile_bulk_import_jobs.get_bulk_import_profiles_job` Get Bulk Import Profiles Job read
- `klaviyo.profile_bulk_import_jobs.get_profile_ids_for_bulk_import_profiles_job` Get Profile IDs for Bulk Import Profiles Job read
- and 2 more in this area

**Coupon codes 7**

- `klaviyo.coupon_codes.create` Create Coupon Code write
- `klaviyo.coupon_codes.get` Get Coupon Code read
- `klaviyo.coupon_codes.get_coupon_for_coupon_code` Get Coupon For Coupon Code read
- `klaviyo.coupon_codes.list` Get Coupon Codes read
- `klaviyo.coupon_codes.delete` Delete Coupon Code destructive
- `klaviyo.coupon_codes.get_coupon_id_for_coupon_code` Get Coupon ID for Coupon Code read
- and 1 more in this area

**Coupons 7**

- `klaviyo.coupons.create` Create Coupon write
- `klaviyo.coupons.get` Get Coupon read
- `klaviyo.coupons.list` Get Coupons read
- `klaviyo.coupons.update` Update Coupon write
- `klaviyo.coupons.delete` Delete Coupon destructive
- `klaviyo.coupons.get_coupon_code_ids_for_coupon` Get Coupon Code IDs for Coupon read
- and 1 more in this area

**Custom metrics 7**

- `klaviyo.custom_metrics.create` Create Custom Metric write
- `klaviyo.custom_metrics.get_metric_ids_for_custom_metric` Get Metric IDs for Custom Metric read
- `klaviyo.custom_metrics.get_metrics_for_custom_metric` Get Metrics for Custom Metric read
- `klaviyo.custom_metrics.list` Get Custom Metrics read
- `klaviyo.custom_metrics.delete` Delete Custom Metric destructive
- `klaviyo.custom_metrics.get` Get Custom Metric read
- and 1 more in this area

**Events 7**

- `klaviyo.events.create` Create Event write
- `klaviyo.events.get` Get Event read
- `klaviyo.events.get_metric_for_event` Get Metric for Event read
- `klaviyo.events.list` Get Events read
- `klaviyo.events.get_metric_id_for_event` Get Metric ID for Event read
- `klaviyo.events.get_profile_for_event` Get Profile for Event read
- and 1 more in this area

**Forms 7**

- `klaviyo.forms.create` Create Form write
- `klaviyo.forms.get_version_ids_for_form` Get Version IDs for Form read
- `klaviyo.forms.get_versions_for_form` Get Versions for Form read
- `klaviyo.forms.list` Get Forms read
- `klaviyo.forms.delete` Delete Form destructive
- `klaviyo.forms.get` Get Form read
- and 1 more in this area

**Mapped metrics 7**

- `klaviyo.mapped_metrics.get` Get Mapped Metric read
- `klaviyo.mapped_metrics.get_custom_metric_for_mapped_metric` Get Custom Metric for Mapped Metric read
- `klaviyo.mapped_metrics.get_custom_metric_id_for_mapped_metric` Get Custom Metric ID for Mapped Metric read
- `klaviyo.mapped_metrics.list` Get Mapped Metrics read
- `klaviyo.mapped_metrics.get_metric_for_mapped_metric` Get Metric for Mapped Metric read
- `klaviyo.mapped_metrics.get_metric_id_for_mapped_metric` Get Metric ID for Mapped Metric read
- and 1 more in this area

**Tag groups 7**

- `klaviyo.tag_groups.create` Create Tag Group write
- `klaviyo.tag_groups.get_tag_ids_for_tag_group` Get Tag IDs for Tag Group read
- `klaviyo.tag_groups.get_tags_for_tag_group` Get Tags for Tag Group read
- `klaviyo.tag_groups.list` Get Tag Groups read
- `klaviyo.tag_groups.delete` Delete Tag Group destructive
- `klaviyo.tag_groups.get` Get Tag Group read
- and 1 more in this area

**Metrics 6**

- `klaviyo.metrics.get` Get Metric read
- `klaviyo.metrics.get_flows_triggered_by_metric` Get Flows Triggered by Metric read
- `klaviyo.metrics.get_ids_for_flows_triggered_by_metric` Get IDs for Flows Triggered by Metric read
- `klaviyo.metrics.list` Get Metrics read
- `klaviyo.metrics.get_properties_for_metric` Get Properties for Metric read
- `klaviyo.metrics.get_property_ids_for_metric` Get Property IDs for Metric read

**Push tokens 6**

- `klaviyo.push_tokens.create` Create or Update Push Token write
- `klaviyo.push_tokens.get` Get Push Token read
- `klaviyo.push_tokens.get_profile_for_push_token` Get Profile for Push Token read
- `klaviyo.push_tokens.list` Get Push Tokens read
- `klaviyo.push_tokens.delete` Delete Push Token destructive
- `klaviyo.push_tokens.get_profile_id_for_push_token` Get Profile ID for Push Token read

**Brand buttons 5**

- `klaviyo.brand_buttons.create` Create Brand Button write
- `klaviyo.brand_buttons.get` Get Brand Button read
- `klaviyo.brand_buttons.list` Get Brand Buttons read
- `klaviyo.brand_buttons.update` Update Brand Button write
- `klaviyo.brand_buttons.delete` Delete Brand Button destructive

**Brand colors 5**

- `klaviyo.brand_colors.create` Create Brand Color write
- `klaviyo.brand_colors.get` Get Brand Color read
- `klaviyo.brand_colors.list` Get Brand Colors read
- `klaviyo.brand_colors.update` Update Brand Color write
- `klaviyo.brand_colors.delete` Delete Brand Color destructive

**Brand logos 5**

- `klaviyo.brand_logos.create` Create Brand Logo write
- `klaviyo.brand_logos.get` Get Brand Logo read
- `klaviyo.brand_logos.list` Get Brand Logos read
- `klaviyo.brand_logos.update` Update Brand Logo write
- `klaviyo.brand_logos.delete` Delete Brand Logo destructive

**Brand social groups 5**

- `klaviyo.brand_social_groups.create` Create Brand Social Group write
- `klaviyo.brand_social_groups.get` Get Brand Social Group read
- `klaviyo.brand_social_groups.list` Get Brand Social Groups read
- `klaviyo.brand_social_groups.update` Update Brand Social Group write
- `klaviyo.brand_social_groups.delete` Delete Brand Social Group destructive

**Catalog variants 5**

- `klaviyo.catalog_variants.create` Create Catalog Variant write
- `klaviyo.catalog_variants.get` Get Catalog Variant read
- `klaviyo.catalog_variants.list` Get Catalog Variants read
- `klaviyo.catalog_variants.update` Update Catalog Variant write
- `klaviyo.catalog_variants.delete` Delete Catalog Variant destructive

Flow messages **5** Template universal content **5** Templates **5** Text messaging senders **5** Web feeds **5** Webhooks **5** Data sources **4** Images **4** Brand email defaults **3** Campaign send jobs **3** Catalog category bulk create jobs **3** Catalog category bulk delete jobs **3** Catalog category bulk update jobs **3** Catalog item bulk create jobs **3** Catalog item bulk delete jobs **3** Catalog item bulk update jobs **3** Catalog variant bulk create jobs **3** Catalog variant bulk delete jobs **3** Catalog variant bulk update jobs **3** Coupon code bulk create jobs **3** Form versions **3** Metric properties **3** Profile suppression bulk create jobs **3** Profile suppression bulk delete jobs **3** Reviews **3** Template conversion jobs **3** Tracking settings **3** Accounts **2** Billing usage **2** Brand voice **2** Campaign message schedule **2** Campaign recipient estimation jobs **2** Source mappings **2** Text messaging configurations **2** Text messaging sender registrations **2** Webhook topics **2** Back in stock subscriptions **1** Campaign audience clone **1** Campaign clone **1** Campaign message assign template **1** Campaign message clone **1** Campaign recipient estimations **1** Campaign values reports **1** Conversation messages **1** Data privacy deletion jobs **1** Data source record bulk create jobs **1** Data source record create jobs **1** Event bulk create jobs **1** Flow series reports **1** Flow values reports **1** Form publish jobs **1** Form series reports **1** Form unpublish jobs **1** Form values reports **1** Metric aggregates **1** Object record bulk delete jobs **1** Object records **1** Profile import **1** Profile merge **1** Profile subscription bulk create jobs **1** Profile subscription bulk delete jobs **1** Segment series reports **1** Segment values reports **1** Template clone **1** Template preview send jobs **1** Template render **1** Template universal content clone **1**

This index shows a sample of each area. All 423 actions, with their inputs and prices, are in the [catalogue](https://actionlake.com/console/catalogue), which a free sandbox key can search.

Questions

## The Klaviyo MCP server, answered.

**Is there a Klaviyo MCP server for Claude?**

Yes. actionlake is an MCP gateway: a remote MCP server that gives Claude, or another MCP client, 423 Klaviyo actions across tags, campaign messages, object types and profiles, through the same eight tools it uses for every other connector. actionlake is independent; it is not made or endorsed by Klaviyo.

**What do I need to connect Klaviyo?**

Klaviyo private API key (pk_...). The free call account { op: "connections.requirements", service: "klaviyo" } lists exactly what to paste.

**Can an AI agent delete or change things in Klaviyo?**

Only if its key allows it, and only with an explicit confirmation. 46 Klaviyo actions are destructive, including delete List, delete Catalog Item and delete Segment. Each runs only with confirm: true. Under the human confirm policy, or an approval rule on the key, the run waits until a named person approves it.

**Will an AI agent use up my Klaviyo API limit?**

actionlake paces every call to the limits in the Klaviyo service file: 10 calls a second and 150 a minute per connection. Repeated reads are answered from cache (254 Klaviyo actions can be), which never reaches Klaviyo.

**What does a Klaviyo action cost?**

One upstream call, the only unit actionlake bills. A list that pages bills one call per page (423 Klaviyo actions page). Cache hits, searches, dry runs and calls Klaviyo refused with 401, 403, 429 or a 5xx are free. The Free plan includes 100,000 calls a month with no card. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.

**Which Klaviyo API does it cover?**

The Klaviyo API revision 2026-10-15 (OpenAPI 3.0.2) at a.klaviyo.com. It is built from Klaviyo's documentation as read on 22 October 2026. 423 actions in 97 areas, each one in the signed service file (version 1.0.0).

**Can I combine Klaviyo with my other systems?**

Yes. ask joins Klaviyo to HaloPSA or NetSuite on the same customer and returns the answer rather than every row. Klaviyo maps crm.contact, which 192 other connectors also map.

**Does actionlake keep my Klaviyo data, and where?**

actionlake processes and stores data in Sydney, Australia; there is no US region yet. Reads may be cached for up to 5 minutes, and a write clears the reads it affects. Each run's request and response is kept, sealed, for your plan's trace window: 1 day on Free, 3 days on Starter, 7 days on Pro, 14 days on Team, 30 days on Business and 30 days on Enterprise. Your Klaviyo credential is sealed under your tenant's key, never logged and never returned. Your traffic is not used to train models.

**Which AI clients can use it?**

Claude Code, tested by us end to end, and the Claude app as a custom connector, tested by us with an existing key. Other MCP clients that support remote servers over Streamable HTTP (MCP revisions 2025-06-18 and 2025-11-25) and OAuth dynamic client registration, or a bearer header, should connect the same way; we have not tested them. Or plain REST, under the same action names.

## More connectors like Klaviyo

Shares the most action names with

- [GetResponse 24](https://actionlake.com/connectors/getresponse)
- [MailerLite 21](https://actionlake.com/connectors/mailerlite)
- [Sinch Mailjet 18](https://actionlake.com/connectors/sinch-mailjet)
- [Elastic Email 18](https://actionlake.com/connectors/elastic-email)
- [Dotdigital 13](https://actionlake.com/connectors/dotdigital)
- [Meta Marketing API 10](https://actionlake.com/connectors/meta-marketing-api)

Joins with, on shared entities

- [Brevo 4](https://actionlake.com/connectors/brevo)
- [Nutshell CRM 4](https://actionlake.com/connectors/nutshell-crm)
- [Odoo 3](https://actionlake.com/connectors/odoo)
- [HighLevel (LeadConnector) 3](https://actionlake.com/connectors/highlevel-leadconnector)
- [ActiveCampaign 3](https://actionlake.com/connectors/activecampaign)
- [Circle 3](https://actionlake.com/connectors/circle)

Browse

- [All Email & messaging connectors](https://actionlake.com/connectors/category/email-and-messaging)
- [All connectors](https://actionlake.com/connectors)
- [How actionlake compares](https://actionlake.com/compare)

actionlake is independent. It is not made or endorsed by Klaviyo; the name is the vendor's own. Counts are from the Klaviyo service file, version 1.0.0.

## Give your agent Klaviyo today.

[Connect Klaviyo free](https://actionlake.com/console?start=sandbox) [See pricing](https://actionlake.com/pricing)

Start free - 100,000 calls/month, no card. No signup. Hard caps on every key. Cached answers are free.

---

Source: https://actionlake.com/connectors/klaviyo
More: https://actionlake.com/llms.txt
