dtc-mcp 1.0.2 → 1.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/data/docs.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": "v2026-05-25",
3
- "generatedAt": "2026-05-25T02:57:04.731Z",
3
+ "generatedAt": "2026-05-25T05:28:37.305Z",
4
4
  "chunks": [
5
5
  {
6
6
  "id": "guide.output-discipline",
@@ -52,8 +52,8 @@
52
52
  "title": "Recipe: top N campaigns by revenue (replaces klaviyo_campaign_summary)",
53
53
  "platform": "guide",
54
54
  "category": "recipe",
55
- "summary": "Replicates the old klaviyo_campaign_summary tool in <20 lines.",
56
- "content": "```js\nconst metricId = await klaviyo.getConversionMetricId();\nconst report = await klaviyo.reporting.campaignValues({\n data: { type: 'campaign-values-report', attributes: {\n timeframe: { key: 'last_30_days' },\n conversion_metric_id: metricId,\n statistics: ['recipients', 'opens_unique', 'open_rate', 'clicks_unique', 'click_rate', 'conversion_value'],\n }}\n});\n\nconst rows = (report.data.attributes.results || [])\n .map(r => ({\n campaign_id: r.groupings.campaign_id,\n recipients: r.statistics.recipients,\n open_rate: r.statistics.open_rate,\n click_rate: r.statistics.click_rate,\n revenue: r.statistics.conversion_value,\n }))\n .sort((a, b) => b.revenue - a.revenue)\n .slice(0, 10);\n\n// Hydrate names (only for the top 10 — saves rate-limit budget)\nfor (const row of rows) {\n const { data } = await klaviyo.campaigns.get(row.campaign_id, {\n 'fields[campaign]': 'name,send_time',\n });\n row.name = data.attributes.name;\n row.send_time = data.attributes.send_time;\n}\nreturn rows;\n```",
55
+ "summary": "Replicates the old klaviyo_campaign_summary tool in <30 lines.",
56
+ "content": "Aggregates report rows up to the campaign level before ranking — see `klaviyo.reporting.campaignValues` for why the raw rows are per-message and must be summed first.\n\n```js\nconst metricId = await klaviyo.getConversionMetricId();\nconst report = await klaviyo.reporting.campaignValues({\n data: { type: 'campaign-values-report', attributes: {\n timeframe: { key: 'last_30_days' },\n conversion_metric_id: metricId,\n statistics: ['recipients', 'opens_unique', 'clicks_unique', 'conversion_value'],\n }}\n});\n\n// Sum across all (campaign_id, message_id, channel) rows for each campaign_id.\nconst byCampaign = new Map();\nfor (const r of report.data.attributes.results || []) {\n const id = r.groupings.campaign_id;\n const slot = byCampaign.get(id) ?? { campaign_id: id, recipients: 0, opens_unique: 0, clicks_unique: 0, revenue: 0 };\n slot.recipients += r.statistics.recipients || 0;\n slot.opens_unique += r.statistics.opens_unique || 0;\n slot.clicks_unique += r.statistics.clicks_unique || 0;\n slot.revenue += r.statistics.conversion_value || 0;\n byCampaign.set(id, slot);\n}\n\nconst rows = [...byCampaign.values()]\n .map(c => ({ ...c,\n open_rate: c.recipients ? c.opens_unique / c.recipients : 0,\n click_rate: c.recipients ? c.clicks_unique / c.recipients : 0,\n }))\n .sort((a, b) => b.revenue - a.revenue)\n .slice(0, 10);\n\n// Hydrate names (only for the top 10 — saves rate-limit budget)\nfor (const row of rows) {\n const { data } = await klaviyo.campaigns.get(row.campaign_id, {\n 'fields[campaign]': 'name,send_time',\n });\n row.name = data.attributes.name;\n row.send_time = data.attributes.send_time;\n}\nreturn rows;\n```",
57
57
  "tags": [
58
58
  "recipe",
59
59
  "campaigns",
@@ -61,6 +61,21 @@
61
61
  "top"
62
62
  ]
63
63
  },
64
+ {
65
+ "id": "guide.recipe.top-flows",
66
+ "title": "Recipe: top N flows by revenue",
67
+ "platform": "guide",
68
+ "category": "recipe",
69
+ "summary": "Rank live flows by 30-day attributed revenue. Aggregates per-message report rows up to flow level.",
70
+ "content": "Flow value reports return one row per (flow_id, flow_message_id, send_channel). A 5-message welcome flow shows up as 5 rows. To rank FLOWS (not individual messages within flows) you have to sum the per-message rows. Then optionally hydrate names + filter to live status.\n\n```js\nconst metricId = await klaviyo.getConversionMetricId();\nconst report = await klaviyo.reporting.flowValues({\n data: { type: 'flow-values-report', attributes: {\n timeframe: { key: 'last_30_days' },\n conversion_metric_id: metricId,\n statistics: ['recipients', 'opens_unique', 'clicks_unique', 'conversion_value'],\n }}\n});\n\n// Sum across all rows for each flow_id.\nconst byFlow = new Map();\nfor (const r of report.data.attributes.results || []) {\n const id = r.groupings.flow_id;\n const slot = byFlow.get(id) ?? { flow_id: id, recipients: 0, opens_unique: 0, clicks_unique: 0, revenue: 0, messageCount: 0 };\n slot.recipients += r.statistics.recipients || 0;\n slot.opens_unique += r.statistics.opens_unique || 0;\n slot.clicks_unique += r.statistics.clicks_unique || 0;\n slot.revenue += r.statistics.conversion_value || 0;\n slot.messageCount += 1;\n byFlow.set(id, slot);\n}\n\nconst rows = [...byFlow.values()]\n .map(f => ({ ...f,\n open_rate: f.recipients ? f.opens_unique / f.recipients : 0,\n click_rate: f.recipients ? f.clicks_unique / f.recipients : 0,\n }))\n .sort((a, b) => b.revenue - a.revenue)\n .slice(0, 5);\n\n// Hydrate names + status + trigger_type. Filter to live if the user asked for it.\nfor (const row of rows) {\n const { data } = await klaviyo.flows.get(row.flow_id, {\n 'fields[flow]': 'name,status,trigger_type',\n });\n row.name = data.attributes.name;\n row.status = data.attributes.status;\n row.trigger_type = data.attributes.trigger_type;\n}\nreturn rows;\n```",
71
+ "tags": [
72
+ "recipe",
73
+ "flows",
74
+ "summary",
75
+ "top",
76
+ "revenue"
77
+ ]
78
+ },
64
79
  {
65
80
  "id": "guide.shopify-not-configured",
66
81
  "title": "Klaviyo-only mode (no Shopify)",
@@ -108,7 +123,7 @@
108
123
  "platform": "klaviyo",
109
124
  "category": "method",
110
125
  "summary": "List campaigns (sugar for klaviyo.get('campaigns', ...)).",
111
- "content": "## klaviyo.campaigns.list(params?)\n\nSee https://developers.klaviyo.com/en/reference/get_campaigns. Filter syntax required — at minimum a `filter` param scoping to a channel.\n\n```js\nconst { data } = await klaviyo.campaigns.list({\n filter: 'equals(messages.channel,\"email\")',\n sort: '-send_time',\n 'page[size]': '20',\n 'fields[campaign]': 'name,status,send_time',\n});\nreturn data.map(c => ({ id: c.id, ...c.attributes }));\n```",
126
+ "content": "## klaviyo.campaigns.list(params?)\n\nSee https://developers.klaviyo.com/en/reference/get_campaigns. Filter syntax required — at minimum a `filter` param scoping to a channel.\n\nValid `sort` values: `created_at`, `updated_at`, `scheduled_at`, `id`, `name` (prefix with `-` for descending). NOTE: `send_time` is a response field but is NOT a valid sort key — use `-scheduled_at` to get the most-recently-sent campaigns first.\n\n```js\nconst { data } = await klaviyo.campaigns.list({\n filter: 'equals(messages.channel,\"email\")',\n sort: '-scheduled_at',\n 'page[size]': '20',\n 'fields[campaign]': 'name,status,send_time,scheduled_at',\n});\nreturn data.map(c => ({ id: c.id, ...c.attributes }));\n```",
112
127
  "tags": [
113
128
  "klaviyo",
114
129
  "campaigns",
@@ -4258,7 +4273,7 @@
4258
4273
  "platform": "klaviyo",
4259
4274
  "category": "method",
4260
4275
  "summary": "Campaign reporting (revenue, opens, clicks). Cached 10 min.",
4261
- "content": "## klaviyo.reporting.campaignValues(body)\n\nWrapper for `POST /campaign-values-reports`. Reporting tier — rate limited at 1/s, 2/min. Results cached 10 minutes.\n\n```js\nconst metricId = await klaviyo.getConversionMetricId();\nconst report = await klaviyo.reporting.campaignValues({\n data: { type: 'campaign-values-report', attributes: {\n timeframe: { key: 'last_30_days' },\n conversion_metric_id: metricId,\n statistics: ['recipients', 'opens', 'open_rate', 'clicks', 'click_rate', 'conversion_value', 'conversions'],\n }}\n});\nreturn report.data.attributes.results\n .sort((a, b) => b.statistics.conversion_value - a.statistics.conversion_value)\n .slice(0, 5);\n```",
4276
+ "content": "## klaviyo.reporting.campaignValues(body)\n\nWrapper for `POST /campaign-values-reports`. Reporting tier — rate limited at 1/s, 2/min. Results cached 10 minutes.\n\n**Response grain (important).** Each row in `report.data.attributes.results` is keyed by `(campaign_id, campaign_message_id, send_channel)`, NOT by campaign. A campaign with multiple message variations (A/B tests, multi-channel sends) produces multiple rows. For campaign-level totals (revenue, recipients, conversions) you MUST sum the `statistics.*` fields across all rows sharing the same `campaign_id` before sorting. A naive `sort + slice` of raw rows ranks individual messages, not campaigns.\n\n```js\nconst metricId = await klaviyo.getConversionMetricId();\nconst report = await klaviyo.reporting.campaignValues({\n data: { type: 'campaign-values-report', attributes: {\n timeframe: { key: 'last_30_days' },\n conversion_metric_id: metricId,\n statistics: ['recipients', 'opens', 'open_rate', 'clicks', 'click_rate', 'conversion_value', 'conversions'],\n }}\n});\n\n// Aggregate per campaign_id (sum revenue/recipients/etc., weighted-mean rates).\nconst byCampaign = new Map();\nfor (const row of report.data.attributes.results || []) {\n const id = row.groupings.campaign_id;\n const slot = byCampaign.get(id) ?? { campaign_id: id, revenue: 0, recipients: 0, opens: 0, clicks: 0 };\n slot.revenue += row.statistics.conversion_value || 0;\n slot.recipients += row.statistics.recipients || 0;\n slot.opens += row.statistics.opens || 0;\n slot.clicks += row.statistics.clicks || 0;\n byCampaign.set(id, slot);\n}\nreturn [...byCampaign.values()]\n .map(c => ({ ...c, open_rate: c.recipients ? c.opens / c.recipients : 0, click_rate: c.recipients ? c.clicks / c.recipients : 0 }))\n .sort((a, b) => b.revenue - a.revenue)\n .slice(0, 5);\n```",
4262
4277
  "tags": [
4263
4278
  "klaviyo",
4264
4279
  "reporting",
@@ -4272,7 +4287,7 @@
4272
4287
  "platform": "klaviyo",
4273
4288
  "category": "method",
4274
4289
  "summary": "Flow reporting (revenue, opens, clicks). Cached 10 min.",
4275
- "content": "## klaviyo.reporting.flowValues(body)\n\nSame shape as campaignValues but for flows. `POST /flow-values-reports`.\n\n```js\nconst metricId = await klaviyo.getConversionMetricId();\nconst report = await klaviyo.reporting.flowValues({\n data: { type: 'flow-values-report', attributes: {\n timeframe: { key: 'last_30_days' },\n conversion_metric_id: metricId,\n statistics: ['recipients', 'click_rate', 'conversion_rate', 'conversion_value'],\n }}\n});\n```",
4290
+ "content": "## klaviyo.reporting.flowValues(body)\n\nSame shape as campaignValues but for flows. `POST /flow-values-reports`. Reporting tier — rate limited at 1/s, 2/min. Results cached 10 minutes.\n\n**Response grain (important).** Each row in `report.data.attributes.results` is keyed by `(flow_id, flow_message_id, send_channel)`, NOT by flow. A typical welcome / abandoned-cart flow has 5-10 messages → 5-10 rows per flow. For flow-level totals (revenue, recipients) you MUST sum the `statistics.*` fields across all rows sharing the same `flow_id` before sorting. A naive `sort + slice` of raw rows ranks individual messages-within-flows, not flows.\n\n```js\nconst metricId = await klaviyo.getConversionMetricId();\nconst report = await klaviyo.reporting.flowValues({\n data: { type: 'flow-values-report', attributes: {\n timeframe: { key: 'last_30_days' },\n conversion_metric_id: metricId,\n statistics: ['recipients', 'opens_unique', 'click_rate', 'conversion_rate', 'conversion_value'],\n }}\n});\n\n// Aggregate per flow_id (correct flow-level totals).\nconst byFlow = new Map();\nfor (const row of report.data.attributes.results || []) {\n const id = row.groupings.flow_id;\n const slot = byFlow.get(id) ?? { flow_id: id, revenue: 0, recipients: 0, opens_unique: 0 };\n slot.revenue += row.statistics.conversion_value || 0;\n slot.recipients += row.statistics.recipients || 0;\n slot.opens_unique += row.statistics.opens_unique || 0;\n byFlow.set(id, slot);\n}\nreturn [...byFlow.values()]\n .map(f => ({ ...f, open_rate: f.recipients ? f.opens_unique / f.recipients : 0 }))\n .sort((a, b) => b.revenue - a.revenue)\n .slice(0, 5);\n```",
4276
4291
  "tags": [
4277
4292
  "klaviyo",
4278
4293
  "reporting",
package/dist/index.js CHANGED
@@ -17,5 +17,5 @@ server.connect(transport).catch((err) => {
17
17
  console.error("[dtc-mcp] fatal: failed to connect:", err);
18
18
  process.exit(1);
19
19
  });
20
- console.error("[dtc-mcp] v1.0.2 ready");
20
+ console.error("[dtc-mcp] v1.0.4 ready");
21
21
  //# sourceMappingURL=index.js.map
@@ -25,6 +25,9 @@ export declare function klaviyoGet(path: string, options?: KlaviyoGetOptions): P
25
25
  * don't waste a roundtrip + retry. Rules:
26
26
  * - `pageSize` → `page[size]`, `pageCursor` → `page[cursor]`
27
27
  * - `fields: { campaign: ['name','status'] }` → `'fields[campaign]': 'name,status'`
28
+ * - `sort: '-send_time'` → `sort: '-scheduled_at'` (send_time is a response
29
+ * field but not a valid sort key on /campaigns — silent rewrite spares
30
+ * a wasted API call + retry. See KLAVIYO_SORT_ALIASES.)
28
31
  * - Any value that's not a string is coerced via String() (booleans/numbers
29
32
  * are valid query values; arrays become comma-joined strings)
30
33
  * Already-canonical bracket keys pass through unchanged.
@@ -112,6 +112,9 @@ export async function klaviyoGet(path, options = {}) {
112
112
  * don't waste a roundtrip + retry. Rules:
113
113
  * - `pageSize` → `page[size]`, `pageCursor` → `page[cursor]`
114
114
  * - `fields: { campaign: ['name','status'] }` → `'fields[campaign]': 'name,status'`
115
+ * - `sort: '-send_time'` → `sort: '-scheduled_at'` (send_time is a response
116
+ * field but not a valid sort key on /campaigns — silent rewrite spares
117
+ * a wasted API call + retry. See KLAVIYO_SORT_ALIASES.)
115
118
  * - Any value that's not a string is coerced via String() (booleans/numbers
116
119
  * are valid query values; arrays become comma-joined strings)
117
120
  * Already-canonical bracket keys pass through unchanged.
@@ -137,7 +140,11 @@ export function normalizeKlaviyoParams(input) {
137
140
  }
138
141
  const alias = KLAVIYO_PARAM_ALIASES[key];
139
142
  const canonicalKey = alias ?? key;
140
- out[canonicalKey] = Array.isArray(raw) ? raw.join(",") : String(raw);
143
+ let value = Array.isArray(raw) ? raw.join(",") : String(raw);
144
+ if (canonicalKey === "sort") {
145
+ value = KLAVIYO_SORT_ALIASES[value] ?? value;
146
+ }
147
+ out[canonicalKey] = value;
141
148
  }
142
149
  return out;
143
150
  }
@@ -146,6 +153,16 @@ const KLAVIYO_PARAM_ALIASES = {
146
153
  pageCursor: "page[cursor]",
147
154
  pageCount: "page[count]",
148
155
  };
156
+ /** Sort-value aliases. The LLM reflexively reaches for response-field names
157
+ * (`send_time`, `open_time`, etc.) when sorting, but Klaviyo's API only
158
+ * accepts a narrow allowlist. We silently rewrite the common misreaches to
159
+ * their semantically-equivalent valid sort keys. Both `send_time` and
160
+ * `scheduled_at` order sent campaigns identically in practice, so the
161
+ * rewrite is loss-free for the typical "most recent campaigns" use case. */
162
+ const KLAVIYO_SORT_ALIASES = {
163
+ send_time: "scheduled_at",
164
+ "-send_time": "-scheduled_at",
165
+ };
149
166
  /**
150
167
  * POST to a Klaviyo endpoint. Used primarily for reporting endpoints.
151
168
  * Reporting POSTs are cached with a 10-minute TTL — without this, the LLM
@@ -1 +1 @@
1
- {"version":3,"file":"host.js","sourceRoot":"","sources":["../../../src/sdk/klaviyo/host.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"host.js","sourceRoot":"","sources":["../../../src/sdk/klaviyo/host.ts"],"names":[],"mappings":"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"}
package/dist/server.js CHANGED
@@ -5,7 +5,7 @@ import { registerReadDoc } from "./tools/read_doc.js";
5
5
  export function createServer() {
6
6
  const server = new McpServer({
7
7
  name: "dtc-mcp",
8
- version: "1.0.2",
8
+ version: "1.0.4",
9
9
  });
10
10
  registerExecuteCode(server);
11
11
  registerSearchDocs(server);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dtc-mcp",
3
- "version": "1.0.2",
3
+ "version": "1.0.4",
4
4
  "description": "Code-execution MCP server for Klaviyo + Shopify analytics. The LLM writes TypeScript against typed SDKs in a stateful V8 sandbox — three composable tools instead of dozens.",
5
5
  "type": "module",
6
6
  "bin": {