Klaviyo-MCP-Server

relay-commerce/Klaviyo-MCP-Server

3.2

If you are the rightful owner of Klaviyo-MCP-Server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

The Klaviyo MCP Server is a comprehensive Model Context Protocol server that provides full access to Klaviyo's API functionality, enabling AI assistants to interact with Klaviyo's APIs through a variety of tools.

Tools
5
Resources
0
Prompts
0

Klaviyo MCP Server

A comprehensive Model Context Protocol (MCP) server that provides complete access to Klaviyo's API functionality. This server enables AI assistants like Claude to interact with all major Klaviyo APIs through 34+ tools covering profiles, campaigns, flows, lists, segments, events, and more.

๐Ÿš€ Features

Complete API Coverage

  • Profiles API (4 tools) - Create, read, update, search customer profiles
  • Lists API (4 tools) - Manage lists and list memberships
  • Campaigns API (4 tools) - Create, manage, and send email campaigns
  • Segments API (3 tools) - Create and query dynamic customer segments
  • Events API (3 tools) - Track and retrieve customer events
  • Flows API (3 tools) - Manage automated email flows
  • Metrics API (2 tools) - Access performance metrics
  • Templates API (2 tools) - Manage email templates
  • Catalogs API (3 tools) - Manage product catalogs and variants
  • Coupons API (2 tools) - Create and manage discount coupons
  • Reporting API (2 tools) - Query campaign and flow analytics
  • Accounts API (2 tools) - Access account information

Key Features

  • โœ… 34 tools covering all major Klaviyo API endpoints
  • โœ… Secure authentication using Klaviyo private API keys
  • โœ… Comprehensive error handling for network, HTTP, and API errors
  • โœ… Rate limiting protection with timeout and retry logic
  • โœ… Input validation for all parameters and JSON data
  • โœ… Consistent interface - all tools follow the same patterns
  • โœ… JSON:API format support with filtering, pagination, and sorting
  • โœ… Complete documentation with usage examples

๐Ÿ“‹ Prerequisites

  • Python 3.10 or higher
  • Klaviyo account with API access
  • Klaviyo Private API Key (Get yours here)

๐Ÿ› ๏ธ Installation

Quick Setup

  1. Clone the repository:

    git clone https://github.com/relay-commerce/Klaviyo-MCP-Server.git
    cd Klaviyo-MCP-Server
    
  2. Run the setup script:

    chmod +x klaviyo_setup.sh
    ./klaviyo_setup.sh
    
  3. Get your Klaviyo API key:

Manual Setup

  1. Create virtual environment:

    python3 -m venv klaviyo_mcp_env
    source klaviyo_mcp_env/bin/activate
    
  2. Install dependencies:

    pip install -r klaviyo_requirements.txt
    

๐Ÿงช Testing

Test the server to ensure everything is working:

source klaviyo_mcp_env/bin/activate
python test_klaviyo_server.py

You should see output confirming all 34 tools are available:

โœ… SUCCESS: All expected tools are available!
Test completed. Total tools available: 34

๐Ÿ”ง Usage

With Claude Desktop

Add the server to your Claude Desktop configuration file:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "klaviyo": {
      "command": "python",
      "args": ["/absolute/path/to/klaviyo_mcp_server.py"]
    }
  }
}

With MCP CLI

# List available tools
mcp-cli tool list --server klaviyo

# Call a specific tool
mcp-cli tool call get_profiles --server klaviyo --input '{"api_key": "your-api-key"}'

๐Ÿ“– API Examples

Create a Customer Profile

create_profile(
    api_key="your-api-key",
    profile_data='{"email": "customer@example.com", "first_name": "John", "last_name": "Doe"}'
)

Get All Campaigns

get_campaigns(
    api_key="your-api-key",
    filter_expr="equals(status,'draft')",
    page_size=50
)

Track a Custom Event

create_event(
    api_key="your-api-key",
    event_data='{"metric": {"name": "Placed Order"}, "profile": {"email": "customer@example.com"}, "properties": {"value": 99.99, "item_count": 2}}'
)

Create a Customer Segment

create_segment(
    api_key="your-api-key",
    segment_data='{"name": "High Value Customers", "definition": {"condition_groups": [{"conditions": [{"field": "properties.total_spent", "operator": "greater-than", "value": 1000}]}]}}'
)

Send a Campaign

send_campaign(
    api_key="your-api-key",
    campaign_id="campaign-id-here"
)

๐Ÿ” Authentication

