Klaviyo MCP Server

Klaviyo MCP Server

A 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.

Category
访问服务器

Tools

get_profiles

create_profile

create_event

get_metrics

query_metric_aggregates

create_webhook

get_profile

update_profile

delete_profile

get_lists

get_list

create_list

add_profiles_to_list

get_segments

get_segment

get_events

get_metric

get_campaigns

get_campaign

get_campaign_message

get_campaign_messages

get_campaign_recipient_estimation

get_campaign_metrics

get_campaign_performance

get_flows

get_flow

get_templates

get_template

get_catalogs

get_catalog_items

update_flow_status

create_template

get_catalog_item

get_tags

create_tag

add_tag_to_resource

get_webhooks

delete_webhook

request_profile_deletion

get_coupons

create_coupon_code

get_forms

get_form

get_product_reviews

get_product_review

get_images

get_image

README

Klaviyo MCP Server Enhanced

Klaviyo + MCP API Version Node.js

A comprehensive Model Context Protocol (MCP) server for interacting with the Klaviyo API. This enhanced version provides advanced analytics capabilities, performance optimizations, and robust error handling while maintaining full compatibility with the original MCP server.

🌟 Key Features

  • Advanced Analytics & Reporting: Access campaign performance metrics, aggregated data, and detailed insights
  • Comprehensive API Coverage: Support for all Klaviyo API endpoints with the latest revision (2024-06-15)
  • Performance Optimizations: Intelligent caching, rate limit handling, and efficient data processing
  • Robust Error Handling: Fallback mechanisms, detailed logging, and graceful degradation
  • Easy Integration: Seamless integration with Claude and other LLMs via the Model Context Protocol

📊 Analytics & Reporting Capabilities

This enhanced version adds powerful analytics capabilities that weren't available in the original:

  • Campaign Performance Metrics: Open rates, click rates, bounce rates, and more
  • Custom Metric Aggregation: Aggregate metrics by time periods, dimensions, and measurements
  • Revenue Attribution: Track revenue generated by campaigns and flows
  • Subscriber Insights: Analyze subscriber growth, engagement, and behavior

🔧 Technical Enhancements

1. Centralized Configuration ✅

  • Created a central configuration system (src/config.js) for all API parameters
  • Made API revision date, valid statistics, and other parameters easily configurable
  • Prevented inconsistencies across different files when API parameters change

2. Enhanced Logging System ✅

  • Implemented a robust logging system with different log levels (debug, info, warn, error)
  • Added specialized logging for API requests and responses
  • Masked sensitive data in logs for security
  • Configurable log destinations and verbosity

3. Intelligent Rate Limiting ✅

  • Added retry logic for rate limit errors
  • Implemented exponential backoff with jitter for retries
  • Added clear feedback when rate limits are encountered
  • Prioritized critical requests during rate limiting

4. Performance Caching ✅

  • Implemented in-memory caching for frequently accessed data
  • Added cache invalidation based on TTL (time-to-live)
  • Optimized cache for different data types (metrics, campaigns, etc.)
  • Cache statistics for monitoring and optimization

5. Error Handling & Fallbacks ✅

  • Comprehensive error handling for all API interactions
  • Fallback mechanisms for degraded operation when primary requests fail
  • Detailed error messages and troubleshooting information
  • JSON parsing error prevention and handling

🔄 API Version

This enhanced version uses the Klaviyo API Revision 2024-06-15, which includes the latest features and improvements. The server is designed to be forward-compatible with future API revisions through the centralized configuration system.

📋 Attribution

This project is an enhanced version of the original Klaviyo MCP Server created by Matt Coatsworth. The original work provided the foundation for this enhanced version.

🚀 Getting Started

Prerequisites

  • Node.js v18 or higher
  • A Klaviyo account with API access
  • A private API key with appropriate scopes (campaigns:read, metrics:read, etc.)

