Skip to main content
Glama

Klaviyo MCP Server

events.js2.67 kB
import { z } from 'zod'; import * as klaviyoClient from '../klaviyo-client.js'; export function registerEventTools(server) { // Get events server.tool( "get_events", { filter: z.string().optional().describe("Filter query for events"), page_size: z.number().min(1).max(100).optional().describe("Number of events per page (1-100)"), page_cursor: z.string().optional().describe("Cursor for pagination") }, async (params) => { try { const events = await klaviyoClient.get('/events/', params); return { content: [{ type: "text", text: JSON.stringify(events, null, 2) }] }; } catch (error) { return { content: [{ type: "text", text: `Error retrieving events: ${error.message}` }], isError: true }; } }, { description: "Get events from Klaviyo" } ); // Create event server.tool( "create_event", { metric: z.object({ name: z.string().describe("Name of the metric") }).describe("Metric information for the event"), profile: z.object({ email: z.string().email().describe("Email of the customer") }).describe("Profile information for the event"), properties: z.record(z.any()).optional().describe("Additional properties for the event"), time: z.string().optional().describe("ISO timestamp for the event"), value: z.number().optional().describe("Numeric value for the event") }, async (params) => { try { // Format payload according to the latest API structure const payload = { data: { type: "event", attributes: { metric: params.metric, profile: params.profile, properties: params.properties || {}, time: params.time || new Date().toISOString(), value: params.value !== undefined ? params.value : 0 } } }; const result = await klaviyoClient.post('/events/', payload); return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] }; } catch (error) { return { content: [{ type: "text", text: `Error creating event: ${error.message}` }], isError: true }; } }, { description: "Create a new event in Klaviyo" } ); }

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ivan-rivera-projects/Klaviyo-MCP-Server-Enhanced'

If you have feedback or need assistance with the MCP directory API, please join our Discord server