The server uses Klaviyo Private API Keys for authentication. Each tool requires an api_key parameter:

  • Never hardcode API keys in your code
  • Pass API keys as parameters to each tool call
  • Ensure your API key has the necessary scopes for the operations you want to perform

Required API Scopes

Make sure your Klaviyo API key has these scopes:

  • profiles:read, profiles:write
  • lists:read, lists:write
  • campaigns:read, campaigns:write
  • segments:read, segments:write
  • events:read, events:write
  • flows:read, flows:write
  • metrics:read
  • templates:read, templates:write
  • catalogs:read, catalogs:write
  • coupons:read, coupons:write

๐Ÿ“Š Available Tools

Profiles API (4 tools)
  • get_profiles() - List all profiles with filtering, pagination, and sorting
  • create_profile() - Create new customer profiles
  • get_profile() - Get specific profile by ID
  • update_profile() - Update existing profile data
Lists API (4 tools)
  • get_lists() - List all lists in account
  • create_list() - Create new lists
  • get_list_profiles() - Get profiles in a specific list
  • add_profiles_to_list() - Add profiles to lists
Campaigns API (4 tools)
  • get_campaigns() - List all campaigns
  • create_campaign() - Create new email campaigns
  • get_campaign() - Get specific campaign details
  • send_campaign() - Send campaigns immediately
Segments API (3 tools)
  • get_segments() - List all segments
  • create_segment() - Create new dynamic segments
  • get_segment_profiles() - Get profiles in segments
Events API (3 tools)
  • get_events() - List events with filtering and sorting
  • create_event() - Track new customer events
  • get_event() - Get specific event details
Flows API (3 tools)
  • get_flows() - List all automated flows
  • get_flow() - Get specific flow details
  • update_flow_status() - Update flow status (draft/live/stopped/archived)
Other APIs

Metrics API (2 tools)

  • get_metrics() - List all available metrics
  • get_metric() - Get specific metric details

Templates API (2 tools)

  • get_templates() - List all email templates
  • create_template() - Create new email templates

Catalogs API (3 tools)

  • get_catalog_items() - List catalog items
  • create_catalog_item() - Create new catalog items
  • get_catalog_variants() - List catalog variants

Coupons API (2 tools)

  • get_coupons() - List all coupons
  • create_coupon() - Create new coupons

Reporting API (2 tools)

  • query_campaign_values() - Get campaign performance metrics
  • query_flow_values() - Get flow performance metrics

Accounts API (2 tools)

  • get_accounts() - Get account information
  • get_account() - Get specific account details

โšก Rate Limits

Klaviyo has the following rate limits:

  • Burst: 75 requests per second
  • Steady: 700 requests per minute

The server includes built-in protection with timeout handling and proper error messages for rate limit scenarios.

๐Ÿ›ก๏ธ Security

  • โœ… API keys are passed as parameters (never hardcoded)
  • โœ… All requests use HTTPS
  • โœ… Proper error handling prevents sensitive data exposure
  • โœ… Input validation for all parameters
  • โœ… No secrets stored in code or logs

๐Ÿ”ง Technical Details

  • API Base URL: https://a.klaviyo.com/api
  • API Revision: 2025-04-15
  • Protocol: JSON:API format
  • Authentication: Klaviyo-API-Key header
  • Python Version: 3.10+
  • MCP Version: 1.0.0+

๐Ÿ“ File Structure

Klaviyo-MCP-Server/
โ”œโ”€โ”€ klaviyo_mcp_server.py      # Main MCP server implementation
โ”œโ”€โ”€ klaviyo_requirements.txt   # Python dependencies
โ”œโ”€โ”€ klaviyo_setup.sh          # Setup script
โ”œโ”€โ”€ klaviyo_documentation.md  # Detailed documentation
โ”œโ”€โ”€ test_klaviyo_server.py    # Test script
โ””โ”€โ”€ README.md                 # This file

๐Ÿค Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

๐Ÿ“„ License

This project is licensed under the MIT License - see the file for details.

๐Ÿ†˜ Support

๐Ÿ† Why This MCP Server?

This is the most comprehensive Klaviyo MCP integration available, providing:

  • โœ… Complete API coverage - All major Klaviyo endpoints
  • โœ… Production ready - Proper error handling and security
  • โœ… Easy to use - Consistent interface across all tools
  • โœ… Well documented - Clear examples and setup instructions
  • โœ… Actively maintained - Regular updates and improvements

Perfect for businesses wanting to integrate Klaviyo functionality into AI-powered workflows, customer service automation, marketing automation, and data analysis tasks.


Made with โค๏ธ for the Klaviyo and MCP communities