Connect your AI Agents to Klaviyo in minutes

Merge lets you securely connect your agents to Klaviyo and thousands of tools instantly

Available tools

create_campaign

Create a new Klaviyo email or SMS campaign. Requires a name, channel (email/sms), and audiences with included list IDs. Use list_lists to find valid list IDs.

get_campaign

Get a Klaviyo campaign by ID. Returns campaign details including name, status, and channel. Use list_campaigns to find valid campaign IDs.

update_campaign

Update a Klaviyo campaign's name or audiences. Only provided fields are updated. Use get_campaign to verify current state first.

delete_campaign

Delete a Klaviyo campaign. Only draft campaigns can be deleted. Use list_campaigns to find valid campaign IDs.

list_campaigns

List Klaviyo campaigns, optionally filtered by channel (email or sms). Returns campaign IDs, names, statuses, and channels.

send_campaign

Send a Klaviyo campaign immediately. The campaign must be in a sendable state (not draft). Use get_campaign to check status first.

create_event

Create a new Klaviyo event (e.g. Placed Order, Viewed Product) for a profile. Events are used to track actions and trigger flows. Use list_profiles to find profile IDs.

get_event

Get a Klaviyo event by ID. Returns event details including metric, profile, properties, and timestamp.

list_events

List Klaviyo events with optional filters by metric ID or profile ID, and pagination. Use list_metrics to find metric IDs. Use cursor from page_info for next page.

get_flow

Get a Klaviyo flow by ID. Returns flow details including name and status (live, draft, manual). Use list_flows to find valid flow IDs.

list_flows

List all Klaviyo flows. Flows are automated sequences triggered by events or conditions. Returns flow IDs, names, and statuses.

update_flow_status

Update a Klaviyo flow's status to live, draft, or manual. Use get_flow to check current status first.

get_flow_actions

Get all actions in a Klaviyo flow. Returns action IDs, types, and statuses for a given flow. Use list_flows to find valid flow IDs.

create_list

Create a new Klaviyo list. Lists are used to organize profiles for targeting in campaigns and flows.

get_list

Get a Klaviyo list by ID. Returns list details including name and timestamps.

update_list

Update a Klaviyo list name. Use get_list or list_lists to find valid list IDs.

delete_list

Delete a Klaviyo list. This does not delete the profiles in the list. Use list_lists to find valid list IDs.

list_lists

List all Klaviyo lists. Returns list IDs and names for targeting in campaigns.

get_list_profiles

Get profiles in a Klaviyo list with pagination. Returns up to 100 profiles per page. Use cursor from page_info for next page.

add_profiles_to_list

Add one or more profiles to a Klaviyo list. Use create_profile to create profiles first, then use their IDs here.

remove_profiles_from_list

Remove one or more profiles from a Klaviyo list. This does not delete the profiles, only removes the list membership.

get_metric

Get a Klaviyo metric by ID. Metrics represent event types like 'Placed Order' or 'Viewed Product'. Use list_metrics to find valid metric IDs.

list_metrics

List all Klaviyo metrics. Metrics represent event types that are tracked (e.g. 'Placed Order', 'Opened Email'). Returns metric IDs and names.

query_metric_aggregates

Query aggregate data for a Klaviyo metric (e.g. count, sum, unique over time). Use list_metrics to find metric IDs. Specify measurements like 'count' or 'sum' and optional time interval.

create_profile

Create a new Klaviyo profile with email, phone number, name, and custom properties. At least one of email or phone_number is required.

get_profile

Get a Klaviyo profile by ID. Returns profile details including email, phone, name, and custom properties.

update_profile

Update a Klaviyo profile's email, phone number, name, or custom properties. Only provided fields are updated.

list_profiles

List Klaviyo profiles with pagination. Returns up to 100 profiles per page. Use cursor from page_info for next page.

get_profile_lists

Get all lists a Klaviyo profile belongs to. Returns list IDs and names.

get_profile_segments

Get all segments a Klaviyo profile belongs to. Returns segment IDs and names.

get_segment

Get a Klaviyo segment by ID. Segments are dynamic groups of profiles based on conditions. Use list_segments to find valid segment IDs.

list_segments

List all Klaviyo segments. Segments are dynamic groups of profiles that update automatically based on conditions.

get_segment_profiles

Get profiles in a Klaviyo segment with pagination. Returns up to 100 profiles per page. Use cursor from page_info for next page.

create_tag

Create a new Klaviyo tag within a tag group. Tags are used to organize campaigns, flows, lists, and segments. Use list_tag_groups to find valid tag group IDs.

get_tag

Get a Klaviyo tag by ID. Use list_tags to find valid tag IDs.

update_tag

Update a Klaviyo tag's name. Use list_tags to find valid tag IDs.

delete_tag

