Klaviyo MCP Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Klaviyo MCP Server Get all profiles that have opened an email in the last 30 days"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Klaviyo MCP Server
A comprehensive Model Context Protocol (MCP) server for interacting with the Klaviyo API. This server provides tools and resources for managing profiles, lists, segments, campaigns, flows, and more in Klaviyo.
## Features
- Complete coverage of Klaviyo API endpoints
- MCP tools for all major Klaviyo operations
- MCP resources for accessing Klaviyo data
- Easy integration with LLMs via the Model Context Protocol
## Setup
1. Clone this repository
2. Install dependencies:
```
npm install
```
3. Create a `.env` file based on `.env.example` and add your Klaviyo API key:
```
KLAVIYO_API_KEY=your_private_api_key_here
```
4. Start the server:
```
npm run dev
```
## Testing with MCP Inspector
You can test the server using the MCP Inspector:
```
npm run inspect
```
This will open a web interface where you can test all the available tools and resources.
## Available Tools
### Profiles
- `get_profiles`: Get profiles from Klaviyo
- `get_profile`: Get a specific profile from Klaviyo
- `create_profile`: Create a new profile in Klaviyo
- `update_profile`: Update an existing profile in Klaviyo
- `delete_profile`: Delete a profile from Klaviyo
### Lists
- `get_lists`: Get lists from Klaviyo
- `get_list`: Get a specific list from Klaviyo
- `create_list`: Create a new list in Klaviyo
- `add_profiles_to_list`: Add profiles to a list in Klaviyo
### Segments
- `get_segments`: Get segments from Klaviyo
- `get_segment`: Get a specific segment from Klaviyo
### Events
- `get_events`: Get events from Klaviyo
- `create_event`: Create a new event in Klaviyo
### Metrics
- `get_metrics`: Get metrics from Klaviyo
- `get_metric`: Get a specific metric from Klaviyo
### Campaigns
- `get_campaigns`: Get campaigns from Klaviyo
- `get_campaign`: Get a specific campaign from Klaviyo
### Flows
- `get_flows`: Get flows from Klaviyo
- `get_flow`: Get a specific flow from Klaviyo
- `update_flow_status`: Update the status of a flow in Klaviyo
### Templates
- `get_templates`: Get templates from Klaviyo
- `get_template`: Get a specific template from Klaviyo
- `create_template`: Create a new template in Klaviyo
### Catalogs
- `get_catalogs`: Get catalogs from Klaviyo
- `get_catalog_items`: Get items from a catalog in Klaviyo
- `get_catalog_item`: Get a specific item from a catalog in Klaviyo
### Tags
- `get_tags`: Get tags from Klaviyo
- `create_tag`: Create a new tag in Klaviyo
- `add_tag_to_resource`: Add a tag to a resource in Klaviyo
### Webhooks
- `get_webhooks`: Get webhooks from Klaviyo
- `create_webhook`: Create a new webhook in Klaviyo
- `delete_webhook`: Delete a webhook from Klaviyo
### Data Privacy
- `request_profile_deletion`: Request deletion of a profile for data privacy compliance
### Coupons
- `get_coupons`: Get coupons from Klaviyo
- `create_coupon_code`: Create a new coupon code in Klaviyo
### Forms
- `get_forms`: Get forms from Klaviyo
- `get_form`: Get a specific form from Klaviyo
### Reviews
- `get_product_reviews`: Get product reviews from Klaviyo
- `get_product_review`: Get a specific product review from Klaviyo
### Images
- `get_images`: Get images from Klaviyo
- `get_image`: Get a specific image from Klaviyo
## Available Resources
- `klaviyo://profile/{id}`: Get information about a specific profile
- `klaviyo://list/{id}`: Get information about a specific list
- `klaviyo://segment/{id}`: Get information about a specific segment
- `klaviyo://campaign/{id}`: Get information about a specific campaign
- `klaviyo://flow/{id}`: Get information about a specific flow
- `klaviyo://template/{id}`: Get information about a specific template
- `klaviyo://metric/{id}`: Get information about a specific metric
- `klaviyo://catalog/{id}`: Get information about a specific catalog
## API Documentation
For more information about the Klaviyo API, see the [official documentation](https://developers.klaviyo.com/en/reference/api_overview).
Available Tools
41 toolsadd_profiles_to_listD
Inputs: list_id (required), profile_ids (required).
add_tag_to_resourceD
Inputs: tag_id (required), resource_id (required), resource_type (required).
create_coupon_codeD
Inputs: code (required), coupon_id (required).
create_eventD
Inputs: metric (required), profile (required), time, value, +1 more.
create_listD
Inputs: name (required), list_type (required).
create_profileD
Inputs: email, last_name, first_name, properties, +2 more.
create_tagD
Inputs: name (required), tag_type (required).
create_templateD
Inputs: html (required), name (required), text.
create_webhookD
Inputs: events (required), endpoint (required), profile_id.
delete_profileD
Inputs: id (required).
delete_webhookD
Inputs: id (required).
get_campaignD
Inputs: id (required).
get_campaignsD
Inputs: filter, page_size, page_cursor.
get_catalog_itemD
Inputs: item_id (required), catalog_id (required).
get_catalog_itemsD
Inputs: catalog_id (required), filter, page_size, page_cursor.
get_catalogsD
Inputs: page_size, page_cursor.
get_couponsD
Inputs: filter, page_size, page_cursor.
get_eventsD
Inputs: filter, page_size, page_cursor.
get_flowD
Inputs: id (required).
get_flowsD
Inputs: filter, page_size, page_cursor.
get_formD
Inputs: id (required).
get_formsD
Inputs: filter, page_size, page_cursor.
get_imageD
Inputs: id (required).
get_imagesD
Inputs: filter, page_size, page_cursor.
get_listD
Inputs: id (required).
get_listsD
Inputs: filter, page_size, page_cursor.
get_metricD
Inputs: id (required).
get_metricsD
Inputs: filter, page_size, page_cursor.
get_product_reviewD
Inputs: id (required).
get_product_reviewsD
Inputs: filter, page_size, page_cursor.
get_profileD
Inputs: id (required).
get_profilesD
Inputs: filter, page_size, page_cursor.
get_segmentD
Inputs: id (required).
get_segmentsD
Inputs: filter, page_size, page_cursor.
get_tagsD
Inputs: filter, page_size, page_cursor.
get_templateD
Inputs: id (required).
get_templatesD
Inputs: filter, page_size, page_cursor.
get_webhooksD
Inputs: page_size, page_cursor.
request_profile_deletionD
Inputs: email, profile_id, phone_number.
update_flow_statusD
Inputs: id (required), status (required).
update_profileD
Inputs: id (required), email, last_name, first_name, +3 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 41 tools
Many tools follow a plural/singular pattern for list vs single resource, which helps distinguish them. However, tools like delete_profile and request_profile_deletion appear to overlap, and pairs like get_metric/get_metrics rely on naming convention alone without descriptions, creating potential misselection.
Most tools use a consistent verb_noun pattern (get, create, update, delete, add), and plural/singular nouns generally indicate list vs single. Inconsistencies exist, such as add_profiles_to_list (plural) vs add_tag_to_resource (singular), and request_profile_deletion deviates from the delete_* style.
With 41 tools, the server is well above the typical 3-15 range. Many resources have both plural and singular getters, inflating the count, and the broad scope makes it feel heavy rather than well-scoped.
The server provides extensive read operations but lacks update/delete for many resources (lists, segments, templates, catalogs, etc.), no remove_tag_from_resource, and no update operations for webhooks or coupons. This leaves significant lifecycle gaps for a CRUD-style API.
Maintenance
Related MCP Connectors
Klaviyo MCP Pack — wraps the Klaviyo API for email marketing
Hosted Klaviyo MCP server for Claude, ChatGPT and Cursor, with each action switched per account.
MCP server for customer-io
MCP server for progressive tool usage at any scale (see https://klavis.ai)
Related MCP Servers
- FlicenseDqualityDmaintenanceA comprehensive Model Context Protocol server that enables interaction with the Klaviyo API, providing tools and resources for managing customer profiles, lists, segments, campaigns, flows, and various marketing automation features.473-
- AlicenseNot gradedqualityFmaintenanceComprehensive MCP server for the Mautic marketing automation API, providing 203 tools for managing contacts, campaigns, emails, segments, and more.2ISC
- AlicenseAqualityBmaintenanceMCP server for the Influencers Club API — creator enrichment, discovery, audience analysis, content data, batch operations, and account management.22118 PyPI13MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server for interacting with Keap CRM, enabling contact and tag management, batch operations, custom fields, and advanced query optimization.MIT