get_metrics
Retrieve marketing metrics from Klaviyo to analyze campaign performance, track customer engagement, and monitor key marketing indicators using filter queries and pagination.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| filter | No | Filter query for metrics | |
| page_size | No | Number of metrics per page (1-100) | |
| page_cursor | No | Cursor for pagination |
Implementation Reference
- src/tools/metrics.js:13-25 (handler)The handler function that implements the core logic of the 'get_metrics' tool by calling the Klaviyo API via klaviyoClient.get and formatting the response as MCP content or error.async (params) => { try { const metrics = await klaviyoClient.get('/metrics/', params); return { content: [{ type: "text", text: JSON.stringify(metrics, null, 2) }] }; } catch (error) { return { content: [{ type: "text", text: `Error retrieving metrics: ${error.message}` }], isError: true }; } },
- src/tools/metrics.js:8-12 (schema)Zod schema defining the input parameters for the 'get_metrics' tool: optional filter, page_size (1-100), and page_cursor.{ filter: z.string().optional().describe("Filter query for metrics"), page_size: z.number().min(1).max(100).optional().describe("Number of metrics per page (1-100)"), page_cursor: z.string().optional().describe("Cursor for pagination") },
- src/tools/metrics.js:6-27 (registration)The server.tool call that registers the 'get_metrics' tool, including its name, input schema, handler function, and description.server.tool( "get_metrics", { filter: z.string().optional().describe("Filter query for metrics"), page_size: z.number().min(1).max(100).optional().describe("Number of metrics per page (1-100)"), page_cursor: z.string().optional().describe("Cursor for pagination") }, async (params) => { try { const metrics = await klaviyoClient.get('/metrics/', params); return { content: [{ type: "text", text: JSON.stringify(metrics, null, 2) }] }; } catch (error) { return { content: [{ type: "text", text: `Error retrieving metrics: ${error.message}` }], isError: true }; } }, { description: "Get metrics from Klaviyo" } );
- src/server.js:36-36 (registration)Invocation of registerMetricTools which registers the 'get_metrics' tool (among others) on the main MCP server instance.registerMetricTools(server);