Installation

  1. Clone this repository:

    git clone https://github.com/ivan-rivera-projects/Klaviyo-MCP-Server-Enhanced.git
    cd Klaviyo-MCP-Server-Enhanced
    
  2. Install dependencies:

    npm install
    
  3. Create a .env file based on .env.example:

    cp .env.example .env
    
  4. Edit the .env file to add your Klaviyo API key:

    KLAVIYO_API_KEY=your_private_api_key_here
    LOG_LEVEL=info
    LOG_FILE=/tmp/klaviyo-mcp.log
    LOG_RESPONSES=false
    NODE_ENV=development
    

Starting the Server

Start the server in development mode with automatic reloading:

npm run dev

For production use:

npm start

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.

📚 Documentation

For detailed information about the analytics capabilities and API parameters, see:

🔍 Usage Examples

Getting Campaign Performance Metrics

// Retrieve open rates and click rates for a campaign
get_campaign_metrics({
    id: "01JSQRND0PMH88186NREAJEGGN",
    metrics: ["open_rate", "click_rate", "delivered", "bounce_rate"],
    conversion_metric_id: "VevE7N", // Placed Order metric ID
    start_date: "2025-04-01T00:00:00Z", // Optional: Custom date range
    end_date: "2025-05-01T00:00:00Z"    // Optional: Custom date range
})

Querying Aggregated Metrics

// Count placed orders grouped by month
query_metric_aggregates({
    metric_id: "VevE7N", // Placed Order metric ID
    measurement: "count",
    group_by: ["month"],
    timeframe: "last_30_days", // Predefined timeframe
    // Or use custom dates:
    start_date: "2025-01-01T00:00:00Z",
    end_date: "2025-05-01T00:00:00Z"
})

Getting Campaign Performance Summary

// Get a comprehensive summary of campaign performance
get_campaign_performance({
    id: "01JSQRND0PMH88186NREAJEGGN"
})

🛠️ Available Tools

Analytics & Reporting (New in Enhanced Version)

  • get_campaign_metrics: Get performance metrics for a specific campaign (open rates, click rates, etc.)
  • query_metric_aggregates: Query aggregated metric data for custom analytics reporting
  • get_campaign_performance: Get a comprehensive performance summary for a campaign

Campaigns (Enhanced)

  • get_campaigns: Get campaigns from Klaviyo
  • get_campaign: Get a specific campaign from Klaviyo
  • get_campaign_message: Get a specific campaign message with template details
  • get_campaign_messages: Get all messages for a specific campaign
  • get_campaign_recipient_estimation: Get estimated recipient count for a campaign

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 & Segments

  • 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
  • get_segments: Get segments from Klaviyo
  • get_segment: Get a specific segment from Klaviyo

Events & Metrics

  • get_events: Get events from Klaviyo
  • create_event: Create a new event in Klaviyo
  • get_metrics: Get metrics from Klaviyo
  • get_metric: Get a specific metric 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

Content Management

  • get_templates: Get templates from Klaviyo
  • get_template: Get a specific template from Klaviyo
  • create_template: Create a new template in Klaviyo
  • get_images: Get images from Klaviyo
  • get_image: Get a specific image from Klaviyo

E-commerce

  • 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
  • get_coupons: Get coupons from Klaviyo
  • create_coupon_code: Create a new coupon code in Klaviyo

Additional Tools

  • 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
  • get_webhooks: Get webhooks from Klaviyo
  • create_webhook: Create a new webhook in Klaviyo
  • delete_webhook: Delete a webhook from Klaviyo
  • request_profile_deletion: Request deletion of a profile for data privacy compliance
  • get_forms: Get forms from Klaviyo
  • get_form: Get a specific form from Klaviyo
  • get_product_reviews: Get product reviews from Klaviyo
  • get_product_review: Get a specific product review 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

⚠️ Known Issues and Limitations

  • The Klaviyo API may impose rate limits on reporting endpoints
  • Some metrics may have a delay before they are available in the API
  • Historical data availability may be limited based on your Klaviyo plan
  • When using with Claude Desktop, you may occasionally see JSON parsing warnings that don't affect functionality

📝 License

This project is derived from the original Klaviyo MCP Server. Please contact the original author for licensing information.

👥 Contributors

🔗 External Resources

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选