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.
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
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
-
Clone this repository:
git clone https://github.com/ivan-rivera-projects/Klaviyo-MCP-Server-Enhanced.git cd Klaviyo-MCP-Server-Enhanced -
Install dependencies:
npm install -
Create a
.envfile based on.env.example:cp .env.example .env -
Edit the
.envfile 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:
- ANALYTICS.md - Comprehensive documentation for analytics features and usage
- docs/KLAVIYO_API_REFERENCE.md - Reference for Klaviyo API parameters
🔍 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 reportingget_campaign_performance: Get a comprehensive performance summary for a campaign
Campaigns (Enhanced)
get_campaigns: Get campaigns from Klaviyoget_campaign: Get a specific campaign from Klaviyoget_campaign_message: Get a specific campaign message with template detailsget_campaign_messages: Get all messages for a specific campaignget_campaign_recipient_estimation: Get estimated recipient count for a campaign
Profiles
get_profiles: Get profiles from Klaviyoget_profile: Get a specific profile from Klaviyocreate_profile: Create a new profile in Klaviyoupdate_profile: Update an existing profile in Klaviyodelete_profile: Delete a profile from Klaviyo
Lists & Segments
get_lists: Get lists from Klaviyoget_list: Get a specific list from Klaviyocreate_list: Create a new list in Klaviyoadd_profiles_to_list: Add profiles to a list in Klaviyoget_segments: Get segments from Klaviyoget_segment: Get a specific segment from Klaviyo
Events & Metrics
get_events: Get events from Klaviyocreate_event: Create a new event in Klaviyoget_metrics: Get metrics from Klaviyoget_metric: Get a specific metric from Klaviyo
Flows
get_flows: Get flows from Klaviyoget_flow: Get a specific flow from Klaviyoupdate_flow_status: Update the status of a flow in Klaviyo
Content Management
get_templates: Get templates from Klaviyoget_template: Get a specific template from Klaviyocreate_template: Create a new template in Klaviyoget_images: Get images from Klaviyoget_image: Get a specific image from Klaviyo
E-commerce
get_catalogs: Get catalogs from Klaviyoget_catalog_items: Get items from a catalog in Klaviyoget_catalog_item: Get a specific item from a catalog in Klaviyoget_coupons: Get coupons from Klaviyocreate_coupon_code: Create a new coupon code in Klaviyo
Additional Tools
get_tags: Get tags from Klaviyocreate_tag: Create a new tag in Klaviyoadd_tag_to_resource: Add a tag to a resource in Klaviyoget_webhooks: Get webhooks from Klaviyocreate_webhook: Create a new webhook in Klaviyodelete_webhook: Delete a webhook from Klaviyorequest_profile_deletion: Request deletion of a profile for data privacy complianceget_forms: Get forms from Klaviyoget_form: Get a specific form from Klaviyoget_product_reviews: Get product reviews from Klaviyoget_product_review: Get a specific product review from Klaviyo
🔗 Available Resources
klaviyo://profile/{id}: Get information about a specific profileklaviyo://list/{id}: Get information about a specific listklaviyo://segment/{id}: Get information about a specific segmentklaviyo://campaign/{id}: Get information about a specific campaignklaviyo://flow/{id}: Get information about a specific flowklaviyo://template/{id}: Get information about a specific templateklaviyo://metric/{id}: Get information about a specific metricklaviyo://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
- Original work by Matt Coatsworth
- Enhanced version by Ivan Rivera
🔗 External Resources
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。