# Klaviyo (verified)

Manage email campaigns, segments, and subscriber lists. Track open rates, automate flows, and analyze marketing performance.

## Quick Start

```bash
# Connect this server (installs CLI if needed)
npx -y @smithery/cli@latest mcp add klaviyo

# Browse available tools
npx -y @smithery/cli@latest tool list klaviyo

# Get full schema for a tool
npx -y @smithery/cli@latest tool get klaviyo klaviyo_get_account_details

# Call a tool
npx -y @smithery/cli@latest tool call klaviyo klaviyo_get_account_details '{}'
```

## Direct MCP Connection

Endpoint: `https://klaviyo.run.tools`

## Tools (27)

- `klaviyo_get_account_details` — Get the details of the account. You can view and edit your account details flow in the Klaviyo UI at https://www.klaviy…
- `klaviyo_get_campaigns` — Returns some or all campaigns based on filters. You can view and edit a campaign in the Klaviyo UI at https://www.klavi…
- `klaviyo_get_campaign` — Returns a specific campaign based on a required id. You can view and edit a campaign in the Klaviyo UI at https://www.k…
- `klaviyo_create_campaign` — Creates a new draft campaign. For email campaigns, this can be used with the create_email_template tool for template cr…
- `klaviyo_assign_template_to_campaign_message` — Assigns an email template to a campaign message. This should be used after creating a template with the create_email_te…
- `klaviyo_get_flows` — Returns some or all flows based on filters. You can view and edit a flow in the Klaviyo UI at https://www.klaviyo.com/f…
- `klaviyo_get_flow` — Returns a flow by ID. You can view and edit a flow in the Klaviyo UI at https://www.klaviyo.com/flow/{FLOW_ID}/edit.
- `klaviyo_get_lists` — Get all lists in an account. To filter by tag, do not use the 'filters' parameter. Instead, call this and look for the …
- `klaviyo_get_list` — Get a list with the given list ID. You can view and edit a list in the Klaviyo UI at https://www.klaviyo.com/lists/{LIS…
- `klaviyo_get_events` — Get individual event records for a given filter such as a profile ID or metric ID. For aggregated data, prefer get_camp…
- `klaviyo_get_catalog_items` — Get all catalog items in an account. (Also known as products)
- `klaviyo_get_email_template` — Get an email template with the given data. Returns attributes including the html or amp. You can view and edit a templa…
- `klaviyo_create_email_template` — Create a new email template from the given HTML. Returns the ID of the template. You can view and edit a template in th…
- `klaviyo_get_profiles` — Get all profiles in an account. You can view and edit a profile in the Klaviyo UI at https://www.klaviyo.com/profile/{P…
- `klaviyo_get_profile` — Get details of the profile with the given profile ID. Includes additional information about their subscriptions. You ca…
- `klaviyo_create_profile` — Create a new profile. Must include either email, phone_number, or external_id. You can view and edit a profile in the K…
- `klaviyo_update_profile` — Update the profile with the given profile ID. You can view and edit a profile in the Klaviyo UI at https://www.klaviyo.…
- `klaviyo_get_segments` — Get all segments in an account. To filter by tag, do not use the 'filters' parameter. Instead, call this and look for t…
- `klaviyo_get_segment` — Get a segment with the given segment ID. You can view and edit a segment in the Klaviyo UI at https://www.klaviyo.com/l…
- `klaviyo_get_metrics` — Get all metrics in an account. You can view and edit a metric in the Klaviyo UI at https://www.klaviyo.com/metric/{METR…
- `klaviyo_get_metric` — Get a metric with the given metric ID. You can view and edit a metric in the Klaviyo UI at https://www.klaviyo.com/metr…
- `klaviyo_query_metric_aggregates` — Query and aggregate event data for a specific metric, with optional grouping by dimensions such as flows, campaigns, me…
- `klaviyo_subscribe_profile_to_marketing` — Subscribe a profile to marketing for a given channel. If a profile doesn't already exist, it will be created. Returns '…
- `klaviyo_unsubscribe_profile_from_marketing` — Unsubscribe a profile from marketing for a given channel. Returns 'Success' if successful.
- `klaviyo_upload_image_from_url` — Upload an image from a URL or data URI.
- `klaviyo_get_campaign_report` — Returns metrics data for campaigns with the given filters and within the given timeframe. Can return performance data s…
- `klaviyo_get_flow_report` — Returns metrics data for flows with the given filters and within the given timeframe. Can return performance data such …

```bash
# Get full input/output schema for a tool
npx -y @smithery/cli@latest tool get klaviyo <tool-name>
```

## Prompts (3)

- `analyze_campaign_or_flow_anomalies` (report_type, timeframe, refine_prompt) — Prompt for analyzing spikes, dips, and other anomalies in campaign or flow performance data.
- `compare_flow_performance` (flow_id_or_name_1, flow_id_or_name_2, timeframe_1, timeframe_2, refine_prompt) — Prompt for comparing flow performance between two time periods.
- `analyze_metric_by_campaign_audience` (timeframe, metric_name, audience_name, refine_prompt) — Prompt for analyzing a metric by audience.
