@mailshot/mcp 1.4.0 → 1.6.0

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/dist/config.d.ts CHANGED
@@ -4,7 +4,8 @@ export interface McpConfig {
4
4
  eventsTableName: string;
5
5
  templateBucketName: string;
6
6
  eventBusName: string;
7
- stackName?: string;
7
+ broadcastFnName: string;
8
+ stackName: string;
8
9
  }
9
10
  export declare function resolveConfig(): McpConfig;
10
11
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA8BD,wBAAgB,aAAa,IAAI,SAAS,CAkBzC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;CACnB;AA8BD,wBAAgB,aAAa,IAAI,SAAS,CA4BzC"}
package/dist/config.js CHANGED
@@ -75,11 +75,20 @@ function resolveConfig() {
75
75
  const eventsTableName = process.env.EVENTS_TABLE_NAME;
76
76
  const templateBucketName = process.env.TEMPLATE_BUCKET_NAME;
77
77
  const eventBusName = process.env.EVENT_BUS_NAME;
78
- const stackName = process.env.STACK_NAME || undefined;
79
- if (!tableName || !eventsTableName || !templateBucketName || !eventBusName) {
80
- throw new Error("Missing required env vars: TABLE_NAME, EVENTS_TABLE_NAME, TEMPLATE_BUCKET_NAME, EVENT_BUS_NAME. " +
78
+ const stackName = process.env.STACK_NAME;
79
+ if (!tableName || !eventsTableName || !templateBucketName || !eventBusName || !stackName) {
80
+ throw new Error("Missing required env vars: TABLE_NAME, EVENTS_TABLE_NAME, TEMPLATE_BUCKET_NAME, EVENT_BUS_NAME, STACK_NAME. " +
81
81
  "Ensure .env exists in the repo root or set them in the environment.");
82
82
  }
83
- return { region, tableName, eventsTableName, templateBucketName, eventBusName, stackName };
83
+ const broadcastFnName = `${stackName}-broadcast`;
84
+ return {
85
+ region,
86
+ tableName,
87
+ eventsTableName,
88
+ templateBucketName,
89
+ eventBusName,
90
+ broadcastFnName,
91
+ stackName,
92
+ };
84
93
  }
85
94
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwCA,sCAkBC;AA1DD,4CAA8B;AAC9B,gDAAkC;AAWlC,SAAS,eAAe;IACtB,IAAI,GAAG,GAAG,SAAS,CAAC;IACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YAAE,OAAO,GAAG,CAAC;QACtD,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,qBAAqB,CAAC,CAAC;YAAE,OAAO,GAAG,CAAC;QACrE,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,MAAM,KAAK,GAAG;YAAE,MAAM;QAC1B,GAAG,GAAG,MAAM,CAAC;IACf,CAAC;IACD,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC;AACvB,CAAC;AAED,SAAS,WAAW;IAClB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,MAAM,CAAC,CAAC;IACrD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO;IACpC,KAAK,MAAM,IAAI,IAAI,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACjE,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS;QAClD,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,GAAG,KAAK,CAAC,CAAC;YAAE,SAAS;QACzB,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAClC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QACrC,IAAI,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QAC3B,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAgB,aAAa;IAC3B,WAAW,EAAE,CAAC;IAEd,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,WAAW,CAAC;IAC3E,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;IACzC,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;IACtD,MAAM,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC;IAC5D,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;IAChD,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,SAAS,CAAC;IAEtD,IAAI,CAAC,SAAS,IAAI,CAAC,eAAe,IAAI,CAAC,kBAAkB,IAAI,CAAC,YAAY,EAAE,CAAC;QAC3E,MAAM,IAAI,KAAK,CACb,kGAAkG;YAChG,qEAAqE,CACxE,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,kBAAkB,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC;AAC7F,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyCA,sCA4BC;AArED,4CAA8B;AAC9B,gDAAkC;AAYlC,SAAS,eAAe;IACtB,IAAI,GAAG,GAAG,SAAS,CAAC;IACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YAAE,OAAO,GAAG,CAAC;QACtD,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,qBAAqB,CAAC,CAAC;YAAE,OAAO,GAAG,CAAC;QACrE,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,MAAM,KAAK,GAAG;YAAE,MAAM;QAC1B,GAAG,GAAG,MAAM,CAAC;IACf,CAAC;IACD,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC;AACvB,CAAC;AAED,SAAS,WAAW;IAClB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,MAAM,CAAC,CAAC;IACrD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO;IACpC,KAAK,MAAM,IAAI,IAAI,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACjE,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS;QAClD,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,GAAG,KAAK,CAAC,CAAC;YAAE,SAAS;QACzB,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAClC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QACrC,IAAI,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QAC3B,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAgB,aAAa;IAC3B,WAAW,EAAE,CAAC;IAEd,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,WAAW,CAAC;IAC3E,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;IACzC,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;IACtD,MAAM,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC;IAC5D,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;IAChD,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;IAEzC,IAAI,CAAC,SAAS,IAAI,CAAC,eAAe,IAAI,CAAC,kBAAkB,IAAI,CAAC,YAAY,IAAI,CAAC,SAAS,EAAE,CAAC;QACzF,MAAM,IAAI,KAAK,CACb,8GAA8G;YAC5G,qEAAqE,CACxE,CAAC;IACJ,CAAC;IAED,MAAM,eAAe,GAAG,GAAG,SAAS,YAAY,CAAC;IAEjD,OAAO;QACL,MAAM;QACN,SAAS;QACT,eAAe;QACf,kBAAkB;QAClB,YAAY;QACZ,eAAe;QACf,SAAS;KACV,CAAC;AACJ,CAAC"}
package/dist/index.js CHANGED
@@ -12,6 +12,7 @@ const engagement_js_1 = require("./tools/engagement.js");
12
12
  const templates_js_1 = require("./tools/templates.js");
13
13
  const system_js_1 = require("./tools/system.js");
14
14
  const sequences_js_1 = require("./tools/sequences.js");
15
+ const broadcast_js_1 = require("./tools/broadcast.js");
15
16
  const config = (0, config_js_1.resolveConfig)();
16
17
  const server = new mcp_js_1.McpServer({
17
18
  name: "mailshot",
@@ -226,6 +227,80 @@ server.registerTool("export_sequence", {
226
227
  },
227
228
  ],
228
229
  }));
230
+ // ── Broadcasts ───────────────────────────────────────────────────────────
231
+ server.registerTool("send_broadcast", {
232
+ description: "Send a one-off broadcast email to filtered subscribers. Invokes BroadcastFn directly to resolve subscribers and fan out via SQS. Use dryRun to preview audience size without sending.",
233
+ inputSchema: {
234
+ broadcastId: zod_1.z.string().describe("Unique broadcast identifier (kebab-case)"),
235
+ templateKey: zod_1.z.string().describe("S3 template key (e.g., broadcasts/product-update)"),
236
+ subject: zod_1.z.string().describe("Email subject line (supports Liquid variables)"),
237
+ senderFromEmail: zod_1.z.string().email().describe("SES-verified sender email"),
238
+ senderFromName: zod_1.z.string().describe("Sender display name"),
239
+ senderReplyToEmail: zod_1.z.string().email().optional().describe("Reply-To address"),
240
+ listUnsubscribe: zod_1.z
241
+ .boolean()
242
+ .optional()
243
+ .default(true)
244
+ .describe("Include List-Unsubscribe headers"),
245
+ filterTags: zod_1.z
246
+ .array(zod_1.z.string())
247
+ .optional()
248
+ .describe("Tags filter (AND logic - subscriber must have ALL)"),
249
+ filterAttributes: zod_1.z
250
+ .record(zod_1.z.unknown())
251
+ .optional()
252
+ .describe("Attribute equality filters on subscriber profiles"),
253
+ dryRun: zod_1.z
254
+ .boolean()
255
+ .optional()
256
+ .default(false)
257
+ .describe("When true, resolves subscribers and returns count without sending"),
258
+ },
259
+ }, async ({ broadcastId, templateKey, subject, senderFromEmail, senderFromName, senderReplyToEmail, listUnsubscribe, filterTags, filterAttributes, dryRun, }) => ({
260
+ content: [
261
+ {
262
+ type: "text",
263
+ text: JSON.stringify(await (0, broadcast_js_1.sendBroadcast)(config, {
264
+ broadcastId,
265
+ templateKey,
266
+ subject,
267
+ senderFromEmail,
268
+ senderFromName,
269
+ senderReplyToEmail,
270
+ listUnsubscribe,
271
+ filterTags,
272
+ filterAttributes,
273
+ dryRun,
274
+ }), null, 2),
275
+ },
276
+ ],
277
+ }));
278
+ server.registerTool("get_broadcast", {
279
+ description: "Get a broadcast record by ID, showing config, filters, subscriber count, and send time",
280
+ inputSchema: {
281
+ broadcastId: zod_1.z.string().describe("The broadcast ID to look up"),
282
+ },
283
+ }, async ({ broadcastId }) => ({
284
+ content: [
285
+ {
286
+ type: "text",
287
+ text: JSON.stringify(await (0, broadcast_js_1.getBroadcast)(config, broadcastId), null, 2),
288
+ },
289
+ ],
290
+ }));
291
+ server.registerTool("list_broadcasts", {
292
+ description: "List recent broadcasts, most recent first",
293
+ inputSchema: {
294
+ limit: zod_1.z.number().int().min(1).max(100).optional().default(20),
295
+ },
296
+ }, async ({ limit }) => ({
297
+ content: [
298
+ {
299
+ type: "text",
300
+ text: JSON.stringify(await (0, broadcast_js_1.listBroadcasts)(config, limit), null, 2),
301
+ },
302
+ ],
303
+ }));
229
304
  // ── System health ──────────────────────────────────────────────────────────
230
305
  server.registerTool("get_failed_executions", {
231
306
  description: "Get recent Step Functions execution failures",
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import type { McpConfig } from "../config.js";
2
+ export interface SendBroadcastParams {
3
+ broadcastId: string;
4
+ templateKey: string;
5
+ subject: string;
6
+ senderFromEmail: string;
7
+ senderFromName: string;
8
+ senderReplyToEmail?: string;
9
+ listUnsubscribe?: boolean;
10
+ filterTags?: string[];
11
+ filterAttributes?: Record<string, unknown>;
12
+ dryRun?: boolean;
13
+ }
14
+ export declare function sendBroadcast(config: McpConfig, params: SendBroadcastParams): Promise<any>;
15
+ export declare function getBroadcast(config: McpConfig, broadcastId: string): Promise<{
16
+ [x: string]: any;
17
+ } | null>;
18
+ export declare function listBroadcasts(config: McpConfig, limit: number): Promise<Record<string, any>[]>;
19
+ //# sourceMappingURL=broadcast.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"broadcast.d.ts","sourceRoot":"","sources":["../../src/tools/broadcast.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAoC9C,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3C,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,wBAAsB,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,mBAAmB,gBA2CjF;AAED,wBAAsB,YAAY,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM;;UA+BxE;AAED,wBAAsB,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,kCAgDpE"}
@@ -0,0 +1,145 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sendBroadcast = sendBroadcast;
4
+ exports.getBroadcast = getBroadcast;
5
+ exports.listBroadcasts = listBroadcasts;
6
+ const client_lambda_1 = require("@aws-sdk/client-lambda");
7
+ const client_dynamodb_1 = require("@aws-sdk/client-dynamodb");
8
+ const util_dynamodb_1 = require("@aws-sdk/util-dynamodb");
9
+ const shared_1 = require("@mailshot/shared");
10
+ const COUNTER_FIELDS = [
11
+ "deliveryCount",
12
+ "openCount",
13
+ "clickCount",
14
+ "bounceCount",
15
+ "complaintCount",
16
+ ];
17
+ function emptyCounters() {
18
+ return Object.fromEntries(COUNTER_FIELDS.map((f) => [f, 0]));
19
+ }
20
+ function pickCounters(item) {
21
+ const out = emptyCounters();
22
+ for (const f of COUNTER_FIELDS) {
23
+ const v = item[f];
24
+ if (typeof v === "number")
25
+ out[f] = v;
26
+ }
27
+ return out;
28
+ }
29
+ let lambdaClient;
30
+ let dynamo;
31
+ function getLambda(region) {
32
+ if (!lambdaClient)
33
+ lambdaClient = new client_lambda_1.LambdaClient({ region });
34
+ return lambdaClient;
35
+ }
36
+ function getDynamo(region) {
37
+ if (!dynamo)
38
+ dynamo = new client_dynamodb_1.DynamoDBClient({ region });
39
+ return dynamo;
40
+ }
41
+ async function sendBroadcast(config, params) {
42
+ const client = getLambda(config.region);
43
+ const payload = {
44
+ broadcastId: params.broadcastId,
45
+ templateKey: params.templateKey,
46
+ subject: params.subject,
47
+ sender: {
48
+ fromEmail: params.senderFromEmail,
49
+ fromName: params.senderFromName,
50
+ ...(params.senderReplyToEmail && { replyToEmail: params.senderReplyToEmail }),
51
+ ...(params.listUnsubscribe === false && { listUnsubscribe: false }),
52
+ },
53
+ };
54
+ const filters = {};
55
+ if (params.filterTags && params.filterTags.length > 0) {
56
+ filters.tags = params.filterTags;
57
+ }
58
+ if (params.filterAttributes && Object.keys(params.filterAttributes).length > 0) {
59
+ filters.attributes = params.filterAttributes;
60
+ }
61
+ if (Object.keys(filters).length > 0) {
62
+ payload.filters = filters;
63
+ }
64
+ if (params.dryRun) {
65
+ payload.dryRun = true;
66
+ }
67
+ const result = await client.send(new client_lambda_1.InvokeCommand({
68
+ FunctionName: config.broadcastFnName,
69
+ Payload: Buffer.from(JSON.stringify(payload)),
70
+ }));
71
+ if (result.FunctionError) {
72
+ const body = result.Payload ? JSON.parse(Buffer.from(result.Payload).toString()) : {};
73
+ throw new Error(`BroadcastFn error: ${body.errorMessage ?? result.FunctionError}`);
74
+ }
75
+ const response = result.Payload ? JSON.parse(Buffer.from(result.Payload).toString()) : {};
76
+ return response;
77
+ }
78
+ async function getBroadcast(config, broadcastId) {
79
+ const db = getDynamo(config.region);
80
+ // broadcastId is the suffix of the SK after the timestamp — filter for it
81
+ const result = await db.send(new client_dynamodb_1.QueryCommand({
82
+ TableName: config.tableName,
83
+ KeyConditionExpression: "PK = :pk",
84
+ FilterExpression: "broadcastId = :bid",
85
+ ExpressionAttributeValues: (0, util_dynamodb_1.marshall)({
86
+ ":pk": shared_1.BROADCAST_PK,
87
+ ":bid": broadcastId,
88
+ }),
89
+ ScanIndexForward: false,
90
+ Limit: 100,
91
+ }));
92
+ const items = (result.Items ?? []).map((i) => (0, util_dynamodb_1.unmarshall)(i));
93
+ if (items.length === 0)
94
+ return null;
95
+ const record = items[0];
96
+ // Merge denormalised counters from STATS#<broadcastId>/COUNTERS
97
+ const countersRes = await db.send(new client_dynamodb_1.GetItemCommand({
98
+ TableName: config.tableName,
99
+ Key: (0, util_dynamodb_1.marshall)({ PK: (0, shared_1.statsPK)(broadcastId), SK: shared_1.STATS_COUNTERS_SK }),
100
+ }));
101
+ const counters = countersRes.Item ? pickCounters((0, util_dynamodb_1.unmarshall)(countersRes.Item)) : emptyCounters();
102
+ return { ...record, ...counters };
103
+ }
104
+ async function listBroadcasts(config, limit) {
105
+ const db = getDynamo(config.region);
106
+ const result = await db.send(new client_dynamodb_1.QueryCommand({
107
+ TableName: config.tableName,
108
+ KeyConditionExpression: "PK = :pk",
109
+ ExpressionAttributeValues: (0, util_dynamodb_1.marshall)({ ":pk": shared_1.BROADCAST_PK }),
110
+ ScanIndexForward: false,
111
+ Limit: Math.min(limit, 100),
112
+ }));
113
+ const records = (result.Items ?? []).map((i) => (0, util_dynamodb_1.unmarshall)(i));
114
+ if (records.length === 0)
115
+ return records;
116
+ // Batch fetch counters for all broadcastIds (chunked at 100, the BatchGetItem limit)
117
+ const broadcastIds = records
118
+ .map((r) => r.broadcastId)
119
+ .filter((id) => typeof id === "string");
120
+ const countersByBroadcastId = new Map();
121
+ for (let i = 0; i < broadcastIds.length; i += 100) {
122
+ const chunk = broadcastIds.slice(i, i + 100);
123
+ const res = await db.send(new client_dynamodb_1.BatchGetItemCommand({
124
+ RequestItems: {
125
+ [config.tableName]: {
126
+ Keys: chunk.map((id) => (0, util_dynamodb_1.marshall)({ PK: (0, shared_1.statsPK)(id), SK: shared_1.STATS_COUNTERS_SK })),
127
+ },
128
+ },
129
+ }));
130
+ const items = res.Responses?.[config.tableName] ?? [];
131
+ for (const item of items) {
132
+ const u = (0, util_dynamodb_1.unmarshall)(item);
133
+ if (typeof u.sequenceId === "string") {
134
+ countersByBroadcastId.set(u.sequenceId, pickCounters(u));
135
+ }
136
+ }
137
+ }
138
+ return records.map((r) => ({
139
+ ...r,
140
+ ...(typeof r.broadcastId === "string"
141
+ ? (countersByBroadcastId.get(r.broadcastId) ?? emptyCounters())
142
+ : emptyCounters()),
143
+ }));
144
+ }
145
+ //# sourceMappingURL=broadcast.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"broadcast.js","sourceRoot":"","sources":["../../src/tools/broadcast.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"engagement.d.ts","sourceRoot":"","sources":["../../src/tools/engagement.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AA4B9C,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,KAAK,EAAE,MAAM,kCA8Bd;AAED,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,SAAS,EACjB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,KAAK,EAAE,MAAM,kCA8Bd;AAED,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,SAAS,EACjB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,KAAK,EAAE,MAAM,kCAkCd"}
1
+ {"version":3,"file":"engagement.d.ts","sourceRoot":"","sources":["../../src/tools/engagement.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AA4B9C,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,KAAK,EAAE,MAAM,kCA8Bd;AAED,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,SAAS,EACjB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,KAAK,EAAE,MAAM,kCA8Bd;AAED,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,SAAS,EACjB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,KAAK,EAAE,MAAM,kCA8Bd"}
@@ -77,30 +77,26 @@ async function getTemplateEvents(config, templateKey, eventType, startDate, endD
77
77
  }
78
78
  async function getSequenceEvents(config, sequenceId, eventType, startDate, endDate, limit) {
79
79
  const db = getDynamo(config.region);
80
- // No GSI on sequenceId, so we scan with filter
81
- const filterParts = ["sequenceId = :seqId"];
82
- const filterValues = { ":seqId": sequenceId };
80
+ const skRange = buildSkRange(startDate, endDate);
81
+ const filterParts = [];
82
+ const filterValues = {};
83
83
  if (eventType) {
84
84
  filterParts.push("eventType = :eventType");
85
85
  filterValues[":eventType"] = eventType;
86
86
  }
87
- if (startDate) {
88
- filterParts.push("SK >= :skStart");
89
- filterValues[":skStart"] = `${shared_1.EVT_SK_PREFIX}${startDate}`;
90
- }
91
- if (endDate) {
92
- filterParts.push("SK <= :skEnd");
93
- filterValues[":skEnd"] = `${shared_1.EVT_SK_PREFIX}${endDate}~`;
94
- }
95
- const result = await db.send(new client_dynamodb_1.ScanCommand({
87
+ const result = await db.send(new client_dynamodb_1.QueryCommand({
96
88
  TableName: config.eventsTableName,
97
- FilterExpression: filterParts.join(" AND "),
98
- ExpressionAttributeValues: (0, util_dynamodb_1.marshall)(filterValues),
99
- Limit: Math.min(limit, 100) * 10,
89
+ IndexName: shared_1.SEQUENCE_INDEX,
90
+ KeyConditionExpression: `sequenceId = :seqId AND ${skRange.expression}`,
91
+ ...(filterParts.length > 0 ? { FilterExpression: filterParts.join(" AND ") } : {}),
92
+ ExpressionAttributeValues: (0, util_dynamodb_1.marshall)({
93
+ ":seqId": sequenceId,
94
+ ...skRange.values,
95
+ ...filterValues,
96
+ }),
97
+ ScanIndexForward: false,
98
+ Limit: Math.min(limit, 100),
100
99
  }));
101
- return (result.Items ?? [])
102
- .map((i) => (0, util_dynamodb_1.unmarshall)(i))
103
- .sort((a, b) => b.SK.localeCompare(a.SK))
104
- .slice(0, limit);
100
+ return (result.Items ?? []).map((i) => (0, util_dynamodb_1.unmarshall)(i));
105
101
  }
106
102
  //# sourceMappingURL=engagement.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"engagement.js","sourceRoot":"","sources":["../../src/tools/engagement.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engagement.js","sourceRoot":"","sources":["../../src/tools/engagement.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mailshot/mcp",
3
- "version": "1.4.0",
3
+ "version": "1.6.0",
4
4
  "description": "MCP server for mailshot - subscriber management, engagement analytics, and system health",
5
5
  "license": "MIT",
6
6
  "type": "commonjs",
@@ -24,12 +24,13 @@
24
24
  "@modelcontextprotocol/sdk": "^1.12.1",
25
25
  "@aws-sdk/client-dynamodb": "^3.1009.0",
26
26
  "@aws-sdk/client-eventbridge": "^3.1009.0",
27
+ "@aws-sdk/client-lambda": "^3.1009.0",
27
28
  "@aws-sdk/client-s3": "^3.1009.0",
28
29
  "@aws-sdk/client-sfn": "^3.1009.0",
29
30
  "@aws-sdk/util-dynamodb": "^3.996.2",
30
31
  "liquidjs": "^10.25.0",
31
32
  "zod": "^3.25.67",
32
- "@mailshot/shared": "1.4.0"
33
+ "@mailshot/shared": "1.6.0"
33
34
  },
34
35
  "scripts": {
35
36
  "build": "tsc",