Delete a Klaviyo tag. This cannot be undone. Use list_tags to find valid tag IDs.

list_tags

List all Klaviyo tags. Tags are used to organize and categorize campaigns, flows, lists, and segments.

create_tag_group

Create a new Klaviyo tag group. Tag groups organize related tags. Set exclusive=true if tags in the group should be mutually exclusive.

list_tag_groups

List all Klaviyo tag groups. Tag groups organize related tags together. Returns group IDs, names, and exclusivity settings.

create_template

Create a new Klaviyo email template with a name and optional HTML/text content. Templates can be used in campaigns and flows.

get_template

Get a Klaviyo template by ID. Returns template details including name, HTML, and text content. Use list_templates to find valid template IDs.

update_template

Update a Klaviyo template's name, HTML, or text content. Only provided fields are updated. Use get_template to check current content.

delete_template

Delete a Klaviyo template. This cannot be undone. Use list_templates to find valid template IDs.

list_templates

List all Klaviyo email templates. Returns template IDs, names, and content for use in campaigns and flows.

render_template

Render a Klaviyo template with context variables. Returns the rendered HTML and text content with variables replaced.

clone_template

Clone a Klaviyo template with a new name. Creates an exact copy of the template. Use list_templates to find valid template IDs.

validate_credential

Validate Klaviyo credentials by fetching account info. Returns {success, message}.

View all tools by creating a free accountSee more tools

How to set up Merge Agent Handler

In an mcp.json file, add the configuration below, and restart Cursor.

Learn more in the official documentation ↗

1{
2  "mcpServers": {
3    "agent-handler": {
4      "url": "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
5      "headers": {
6        "Authorization": "Bearer yMt*****"
7      }
8    }
9  }
10}
11
Copy Code

Open your Claude Desktop configuration file and add the server configuration below. You'll also need to restart the application for the changes to take effect.

Make sure Claude is using the Node v20+.

Learn more in the official documentation ↗

1{
2  "mcpServers": {
3    "agent-handler": {
4      "command": "npx",
5      "args": [
6        "-y",
7        "mcp-remote@latest",
8        "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
9        "--header",
10        "Authorization: Bearer ${AUTH_TOKEN}"
11      ],
12      "env": {
13        "AUTH_TOKEN": "yMt*****"
14      }
15    }
16  }
17}
Copy Code
Copied!

Open your Windsurf MCP configuration file and add the server configuration below.
Click on the refresh button in the top right of the Manage MCP server page or in the top right of the chat box in the box icon.

Learn more in the official documentation ↗

1{
2    "mcpServers": {
3      "agent-handler": {
4        "command": "npx",
5        "args": [
6          "-y",
7          "mcp-remote@latest",
8          "https://ah-api.merge.dev/api/v1/tool-packs/<tool-pack-id>/registered-users/<registered-user-id>/mcp",
9          "--header",
10          "Authorization: Bearer ${AUTH_TOKEN}"
11        ],
12        "env": {
13          "AUTH_TOKEN": "<ah-production-access-key>"
14        }
15      }
16    }
17  }
Copy Code

In Command Palette (Cmd+Shift+P on macOS, Ctrl+Shift+P on Windows), run "MCP: Open User Configuration".

You can then add the configuration below and press "start" right under servers. Enter the auth token when prompted.

Learn more in the official documentation ↗

1{
2  "inputs": [
3    {
4      "type": "promptString",
5      "id": "agent-handler-auth",
6      "description": "Agent Handler AUTH_TOKEN", // "yMt*****" when prompt
7      "password": true
8    }
9  ],
10  "servers": {
11    "agent-handler": {
12      "type": "stdio",
13      "command": "npx",
14      "args": [
15        "-y",
16        "mcp-remote@latest",
17        "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
18        "--header",
19        "Authorization: Bearer ${input:agent-handler-auth}"
20      ]
21    }
22  }
23}
Copy Code

FAQs on using Merge's Klaviyo  MCP server

FAQs on using Merge's Klaviyo  MCP server

Explore other MCP servers built and managed by Merge

activecampaign
ActiveCampaign
adobe_pdf_services
Adobe PDF Services
ahrefs
Ahrefs
airtable
Airtable
amadeus
Amadeus
amazon_s3
Amazon S3
amplitude
Amplitude
anaplan
Anaplan
apollo
Apollo
arize
Arize
articulate
Articulate Reach 360
asana
Asana
attio
Attio
aviationstack
Aviationstack
bamboohr
BambooHR
basecamp
Basecamp
bitbucket
Bitbucket
bitly
Bitly
box
Box
cms_coverage
CMS Coverage
calendly
Calendly
canva
Canva
clickup
ClickUp
clinicaltrials
ClinicalTrials.gov

Ready to try it out?

Whether you're an engineer experimenting with agents or a product manager looking to add tools, you can get started for free now