mcpField
K
Klaviyo MCP Server

Klaviyo MCP Server

Local
github.com/relay-commerceBusiness & Marketing0Updated 74w ago

About Klaviyo MCP Server

A Python MCP server that lets AI assistants access Klaviyo APIs for customer and marketing data. Its tools cover profiles, campaigns, flows, analytics, and other major API areas, with validation and rate-limit handling.

Key features

  1. 0134 tools across major Klaviyo APIs
  2. 02Manage profiles, lists, and segments
  3. 03Create and send campaigns
  4. 04Handle events, flows, and templates
  5. 05Access catalogs, coupons, and reports
  6. 06Input validation and rate-limit handling

Use cases

  1. 01Update customer profiles and list memberships
  2. 02Create and send email campaigns
  3. 03Track events and query campaign performance

MCP support

Exposes Klaviyo API operations as MCP tools for AI assistants and other MCP clients. Each tool uses a Klaviyo Private API Key for authentication.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

No install method listed yet

We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.

Repository

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

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": "[email protected]", "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": "[email protected]"}, "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 LICENSE 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

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.