mailtea-mcp 0.1.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/LICENSE +21 -0
- package/README.md +165 -0
- package/bin/mailtea-mcp.mjs +4 -0
- package/dist/chunk-NEG2GOMD.js +4034 -0
- package/dist/index.d.ts +2313 -0
- package/dist/index.js +12 -0
- package/dist/stdio.d.ts +2 -0
- package/dist/stdio.js +50 -0
- package/package.json +56 -0
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,2313 @@
|
|
|
1
|
+
type JsonRpcId = string | number | null;
|
|
2
|
+
type JsonRpcRequest = {
|
|
3
|
+
jsonrpc: "2.0";
|
|
4
|
+
id?: JsonRpcId;
|
|
5
|
+
method: string;
|
|
6
|
+
params?: Record<string, unknown>;
|
|
7
|
+
};
|
|
8
|
+
type JsonRpcResponse = {
|
|
9
|
+
jsonrpc: "2.0";
|
|
10
|
+
id: JsonRpcId;
|
|
11
|
+
result?: unknown;
|
|
12
|
+
error?: {
|
|
13
|
+
code: number;
|
|
14
|
+
message: string;
|
|
15
|
+
data?: unknown;
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
type McpRuntimeOptions = {
|
|
19
|
+
apiBaseUrl?: string;
|
|
20
|
+
token?: string | null;
|
|
21
|
+
publicationId?: string | null;
|
|
22
|
+
fetchImpl?: typeof fetch;
|
|
23
|
+
};
|
|
24
|
+
declare const MCP_TOOLS: readonly [{
|
|
25
|
+
readonly name: "auth.me";
|
|
26
|
+
readonly description: "Return auth identity for current token";
|
|
27
|
+
readonly inputSchema: {
|
|
28
|
+
readonly type: "object";
|
|
29
|
+
readonly properties: {};
|
|
30
|
+
};
|
|
31
|
+
}, {
|
|
32
|
+
readonly name: "issue.create_draft";
|
|
33
|
+
readonly description: "Create a marketing email draft. Set kind to 'newsletter' (default) for recurring content that can publish to the public site, or 'broadcast' for a one-time email-only send (promotion, launch, announcement). Provide content one of three ways: templateId (seed from a published server template — use template.list/template.get to find one — with {{variables}} substituted), contentHtml (raw HTML), or contentSpec (json-render spec). Spec is recommended for AI agents — use components: Html, Head, Body, Container, Section, Row, Column, Heading, Text, Link, Button, Image, Hr, Preview, Markdown, MailteaHeader, MailteaFooter, MailteaSpacer, MailteaContentBlock.";
|
|
34
|
+
readonly inputSchema: {
|
|
35
|
+
readonly type: "object";
|
|
36
|
+
readonly properties: {
|
|
37
|
+
readonly publicationId: {
|
|
38
|
+
readonly type: "string";
|
|
39
|
+
};
|
|
40
|
+
readonly title: {
|
|
41
|
+
readonly type: "string";
|
|
42
|
+
};
|
|
43
|
+
readonly kind: {
|
|
44
|
+
readonly type: "string";
|
|
45
|
+
readonly enum: readonly ["newsletter", "broadcast"];
|
|
46
|
+
readonly description: "Email kind. 'newsletter' (default) can publish to the public site; 'broadcast' is one-time email-only.";
|
|
47
|
+
};
|
|
48
|
+
readonly templateId: {
|
|
49
|
+
readonly type: "string";
|
|
50
|
+
readonly description: "Seed the draft from a published server template (see template.list). Takes precedence over contentHtml/contentSpec.";
|
|
51
|
+
};
|
|
52
|
+
readonly variables: {
|
|
53
|
+
readonly type: "object";
|
|
54
|
+
readonly description: "Key/value map substituted into the template's {{variable}} placeholders when templateId is set.";
|
|
55
|
+
};
|
|
56
|
+
readonly contentHtml: {
|
|
57
|
+
readonly type: "string";
|
|
58
|
+
readonly description: "Raw HTML content (use this OR contentSpec OR templateId)";
|
|
59
|
+
};
|
|
60
|
+
readonly contentSpec: {
|
|
61
|
+
readonly type: "object";
|
|
62
|
+
readonly description: "json-render spec (flat element map). Use this OR contentHtml OR templateId. Properties: root (string, element key), elements (record of {type, props?, children?})";
|
|
63
|
+
readonly properties: {
|
|
64
|
+
readonly root: {
|
|
65
|
+
readonly type: "string";
|
|
66
|
+
};
|
|
67
|
+
readonly elements: {
|
|
68
|
+
readonly type: "object";
|
|
69
|
+
};
|
|
70
|
+
};
|
|
71
|
+
readonly required: readonly ["root", "elements"];
|
|
72
|
+
};
|
|
73
|
+
};
|
|
74
|
+
readonly required: readonly ["publicationId", "title"];
|
|
75
|
+
};
|
|
76
|
+
}, {
|
|
77
|
+
readonly name: "issue.get_editor";
|
|
78
|
+
readonly description: "Load issue editor payload for a draft or scheduled issue";
|
|
79
|
+
readonly inputSchema: {
|
|
80
|
+
readonly type: "object";
|
|
81
|
+
readonly properties: {
|
|
82
|
+
readonly issueId: {
|
|
83
|
+
readonly type: "string";
|
|
84
|
+
};
|
|
85
|
+
};
|
|
86
|
+
readonly required: readonly ["issueId"];
|
|
87
|
+
};
|
|
88
|
+
}, {
|
|
89
|
+
readonly name: "issue.update_draft";
|
|
90
|
+
readonly description: "Update an existing draft issue. Provide contentHtml (raw HTML) or contentSpec (json-render spec).";
|
|
91
|
+
readonly inputSchema: {
|
|
92
|
+
readonly type: "object";
|
|
93
|
+
readonly properties: {
|
|
94
|
+
readonly issueId: {
|
|
95
|
+
readonly type: "string";
|
|
96
|
+
};
|
|
97
|
+
readonly title: {
|
|
98
|
+
readonly type: "string";
|
|
99
|
+
};
|
|
100
|
+
readonly contentHtml: {
|
|
101
|
+
readonly type: "string";
|
|
102
|
+
readonly description: "Raw HTML content (use this OR contentSpec)";
|
|
103
|
+
};
|
|
104
|
+
readonly contentSpec: {
|
|
105
|
+
readonly type: "object";
|
|
106
|
+
readonly description: "json-render spec (flat element map). Use this OR contentHtml.";
|
|
107
|
+
readonly properties: {
|
|
108
|
+
readonly root: {
|
|
109
|
+
readonly type: "string";
|
|
110
|
+
};
|
|
111
|
+
readonly elements: {
|
|
112
|
+
readonly type: "object";
|
|
113
|
+
};
|
|
114
|
+
};
|
|
115
|
+
readonly required: readonly ["root", "elements"];
|
|
116
|
+
};
|
|
117
|
+
};
|
|
118
|
+
readonly required: readonly ["issueId", "title"];
|
|
119
|
+
};
|
|
120
|
+
}, {
|
|
121
|
+
readonly name: "issue.remove_draft";
|
|
122
|
+
readonly description: "Delete an existing draft issue";
|
|
123
|
+
readonly inputSchema: {
|
|
124
|
+
readonly type: "object";
|
|
125
|
+
readonly properties: {
|
|
126
|
+
readonly issueId: {
|
|
127
|
+
readonly type: "string";
|
|
128
|
+
};
|
|
129
|
+
};
|
|
130
|
+
readonly required: readonly ["issueId"];
|
|
131
|
+
};
|
|
132
|
+
}, {
|
|
133
|
+
readonly name: "issue.list_recent";
|
|
134
|
+
readonly description: "List recent issues for a publication";
|
|
135
|
+
readonly inputSchema: {
|
|
136
|
+
readonly type: "object";
|
|
137
|
+
readonly properties: {
|
|
138
|
+
readonly publicationId: {
|
|
139
|
+
readonly type: "string";
|
|
140
|
+
};
|
|
141
|
+
readonly limit: {
|
|
142
|
+
readonly type: "number";
|
|
143
|
+
};
|
|
144
|
+
};
|
|
145
|
+
readonly required: readonly ["publicationId"];
|
|
146
|
+
};
|
|
147
|
+
}, {
|
|
148
|
+
readonly name: "publication.list";
|
|
149
|
+
readonly description: "List publication workspaces available to current user/token";
|
|
150
|
+
readonly inputSchema: {
|
|
151
|
+
readonly type: "object";
|
|
152
|
+
readonly properties: {};
|
|
153
|
+
};
|
|
154
|
+
}, {
|
|
155
|
+
readonly name: "publication.create";
|
|
156
|
+
readonly description: "Create a publication workspace and attach owner membership";
|
|
157
|
+
readonly inputSchema: {
|
|
158
|
+
readonly type: "object";
|
|
159
|
+
readonly properties: {
|
|
160
|
+
readonly publicationId: {
|
|
161
|
+
readonly type: "string";
|
|
162
|
+
};
|
|
163
|
+
readonly name: {
|
|
164
|
+
readonly type: "string";
|
|
165
|
+
};
|
|
166
|
+
readonly timezone: {
|
|
167
|
+
readonly type: "string";
|
|
168
|
+
};
|
|
169
|
+
};
|
|
170
|
+
readonly required: readonly ["name"];
|
|
171
|
+
};
|
|
172
|
+
}, {
|
|
173
|
+
readonly name: "publication.domain_list";
|
|
174
|
+
readonly description: "List custom domains connected to a publication";
|
|
175
|
+
readonly inputSchema: {
|
|
176
|
+
readonly type: "object";
|
|
177
|
+
readonly properties: {
|
|
178
|
+
readonly publicationId: {
|
|
179
|
+
readonly type: "string";
|
|
180
|
+
};
|
|
181
|
+
readonly limit: {
|
|
182
|
+
readonly type: "number";
|
|
183
|
+
};
|
|
184
|
+
};
|
|
185
|
+
readonly required: readonly ["publicationId"];
|
|
186
|
+
};
|
|
187
|
+
}, {
|
|
188
|
+
readonly name: "publication.domain_upsert";
|
|
189
|
+
readonly description: "Create or update a publication custom domain";
|
|
190
|
+
readonly inputSchema: {
|
|
191
|
+
readonly type: "object";
|
|
192
|
+
readonly properties: {
|
|
193
|
+
readonly publicationId: {
|
|
194
|
+
readonly type: "string";
|
|
195
|
+
};
|
|
196
|
+
readonly host: {
|
|
197
|
+
readonly type: "string";
|
|
198
|
+
};
|
|
199
|
+
readonly isPrimary: {
|
|
200
|
+
readonly type: "boolean";
|
|
201
|
+
};
|
|
202
|
+
readonly proxyTarget: {
|
|
203
|
+
readonly type: "string";
|
|
204
|
+
};
|
|
205
|
+
};
|
|
206
|
+
readonly required: readonly ["publicationId", "host"];
|
|
207
|
+
};
|
|
208
|
+
}, {
|
|
209
|
+
readonly name: "publication.domain_verify";
|
|
210
|
+
readonly description: "Mark a publication domain as verified";
|
|
211
|
+
readonly inputSchema: {
|
|
212
|
+
readonly type: "object";
|
|
213
|
+
readonly properties: {
|
|
214
|
+
readonly publicationId: {
|
|
215
|
+
readonly type: "string";
|
|
216
|
+
};
|
|
217
|
+
readonly domainId: {
|
|
218
|
+
readonly type: "string";
|
|
219
|
+
};
|
|
220
|
+
readonly verificationValue: {
|
|
221
|
+
readonly type: "string";
|
|
222
|
+
};
|
|
223
|
+
};
|
|
224
|
+
readonly required: readonly ["publicationId", "domainId"];
|
|
225
|
+
};
|
|
226
|
+
}, {
|
|
227
|
+
readonly name: "publication.domain_set_primary";
|
|
228
|
+
readonly description: "Set an existing publication domain as primary";
|
|
229
|
+
readonly inputSchema: {
|
|
230
|
+
readonly type: "object";
|
|
231
|
+
readonly properties: {
|
|
232
|
+
readonly publicationId: {
|
|
233
|
+
readonly type: "string";
|
|
234
|
+
};
|
|
235
|
+
readonly domainId: {
|
|
236
|
+
readonly type: "string";
|
|
237
|
+
};
|
|
238
|
+
};
|
|
239
|
+
readonly required: readonly ["publicationId", "domainId"];
|
|
240
|
+
};
|
|
241
|
+
}, {
|
|
242
|
+
readonly name: "publication.domain_remove";
|
|
243
|
+
readonly description: "Remove a publication custom domain";
|
|
244
|
+
readonly inputSchema: {
|
|
245
|
+
readonly type: "object";
|
|
246
|
+
readonly properties: {
|
|
247
|
+
readonly publicationId: {
|
|
248
|
+
readonly type: "string";
|
|
249
|
+
};
|
|
250
|
+
readonly domainId: {
|
|
251
|
+
readonly type: "string";
|
|
252
|
+
};
|
|
253
|
+
};
|
|
254
|
+
readonly required: readonly ["publicationId", "domainId"];
|
|
255
|
+
};
|
|
256
|
+
}, {
|
|
257
|
+
readonly name: "publication.domain_traefik_preview";
|
|
258
|
+
readonly description: "Generate Traefik dynamic-file preview for publication domains";
|
|
259
|
+
readonly inputSchema: {
|
|
260
|
+
readonly type: "object";
|
|
261
|
+
readonly properties: {
|
|
262
|
+
readonly publicationId: {
|
|
263
|
+
readonly type: "string";
|
|
264
|
+
};
|
|
265
|
+
};
|
|
266
|
+
readonly required: readonly ["publicationId"];
|
|
267
|
+
};
|
|
268
|
+
}, {
|
|
269
|
+
readonly name: "contact.list";
|
|
270
|
+
readonly description: "List contacts for a publication";
|
|
271
|
+
readonly inputSchema: {
|
|
272
|
+
readonly type: "object";
|
|
273
|
+
readonly properties: {
|
|
274
|
+
readonly publicationId: {
|
|
275
|
+
readonly type: "string";
|
|
276
|
+
};
|
|
277
|
+
readonly status: {
|
|
278
|
+
readonly type: "string";
|
|
279
|
+
readonly enum: readonly ["active", "unsubscribed", "suppressed"];
|
|
280
|
+
};
|
|
281
|
+
readonly query: {
|
|
282
|
+
readonly type: "string";
|
|
283
|
+
};
|
|
284
|
+
readonly limit: {
|
|
285
|
+
readonly type: "number";
|
|
286
|
+
};
|
|
287
|
+
};
|
|
288
|
+
readonly required: readonly ["publicationId"];
|
|
289
|
+
};
|
|
290
|
+
}, {
|
|
291
|
+
readonly name: "contact.upsert";
|
|
292
|
+
readonly description: "Create or reactivate a contact by email";
|
|
293
|
+
readonly inputSchema: {
|
|
294
|
+
readonly type: "object";
|
|
295
|
+
readonly properties: {
|
|
296
|
+
readonly publicationId: {
|
|
297
|
+
readonly type: "string";
|
|
298
|
+
};
|
|
299
|
+
readonly email: {
|
|
300
|
+
readonly type: "string";
|
|
301
|
+
};
|
|
302
|
+
readonly referrerContactId: {
|
|
303
|
+
readonly type: "string";
|
|
304
|
+
};
|
|
305
|
+
};
|
|
306
|
+
readonly required: readonly ["publicationId", "email"];
|
|
307
|
+
};
|
|
308
|
+
}, {
|
|
309
|
+
readonly name: "contact.set_status";
|
|
310
|
+
readonly description: "Set contact status (active, unsubscribed, suppressed)";
|
|
311
|
+
readonly inputSchema: {
|
|
312
|
+
readonly type: "object";
|
|
313
|
+
readonly properties: {
|
|
314
|
+
readonly publicationId: {
|
|
315
|
+
readonly type: "string";
|
|
316
|
+
};
|
|
317
|
+
readonly contactId: {
|
|
318
|
+
readonly type: "string";
|
|
319
|
+
};
|
|
320
|
+
readonly status: {
|
|
321
|
+
readonly type: "string";
|
|
322
|
+
readonly enum: readonly ["active", "unsubscribed", "suppressed"];
|
|
323
|
+
};
|
|
324
|
+
};
|
|
325
|
+
readonly required: readonly ["publicationId", "contactId", "status"];
|
|
326
|
+
};
|
|
327
|
+
}, {
|
|
328
|
+
readonly name: "contact.import_csv";
|
|
329
|
+
readonly description: "Import contacts from CSV text payload";
|
|
330
|
+
readonly inputSchema: {
|
|
331
|
+
readonly type: "object";
|
|
332
|
+
readonly properties: {
|
|
333
|
+
readonly publicationId: {
|
|
334
|
+
readonly type: "string";
|
|
335
|
+
};
|
|
336
|
+
readonly csvText: {
|
|
337
|
+
readonly type: "string";
|
|
338
|
+
};
|
|
339
|
+
};
|
|
340
|
+
readonly required: readonly ["publicationId", "csvText"];
|
|
341
|
+
};
|
|
342
|
+
}, {
|
|
343
|
+
readonly name: "contact.referral_summary";
|
|
344
|
+
readonly description: "Load referral conversion leaderboard for a publication";
|
|
345
|
+
readonly inputSchema: {
|
|
346
|
+
readonly type: "object";
|
|
347
|
+
readonly properties: {
|
|
348
|
+
readonly publicationId: {
|
|
349
|
+
readonly type: "string";
|
|
350
|
+
};
|
|
351
|
+
readonly limit: {
|
|
352
|
+
readonly type: "number";
|
|
353
|
+
};
|
|
354
|
+
};
|
|
355
|
+
readonly required: readonly ["publicationId"];
|
|
356
|
+
};
|
|
357
|
+
}, {
|
|
358
|
+
readonly name: "contact.referral_milestones";
|
|
359
|
+
readonly description: "List referral milestone rules for a publication";
|
|
360
|
+
readonly inputSchema: {
|
|
361
|
+
readonly type: "object";
|
|
362
|
+
readonly properties: {
|
|
363
|
+
readonly publicationId: {
|
|
364
|
+
readonly type: "string";
|
|
365
|
+
};
|
|
366
|
+
readonly limit: {
|
|
367
|
+
readonly type: "number";
|
|
368
|
+
};
|
|
369
|
+
};
|
|
370
|
+
readonly required: readonly ["publicationId"];
|
|
371
|
+
};
|
|
372
|
+
}, {
|
|
373
|
+
readonly name: "contact.referral_milestone_upsert";
|
|
374
|
+
readonly description: "Create or update a referral milestone rule";
|
|
375
|
+
readonly inputSchema: {
|
|
376
|
+
readonly type: "object";
|
|
377
|
+
readonly properties: {
|
|
378
|
+
readonly publicationId: {
|
|
379
|
+
readonly type: "string";
|
|
380
|
+
};
|
|
381
|
+
readonly milestoneId: {
|
|
382
|
+
readonly type: "string";
|
|
383
|
+
};
|
|
384
|
+
readonly title: {
|
|
385
|
+
readonly type: "string";
|
|
386
|
+
};
|
|
387
|
+
readonly description: {
|
|
388
|
+
readonly type: "string";
|
|
389
|
+
};
|
|
390
|
+
readonly referralCount: {
|
|
391
|
+
readonly type: "number";
|
|
392
|
+
};
|
|
393
|
+
};
|
|
394
|
+
readonly required: readonly ["publicationId", "title", "referralCount"];
|
|
395
|
+
};
|
|
396
|
+
}, {
|
|
397
|
+
readonly name: "contact.referral_milestone_remove";
|
|
398
|
+
readonly description: "Delete a referral milestone rule";
|
|
399
|
+
readonly inputSchema: {
|
|
400
|
+
readonly type: "object";
|
|
401
|
+
readonly properties: {
|
|
402
|
+
readonly publicationId: {
|
|
403
|
+
readonly type: "string";
|
|
404
|
+
};
|
|
405
|
+
readonly milestoneId: {
|
|
406
|
+
readonly type: "string";
|
|
407
|
+
};
|
|
408
|
+
};
|
|
409
|
+
readonly required: readonly ["publicationId", "milestoneId"];
|
|
410
|
+
};
|
|
411
|
+
}, {
|
|
412
|
+
readonly name: "contact.referral_rewards";
|
|
413
|
+
readonly description: "List awarded referral rewards for a publication";
|
|
414
|
+
readonly inputSchema: {
|
|
415
|
+
readonly type: "object";
|
|
416
|
+
readonly properties: {
|
|
417
|
+
readonly publicationId: {
|
|
418
|
+
readonly type: "string";
|
|
419
|
+
};
|
|
420
|
+
readonly contactId: {
|
|
421
|
+
readonly type: "string";
|
|
422
|
+
};
|
|
423
|
+
readonly limit: {
|
|
424
|
+
readonly type: "number";
|
|
425
|
+
};
|
|
426
|
+
};
|
|
427
|
+
readonly required: readonly ["publicationId"];
|
|
428
|
+
};
|
|
429
|
+
}, {
|
|
430
|
+
readonly name: "monetize.offer_list";
|
|
431
|
+
readonly description: "List sponsor offers for a publication";
|
|
432
|
+
readonly inputSchema: {
|
|
433
|
+
readonly type: "object";
|
|
434
|
+
readonly properties: {
|
|
435
|
+
readonly publicationId: {
|
|
436
|
+
readonly type: "string";
|
|
437
|
+
};
|
|
438
|
+
readonly status: {
|
|
439
|
+
readonly type: "string";
|
|
440
|
+
readonly enum: readonly ["draft", "active", "paused", "archived"];
|
|
441
|
+
};
|
|
442
|
+
readonly limit: {
|
|
443
|
+
readonly type: "number";
|
|
444
|
+
};
|
|
445
|
+
};
|
|
446
|
+
readonly required: readonly ["publicationId"];
|
|
447
|
+
};
|
|
448
|
+
}, {
|
|
449
|
+
readonly name: "monetize.offer_upsert";
|
|
450
|
+
readonly description: "Create or update a sponsor offer";
|
|
451
|
+
readonly inputSchema: {
|
|
452
|
+
readonly type: "object";
|
|
453
|
+
readonly properties: {
|
|
454
|
+
readonly publicationId: {
|
|
455
|
+
readonly type: "string";
|
|
456
|
+
};
|
|
457
|
+
readonly offerId: {
|
|
458
|
+
readonly type: "string";
|
|
459
|
+
};
|
|
460
|
+
readonly title: {
|
|
461
|
+
readonly type: "string";
|
|
462
|
+
};
|
|
463
|
+
readonly sponsorName: {
|
|
464
|
+
readonly type: "string";
|
|
465
|
+
};
|
|
466
|
+
readonly description: {
|
|
467
|
+
readonly type: "string";
|
|
468
|
+
};
|
|
469
|
+
readonly pricingModel: {
|
|
470
|
+
readonly type: "string";
|
|
471
|
+
readonly enum: readonly ["flat", "cpm"];
|
|
472
|
+
};
|
|
473
|
+
readonly rateCents: {
|
|
474
|
+
readonly type: "number";
|
|
475
|
+
};
|
|
476
|
+
readonly estimatedPlacements: {
|
|
477
|
+
readonly type: "number";
|
|
478
|
+
};
|
|
479
|
+
readonly status: {
|
|
480
|
+
readonly type: "string";
|
|
481
|
+
readonly enum: readonly ["draft", "active", "paused", "archived"];
|
|
482
|
+
};
|
|
483
|
+
readonly startsAt: {
|
|
484
|
+
readonly type: "string";
|
|
485
|
+
readonly description: "Optional ISO start timestamp.";
|
|
486
|
+
};
|
|
487
|
+
readonly endsAt: {
|
|
488
|
+
readonly type: "string";
|
|
489
|
+
readonly description: "Optional ISO end timestamp.";
|
|
490
|
+
};
|
|
491
|
+
};
|
|
492
|
+
readonly required: readonly ["publicationId", "title", "sponsorName", "pricingModel", "rateCents"];
|
|
493
|
+
};
|
|
494
|
+
}, {
|
|
495
|
+
readonly name: "monetize.offer_remove";
|
|
496
|
+
readonly description: "Delete a sponsor offer";
|
|
497
|
+
readonly inputSchema: {
|
|
498
|
+
readonly type: "object";
|
|
499
|
+
readonly properties: {
|
|
500
|
+
readonly publicationId: {
|
|
501
|
+
readonly type: "string";
|
|
502
|
+
};
|
|
503
|
+
readonly offerId: {
|
|
504
|
+
readonly type: "string";
|
|
505
|
+
};
|
|
506
|
+
};
|
|
507
|
+
readonly required: readonly ["publicationId", "offerId"];
|
|
508
|
+
};
|
|
509
|
+
}, {
|
|
510
|
+
readonly name: "section.list";
|
|
511
|
+
readonly description: "List reusable editor sections for a publication";
|
|
512
|
+
readonly inputSchema: {
|
|
513
|
+
readonly type: "object";
|
|
514
|
+
readonly properties: {
|
|
515
|
+
readonly publicationId: {
|
|
516
|
+
readonly type: "string";
|
|
517
|
+
};
|
|
518
|
+
readonly limit: {
|
|
519
|
+
readonly type: "number";
|
|
520
|
+
};
|
|
521
|
+
};
|
|
522
|
+
readonly required: readonly ["publicationId"];
|
|
523
|
+
};
|
|
524
|
+
}, {
|
|
525
|
+
readonly name: "section.catalog";
|
|
526
|
+
readonly description: "List shared marketplace section packs";
|
|
527
|
+
readonly inputSchema: {
|
|
528
|
+
readonly type: "object";
|
|
529
|
+
readonly properties: {
|
|
530
|
+
readonly publicationId: {
|
|
531
|
+
readonly type: "string";
|
|
532
|
+
readonly description: "Optional publication id to include custom packs";
|
|
533
|
+
};
|
|
534
|
+
};
|
|
535
|
+
};
|
|
536
|
+
}, {
|
|
537
|
+
readonly name: "section.pack_create";
|
|
538
|
+
readonly description: "Create a custom marketplace pack for a publication";
|
|
539
|
+
readonly inputSchema: {
|
|
540
|
+
readonly type: "object";
|
|
541
|
+
readonly properties: {
|
|
542
|
+
readonly publicationId: {
|
|
543
|
+
readonly type: "string";
|
|
544
|
+
};
|
|
545
|
+
readonly title: {
|
|
546
|
+
readonly type: "string";
|
|
547
|
+
};
|
|
548
|
+
readonly description: {
|
|
549
|
+
readonly type: "string";
|
|
550
|
+
};
|
|
551
|
+
readonly styleProfile: {
|
|
552
|
+
readonly type: "object";
|
|
553
|
+
readonly description: "Optional React Email style profile for this template pack.";
|
|
554
|
+
};
|
|
555
|
+
readonly sections: {
|
|
556
|
+
readonly type: "array";
|
|
557
|
+
readonly items: {
|
|
558
|
+
readonly type: "object";
|
|
559
|
+
readonly properties: {
|
|
560
|
+
readonly name: {
|
|
561
|
+
readonly type: "string";
|
|
562
|
+
};
|
|
563
|
+
readonly contentJson: {
|
|
564
|
+
readonly type: "array";
|
|
565
|
+
readonly items: {
|
|
566
|
+
readonly type: "object";
|
|
567
|
+
};
|
|
568
|
+
readonly minItems: 1;
|
|
569
|
+
};
|
|
570
|
+
};
|
|
571
|
+
readonly required: readonly ["name", "contentJson"];
|
|
572
|
+
};
|
|
573
|
+
readonly minItems: 1;
|
|
574
|
+
};
|
|
575
|
+
};
|
|
576
|
+
readonly required: readonly ["publicationId", "title", "sections"];
|
|
577
|
+
};
|
|
578
|
+
}, {
|
|
579
|
+
readonly name: "section.pack_update";
|
|
580
|
+
readonly description: "Update a custom marketplace pack";
|
|
581
|
+
readonly inputSchema: {
|
|
582
|
+
readonly type: "object";
|
|
583
|
+
readonly properties: {
|
|
584
|
+
readonly publicationId: {
|
|
585
|
+
readonly type: "string";
|
|
586
|
+
};
|
|
587
|
+
readonly packId: {
|
|
588
|
+
readonly type: "string";
|
|
589
|
+
};
|
|
590
|
+
readonly title: {
|
|
591
|
+
readonly type: "string";
|
|
592
|
+
};
|
|
593
|
+
readonly description: {
|
|
594
|
+
readonly type: "string";
|
|
595
|
+
};
|
|
596
|
+
readonly styleProfile: {
|
|
597
|
+
readonly type: "object";
|
|
598
|
+
readonly description: "Optional React Email style profile for this template pack.";
|
|
599
|
+
};
|
|
600
|
+
readonly sections: {
|
|
601
|
+
readonly type: "array";
|
|
602
|
+
readonly items: {
|
|
603
|
+
readonly type: "object";
|
|
604
|
+
readonly properties: {
|
|
605
|
+
readonly name: {
|
|
606
|
+
readonly type: "string";
|
|
607
|
+
};
|
|
608
|
+
readonly contentJson: {
|
|
609
|
+
readonly type: "array";
|
|
610
|
+
readonly items: {
|
|
611
|
+
readonly type: "object";
|
|
612
|
+
};
|
|
613
|
+
readonly minItems: 1;
|
|
614
|
+
};
|
|
615
|
+
};
|
|
616
|
+
readonly required: readonly ["name", "contentJson"];
|
|
617
|
+
};
|
|
618
|
+
readonly minItems: 1;
|
|
619
|
+
};
|
|
620
|
+
};
|
|
621
|
+
readonly required: readonly ["publicationId", "packId", "title", "sections"];
|
|
622
|
+
};
|
|
623
|
+
}, {
|
|
624
|
+
readonly name: "section.pack_remove";
|
|
625
|
+
readonly description: "Delete a custom marketplace pack";
|
|
626
|
+
readonly inputSchema: {
|
|
627
|
+
readonly type: "object";
|
|
628
|
+
readonly properties: {
|
|
629
|
+
readonly publicationId: {
|
|
630
|
+
readonly type: "string";
|
|
631
|
+
};
|
|
632
|
+
readonly packId: {
|
|
633
|
+
readonly type: "string";
|
|
634
|
+
};
|
|
635
|
+
};
|
|
636
|
+
readonly required: readonly ["publicationId", "packId"];
|
|
637
|
+
};
|
|
638
|
+
}, {
|
|
639
|
+
readonly name: "section.pack_revisions";
|
|
640
|
+
readonly description: "List version history for a custom marketplace pack";
|
|
641
|
+
readonly inputSchema: {
|
|
642
|
+
readonly type: "object";
|
|
643
|
+
readonly properties: {
|
|
644
|
+
readonly publicationId: {
|
|
645
|
+
readonly type: "string";
|
|
646
|
+
};
|
|
647
|
+
readonly packId: {
|
|
648
|
+
readonly type: "string";
|
|
649
|
+
};
|
|
650
|
+
readonly limit: {
|
|
651
|
+
readonly type: "number";
|
|
652
|
+
};
|
|
653
|
+
};
|
|
654
|
+
readonly required: readonly ["publicationId", "packId"];
|
|
655
|
+
};
|
|
656
|
+
}, {
|
|
657
|
+
readonly name: "section.pack_restore_revision";
|
|
658
|
+
readonly description: "Restore a custom marketplace pack to a specific revision";
|
|
659
|
+
readonly inputSchema: {
|
|
660
|
+
readonly type: "object";
|
|
661
|
+
readonly properties: {
|
|
662
|
+
readonly publicationId: {
|
|
663
|
+
readonly type: "string";
|
|
664
|
+
};
|
|
665
|
+
readonly packId: {
|
|
666
|
+
readonly type: "string";
|
|
667
|
+
};
|
|
668
|
+
readonly revisionId: {
|
|
669
|
+
readonly type: "string";
|
|
670
|
+
};
|
|
671
|
+
};
|
|
672
|
+
readonly required: readonly ["publicationId", "packId", "revisionId"];
|
|
673
|
+
};
|
|
674
|
+
}, {
|
|
675
|
+
readonly name: "section.import_pack";
|
|
676
|
+
readonly description: "Import a marketplace pack into reusable sections";
|
|
677
|
+
readonly inputSchema: {
|
|
678
|
+
readonly type: "object";
|
|
679
|
+
readonly properties: {
|
|
680
|
+
readonly publicationId: {
|
|
681
|
+
readonly type: "string";
|
|
682
|
+
};
|
|
683
|
+
readonly presetId: {
|
|
684
|
+
readonly type: "string";
|
|
685
|
+
};
|
|
686
|
+
};
|
|
687
|
+
readonly required: readonly ["publicationId", "presetId"];
|
|
688
|
+
};
|
|
689
|
+
}, {
|
|
690
|
+
readonly name: "section.create";
|
|
691
|
+
readonly description: "Create a reusable section snippet";
|
|
692
|
+
readonly inputSchema: {
|
|
693
|
+
readonly type: "object";
|
|
694
|
+
readonly properties: {
|
|
695
|
+
readonly publicationId: {
|
|
696
|
+
readonly type: "string";
|
|
697
|
+
};
|
|
698
|
+
readonly name: {
|
|
699
|
+
readonly type: "string";
|
|
700
|
+
};
|
|
701
|
+
readonly contentJson: {
|
|
702
|
+
readonly type: "array";
|
|
703
|
+
readonly items: {
|
|
704
|
+
readonly type: "object";
|
|
705
|
+
};
|
|
706
|
+
readonly minItems: 1;
|
|
707
|
+
};
|
|
708
|
+
};
|
|
709
|
+
readonly required: readonly ["publicationId", "name", "contentJson"];
|
|
710
|
+
};
|
|
711
|
+
}, {
|
|
712
|
+
readonly name: "section.update";
|
|
713
|
+
readonly description: "Update a reusable section snippet";
|
|
714
|
+
readonly inputSchema: {
|
|
715
|
+
readonly type: "object";
|
|
716
|
+
readonly properties: {
|
|
717
|
+
readonly sectionId: {
|
|
718
|
+
readonly type: "string";
|
|
719
|
+
};
|
|
720
|
+
readonly name: {
|
|
721
|
+
readonly type: "string";
|
|
722
|
+
};
|
|
723
|
+
readonly contentJson: {
|
|
724
|
+
readonly type: "array";
|
|
725
|
+
readonly items: {
|
|
726
|
+
readonly type: "object";
|
|
727
|
+
};
|
|
728
|
+
readonly minItems: 1;
|
|
729
|
+
};
|
|
730
|
+
};
|
|
731
|
+
readonly required: readonly ["sectionId", "name", "contentJson"];
|
|
732
|
+
};
|
|
733
|
+
}, {
|
|
734
|
+
readonly name: "section.remove";
|
|
735
|
+
readonly description: "Delete a reusable section snippet";
|
|
736
|
+
readonly inputSchema: {
|
|
737
|
+
readonly type: "object";
|
|
738
|
+
readonly properties: {
|
|
739
|
+
readonly sectionId: {
|
|
740
|
+
readonly type: "string";
|
|
741
|
+
};
|
|
742
|
+
};
|
|
743
|
+
readonly required: readonly ["sectionId"];
|
|
744
|
+
};
|
|
745
|
+
}, {
|
|
746
|
+
readonly name: "issue.preview";
|
|
747
|
+
readonly description: "Preview newsletter HTML for an issue";
|
|
748
|
+
readonly inputSchema: {
|
|
749
|
+
readonly type: "object";
|
|
750
|
+
readonly properties: {
|
|
751
|
+
readonly issueId: {
|
|
752
|
+
readonly type: "string";
|
|
753
|
+
};
|
|
754
|
+
};
|
|
755
|
+
readonly required: readonly ["issueId"];
|
|
756
|
+
};
|
|
757
|
+
}, {
|
|
758
|
+
readonly name: "issue.preview_draft";
|
|
759
|
+
readonly description: "Preview newsletter HTML/text for unsaved draft content";
|
|
760
|
+
readonly inputSchema: {
|
|
761
|
+
readonly type: "object";
|
|
762
|
+
readonly properties: {
|
|
763
|
+
readonly publicationId: {
|
|
764
|
+
readonly type: "string";
|
|
765
|
+
};
|
|
766
|
+
readonly title: {
|
|
767
|
+
readonly type: "string";
|
|
768
|
+
};
|
|
769
|
+
readonly html: {
|
|
770
|
+
readonly type: "string";
|
|
771
|
+
};
|
|
772
|
+
readonly plainText: {
|
|
773
|
+
readonly type: "string";
|
|
774
|
+
};
|
|
775
|
+
readonly styleProfile: {
|
|
776
|
+
readonly type: "object";
|
|
777
|
+
readonly description: "Optional React Email style profile overrides.";
|
|
778
|
+
};
|
|
779
|
+
};
|
|
780
|
+
readonly required: readonly ["publicationId", "title", "html"];
|
|
781
|
+
};
|
|
782
|
+
}, {
|
|
783
|
+
readonly name: "issue.delivery_progress";
|
|
784
|
+
readonly description: "Fetch send progress snapshot for an issue";
|
|
785
|
+
readonly inputSchema: {
|
|
786
|
+
readonly type: "object";
|
|
787
|
+
readonly properties: {
|
|
788
|
+
readonly publicationId: {
|
|
789
|
+
readonly type: "string";
|
|
790
|
+
};
|
|
791
|
+
readonly issueId: {
|
|
792
|
+
readonly type: "string";
|
|
793
|
+
};
|
|
794
|
+
};
|
|
795
|
+
readonly required: readonly ["publicationId", "issueId"];
|
|
796
|
+
};
|
|
797
|
+
}, {
|
|
798
|
+
readonly name: "issue.wait_delivery";
|
|
799
|
+
readonly description: "Poll issue send progress until sent/failed or timeout";
|
|
800
|
+
readonly inputSchema: {
|
|
801
|
+
readonly type: "object";
|
|
802
|
+
readonly properties: {
|
|
803
|
+
readonly publicationId: {
|
|
804
|
+
readonly type: "string";
|
|
805
|
+
};
|
|
806
|
+
readonly issueId: {
|
|
807
|
+
readonly type: "string";
|
|
808
|
+
};
|
|
809
|
+
readonly timeoutMs: {
|
|
810
|
+
readonly type: "number";
|
|
811
|
+
readonly description: "Optional timeout in milliseconds. Defaults to 60000.";
|
|
812
|
+
};
|
|
813
|
+
readonly pollIntervalMs: {
|
|
814
|
+
readonly type: "number";
|
|
815
|
+
readonly description: "Optional polling interval in milliseconds. Defaults to 2000.";
|
|
816
|
+
};
|
|
817
|
+
};
|
|
818
|
+
readonly required: readonly ["publicationId", "issueId"];
|
|
819
|
+
};
|
|
820
|
+
}, {
|
|
821
|
+
readonly name: "analytics.poll_results";
|
|
822
|
+
readonly description: "Fetch poll vote totals for a specific issue";
|
|
823
|
+
readonly inputSchema: {
|
|
824
|
+
readonly type: "object";
|
|
825
|
+
readonly properties: {
|
|
826
|
+
readonly publicationId: {
|
|
827
|
+
readonly type: "string";
|
|
828
|
+
};
|
|
829
|
+
readonly issueId: {
|
|
830
|
+
readonly type: "string";
|
|
831
|
+
};
|
|
832
|
+
};
|
|
833
|
+
readonly required: readonly ["publicationId", "issueId"];
|
|
834
|
+
};
|
|
835
|
+
}, {
|
|
836
|
+
readonly name: "analytics.issue_performance";
|
|
837
|
+
readonly description: "Fetch open/click delivery analytics for an issue";
|
|
838
|
+
readonly inputSchema: {
|
|
839
|
+
readonly type: "object";
|
|
840
|
+
readonly properties: {
|
|
841
|
+
readonly publicationId: {
|
|
842
|
+
readonly type: "string";
|
|
843
|
+
};
|
|
844
|
+
readonly issueId: {
|
|
845
|
+
readonly type: "string";
|
|
846
|
+
};
|
|
847
|
+
readonly range: {
|
|
848
|
+
readonly type: "string";
|
|
849
|
+
readonly enum: readonly ["24h", "7d", "30d", "all"];
|
|
850
|
+
readonly description: "Analytics window. Defaults to all.";
|
|
851
|
+
};
|
|
852
|
+
};
|
|
853
|
+
readonly required: readonly ["publicationId", "issueId"];
|
|
854
|
+
};
|
|
855
|
+
}, {
|
|
856
|
+
readonly name: "analytics.issue_trend";
|
|
857
|
+
readonly description: "Fetch daily open/click trend buckets for an issue";
|
|
858
|
+
readonly inputSchema: {
|
|
859
|
+
readonly type: "object";
|
|
860
|
+
readonly properties: {
|
|
861
|
+
readonly publicationId: {
|
|
862
|
+
readonly type: "string";
|
|
863
|
+
};
|
|
864
|
+
readonly issueId: {
|
|
865
|
+
readonly type: "string";
|
|
866
|
+
};
|
|
867
|
+
readonly range: {
|
|
868
|
+
readonly type: "string";
|
|
869
|
+
readonly enum: readonly ["24h", "7d", "30d", "all"];
|
|
870
|
+
readonly description: "Analytics window. Defaults to all.";
|
|
871
|
+
};
|
|
872
|
+
};
|
|
873
|
+
readonly required: readonly ["publicationId", "issueId"];
|
|
874
|
+
};
|
|
875
|
+
}, {
|
|
876
|
+
readonly name: "analytics.latest_summary";
|
|
877
|
+
readonly description: "Fetch latest issue analytics snapshot for a publication";
|
|
878
|
+
readonly inputSchema: {
|
|
879
|
+
readonly type: "object";
|
|
880
|
+
readonly properties: {
|
|
881
|
+
readonly publicationId: {
|
|
882
|
+
readonly type: "string";
|
|
883
|
+
readonly description: "Optional publication id. Falls back to MAILTEA_PUBLICATION_ID.";
|
|
884
|
+
};
|
|
885
|
+
readonly range: {
|
|
886
|
+
readonly type: "string";
|
|
887
|
+
readonly enum: readonly ["24h", "7d", "30d", "all"];
|
|
888
|
+
readonly description: "Analytics window. Defaults to 7d.";
|
|
889
|
+
};
|
|
890
|
+
};
|
|
891
|
+
};
|
|
892
|
+
}, {
|
|
893
|
+
readonly name: "analytics.issue_export_csv";
|
|
894
|
+
readonly description: "Export issue performance and poll analytics as CSV";
|
|
895
|
+
readonly inputSchema: {
|
|
896
|
+
readonly type: "object";
|
|
897
|
+
readonly properties: {
|
|
898
|
+
readonly publicationId: {
|
|
899
|
+
readonly type: "string";
|
|
900
|
+
};
|
|
901
|
+
readonly issueId: {
|
|
902
|
+
readonly type: "string";
|
|
903
|
+
};
|
|
904
|
+
readonly range: {
|
|
905
|
+
readonly type: "string";
|
|
906
|
+
readonly enum: readonly ["24h", "7d", "30d", "all"];
|
|
907
|
+
readonly description: "Analytics window. Defaults to all.";
|
|
908
|
+
};
|
|
909
|
+
readonly exportType: {
|
|
910
|
+
readonly type: "string";
|
|
911
|
+
readonly enum: readonly ["combined", "performance", "polls"];
|
|
912
|
+
readonly description: "CSV type. Defaults to combined.";
|
|
913
|
+
};
|
|
914
|
+
};
|
|
915
|
+
readonly required: readonly ["publicationId", "issueId"];
|
|
916
|
+
};
|
|
917
|
+
}, {
|
|
918
|
+
readonly name: "analytics.issue_export_performance_csv";
|
|
919
|
+
readonly description: "Export issue performance-only analytics as CSV";
|
|
920
|
+
readonly inputSchema: {
|
|
921
|
+
readonly type: "object";
|
|
922
|
+
readonly properties: {
|
|
923
|
+
readonly publicationId: {
|
|
924
|
+
readonly type: "string";
|
|
925
|
+
};
|
|
926
|
+
readonly issueId: {
|
|
927
|
+
readonly type: "string";
|
|
928
|
+
};
|
|
929
|
+
readonly range: {
|
|
930
|
+
readonly type: "string";
|
|
931
|
+
readonly enum: readonly ["24h", "7d", "30d", "all"];
|
|
932
|
+
readonly description: "Analytics window. Defaults to all.";
|
|
933
|
+
};
|
|
934
|
+
};
|
|
935
|
+
readonly required: readonly ["publicationId", "issueId"];
|
|
936
|
+
};
|
|
937
|
+
}, {
|
|
938
|
+
readonly name: "analytics.issue_export_polls_csv";
|
|
939
|
+
readonly description: "Export issue poll-only analytics as CSV";
|
|
940
|
+
readonly inputSchema: {
|
|
941
|
+
readonly type: "object";
|
|
942
|
+
readonly properties: {
|
|
943
|
+
readonly publicationId: {
|
|
944
|
+
readonly type: "string";
|
|
945
|
+
};
|
|
946
|
+
readonly issueId: {
|
|
947
|
+
readonly type: "string";
|
|
948
|
+
};
|
|
949
|
+
readonly range: {
|
|
950
|
+
readonly type: "string";
|
|
951
|
+
readonly enum: readonly ["24h", "7d", "30d", "all"];
|
|
952
|
+
readonly description: "Analytics window. Defaults to all.";
|
|
953
|
+
};
|
|
954
|
+
};
|
|
955
|
+
readonly required: readonly ["publicationId", "issueId"];
|
|
956
|
+
};
|
|
957
|
+
}, {
|
|
958
|
+
readonly name: "issue.schedule";
|
|
959
|
+
readonly description: "Schedule an issue for delivery";
|
|
960
|
+
readonly inputSchema: {
|
|
961
|
+
readonly type: "object";
|
|
962
|
+
readonly properties: {
|
|
963
|
+
readonly issueId: {
|
|
964
|
+
readonly type: "string";
|
|
965
|
+
};
|
|
966
|
+
readonly scheduledFor: {
|
|
967
|
+
readonly type: "string";
|
|
968
|
+
readonly description: "ISO timestamp (optional). Defaults to now.";
|
|
969
|
+
};
|
|
970
|
+
};
|
|
971
|
+
readonly required: readonly ["issueId"];
|
|
972
|
+
};
|
|
973
|
+
}, {
|
|
974
|
+
readonly name: "issue.unschedule";
|
|
975
|
+
readonly description: "Cancel an issue schedule and move it back to draft";
|
|
976
|
+
readonly inputSchema: {
|
|
977
|
+
readonly type: "object";
|
|
978
|
+
readonly properties: {
|
|
979
|
+
readonly issueId: {
|
|
980
|
+
readonly type: "string";
|
|
981
|
+
};
|
|
982
|
+
};
|
|
983
|
+
readonly required: readonly ["issueId"];
|
|
984
|
+
};
|
|
985
|
+
}, {
|
|
986
|
+
readonly name: "issue.publish_to_web";
|
|
987
|
+
readonly description: "Publish an issue to the publication's public website, making it readable on the web (typically a sent issue).";
|
|
988
|
+
readonly inputSchema: {
|
|
989
|
+
readonly type: "object";
|
|
990
|
+
readonly properties: {
|
|
991
|
+
readonly issueId: {
|
|
992
|
+
readonly type: "string";
|
|
993
|
+
};
|
|
994
|
+
};
|
|
995
|
+
readonly required: readonly ["issueId"];
|
|
996
|
+
};
|
|
997
|
+
}, {
|
|
998
|
+
readonly name: "issue.unpublish_from_web";
|
|
999
|
+
readonly description: "Remove an issue from the publication's public website.";
|
|
1000
|
+
readonly inputSchema: {
|
|
1001
|
+
readonly type: "object";
|
|
1002
|
+
readonly properties: {
|
|
1003
|
+
readonly issueId: {
|
|
1004
|
+
readonly type: "string";
|
|
1005
|
+
};
|
|
1006
|
+
};
|
|
1007
|
+
readonly required: readonly ["issueId"];
|
|
1008
|
+
};
|
|
1009
|
+
}, {
|
|
1010
|
+
readonly name: "issue.send_now";
|
|
1011
|
+
readonly description: "Send an issue immediately";
|
|
1012
|
+
readonly inputSchema: {
|
|
1013
|
+
readonly type: "object";
|
|
1014
|
+
readonly properties: {
|
|
1015
|
+
readonly issueId: {
|
|
1016
|
+
readonly type: "string";
|
|
1017
|
+
};
|
|
1018
|
+
};
|
|
1019
|
+
readonly required: readonly ["issueId"];
|
|
1020
|
+
};
|
|
1021
|
+
}, {
|
|
1022
|
+
readonly name: "issue.send_and_wait";
|
|
1023
|
+
readonly description: "Send an issue now and poll until sent/failed or timeout";
|
|
1024
|
+
readonly inputSchema: {
|
|
1025
|
+
readonly type: "object";
|
|
1026
|
+
readonly properties: {
|
|
1027
|
+
readonly issueId: {
|
|
1028
|
+
readonly type: "string";
|
|
1029
|
+
};
|
|
1030
|
+
readonly timeoutMs: {
|
|
1031
|
+
readonly type: "number";
|
|
1032
|
+
readonly description: "Optional timeout in milliseconds. Defaults to 60000.";
|
|
1033
|
+
};
|
|
1034
|
+
readonly pollIntervalMs: {
|
|
1035
|
+
readonly type: "number";
|
|
1036
|
+
readonly description: "Optional polling interval in milliseconds. Defaults to 2000.";
|
|
1037
|
+
};
|
|
1038
|
+
};
|
|
1039
|
+
readonly required: readonly ["issueId"];
|
|
1040
|
+
};
|
|
1041
|
+
}, {
|
|
1042
|
+
readonly name: "ai.generate_draft";
|
|
1043
|
+
readonly description: "Generate a draft from a prompt";
|
|
1044
|
+
readonly inputSchema: {
|
|
1045
|
+
readonly type: "object";
|
|
1046
|
+
readonly properties: {
|
|
1047
|
+
readonly publicationId: {
|
|
1048
|
+
readonly type: "string";
|
|
1049
|
+
};
|
|
1050
|
+
readonly prompt: {
|
|
1051
|
+
readonly type: "string";
|
|
1052
|
+
};
|
|
1053
|
+
readonly tone: {
|
|
1054
|
+
readonly type: "string";
|
|
1055
|
+
readonly enum: readonly ["neutral", "friendly", "formal"];
|
|
1056
|
+
};
|
|
1057
|
+
};
|
|
1058
|
+
readonly required: readonly ["publicationId", "prompt"];
|
|
1059
|
+
};
|
|
1060
|
+
}, {
|
|
1061
|
+
readonly name: "template.create";
|
|
1062
|
+
readonly description: "Create an email template. Provide html (raw HTML) or spec (json-render spec). Spec is recommended — the platform renders email-safe HTML server-side. Available spec components: Html, Head, Body, Container, Section, Row, Column, Heading, Text, Link, Button, Image, Hr, Preview, Markdown, MailteaHeader, MailteaFooter, MailteaSpacer, MailteaContentBlock.";
|
|
1063
|
+
readonly inputSchema: {
|
|
1064
|
+
readonly type: "object";
|
|
1065
|
+
readonly properties: {
|
|
1066
|
+
readonly publicationId: {
|
|
1067
|
+
readonly type: "string";
|
|
1068
|
+
readonly description: "Publication to create template in";
|
|
1069
|
+
};
|
|
1070
|
+
readonly name: {
|
|
1071
|
+
readonly type: "string";
|
|
1072
|
+
readonly description: "Template name (max 120 chars)";
|
|
1073
|
+
};
|
|
1074
|
+
readonly html: {
|
|
1075
|
+
readonly type: "string";
|
|
1076
|
+
readonly description: "Raw HTML content (use this OR spec)";
|
|
1077
|
+
};
|
|
1078
|
+
readonly spec: {
|
|
1079
|
+
readonly type: "object";
|
|
1080
|
+
readonly description: "json-render spec (flat element map). Use this OR html.";
|
|
1081
|
+
readonly properties: {
|
|
1082
|
+
readonly root: {
|
|
1083
|
+
readonly type: "string";
|
|
1084
|
+
};
|
|
1085
|
+
readonly elements: {
|
|
1086
|
+
readonly type: "object";
|
|
1087
|
+
};
|
|
1088
|
+
};
|
|
1089
|
+
readonly required: readonly ["root", "elements"];
|
|
1090
|
+
};
|
|
1091
|
+
readonly description: {
|
|
1092
|
+
readonly type: "string";
|
|
1093
|
+
readonly description: "Template description (max 500 chars)";
|
|
1094
|
+
};
|
|
1095
|
+
readonly subject: {
|
|
1096
|
+
readonly type: "string";
|
|
1097
|
+
readonly description: "Default email subject line";
|
|
1098
|
+
};
|
|
1099
|
+
readonly variables: {
|
|
1100
|
+
readonly type: "array";
|
|
1101
|
+
readonly description: "Template variables with fallback values";
|
|
1102
|
+
readonly items: {
|
|
1103
|
+
readonly type: "object";
|
|
1104
|
+
readonly properties: {
|
|
1105
|
+
readonly key: {
|
|
1106
|
+
readonly type: "string";
|
|
1107
|
+
};
|
|
1108
|
+
readonly type: {
|
|
1109
|
+
readonly type: "string";
|
|
1110
|
+
readonly enum: readonly ["string", "number"];
|
|
1111
|
+
};
|
|
1112
|
+
readonly fallback_value: {};
|
|
1113
|
+
};
|
|
1114
|
+
readonly required: readonly ["key", "type"];
|
|
1115
|
+
};
|
|
1116
|
+
};
|
|
1117
|
+
};
|
|
1118
|
+
readonly required: readonly ["publicationId", "name"];
|
|
1119
|
+
};
|
|
1120
|
+
}, {
|
|
1121
|
+
readonly name: "template.list";
|
|
1122
|
+
readonly description: "List email templates for a publication";
|
|
1123
|
+
readonly inputSchema: {
|
|
1124
|
+
readonly type: "object";
|
|
1125
|
+
readonly properties: {
|
|
1126
|
+
readonly publicationId: {
|
|
1127
|
+
readonly type: "string";
|
|
1128
|
+
};
|
|
1129
|
+
readonly limit: {
|
|
1130
|
+
readonly type: "number";
|
|
1131
|
+
readonly description: "Max results (1-100, default 20)";
|
|
1132
|
+
};
|
|
1133
|
+
};
|
|
1134
|
+
readonly required: readonly ["publicationId"];
|
|
1135
|
+
};
|
|
1136
|
+
}, {
|
|
1137
|
+
readonly name: "template.get";
|
|
1138
|
+
readonly description: "Get a single email template by ID, including its spec and rendered HTML";
|
|
1139
|
+
readonly inputSchema: {
|
|
1140
|
+
readonly type: "object";
|
|
1141
|
+
readonly properties: {
|
|
1142
|
+
readonly publicationId: {
|
|
1143
|
+
readonly type: "string";
|
|
1144
|
+
};
|
|
1145
|
+
readonly templateId: {
|
|
1146
|
+
readonly type: "string";
|
|
1147
|
+
};
|
|
1148
|
+
};
|
|
1149
|
+
readonly required: readonly ["publicationId", "templateId"];
|
|
1150
|
+
};
|
|
1151
|
+
}, {
|
|
1152
|
+
readonly name: "template.update";
|
|
1153
|
+
readonly description: "Update an email template. Pass only the fields to change. Providing spec re-renders email-safe HTML server-side; providing html switches the template to raw HTML.";
|
|
1154
|
+
readonly inputSchema: {
|
|
1155
|
+
readonly type: "object";
|
|
1156
|
+
readonly properties: {
|
|
1157
|
+
readonly publicationId: {
|
|
1158
|
+
readonly type: "string";
|
|
1159
|
+
};
|
|
1160
|
+
readonly templateId: {
|
|
1161
|
+
readonly type: "string";
|
|
1162
|
+
};
|
|
1163
|
+
readonly name: {
|
|
1164
|
+
readonly type: "string";
|
|
1165
|
+
};
|
|
1166
|
+
readonly html: {
|
|
1167
|
+
readonly type: "string";
|
|
1168
|
+
readonly description: "Raw HTML content (switches the template to raw HTML).";
|
|
1169
|
+
};
|
|
1170
|
+
readonly spec: {
|
|
1171
|
+
readonly type: "object";
|
|
1172
|
+
readonly description: "json-render spec (flat element map). Re-renders email-safe HTML server-side.";
|
|
1173
|
+
readonly properties: {
|
|
1174
|
+
readonly root: {
|
|
1175
|
+
readonly type: "string";
|
|
1176
|
+
};
|
|
1177
|
+
readonly elements: {
|
|
1178
|
+
readonly type: "object";
|
|
1179
|
+
};
|
|
1180
|
+
};
|
|
1181
|
+
readonly required: readonly ["root", "elements"];
|
|
1182
|
+
};
|
|
1183
|
+
readonly description: {
|
|
1184
|
+
readonly type: "string";
|
|
1185
|
+
};
|
|
1186
|
+
readonly text: {
|
|
1187
|
+
readonly type: "string";
|
|
1188
|
+
readonly description: "Plain-text body.";
|
|
1189
|
+
};
|
|
1190
|
+
readonly subject: {
|
|
1191
|
+
readonly type: "string";
|
|
1192
|
+
};
|
|
1193
|
+
readonly from: {
|
|
1194
|
+
readonly type: "string";
|
|
1195
|
+
readonly description: "Default sender address.";
|
|
1196
|
+
};
|
|
1197
|
+
readonly reply_to: {
|
|
1198
|
+
readonly type: "string";
|
|
1199
|
+
};
|
|
1200
|
+
readonly variables: {
|
|
1201
|
+
readonly type: "array";
|
|
1202
|
+
readonly items: {
|
|
1203
|
+
readonly type: "object";
|
|
1204
|
+
readonly properties: {
|
|
1205
|
+
readonly key: {
|
|
1206
|
+
readonly type: "string";
|
|
1207
|
+
};
|
|
1208
|
+
readonly type: {
|
|
1209
|
+
readonly type: "string";
|
|
1210
|
+
readonly enum: readonly ["string", "number"];
|
|
1211
|
+
};
|
|
1212
|
+
readonly fallback_value: {};
|
|
1213
|
+
};
|
|
1214
|
+
readonly required: readonly ["key", "type"];
|
|
1215
|
+
};
|
|
1216
|
+
};
|
|
1217
|
+
};
|
|
1218
|
+
readonly required: readonly ["publicationId", "templateId"];
|
|
1219
|
+
};
|
|
1220
|
+
}, {
|
|
1221
|
+
readonly name: "template.publish";
|
|
1222
|
+
readonly description: "Publish a draft email template, making it the active version for sends.";
|
|
1223
|
+
readonly inputSchema: {
|
|
1224
|
+
readonly type: "object";
|
|
1225
|
+
readonly properties: {
|
|
1226
|
+
readonly publicationId: {
|
|
1227
|
+
readonly type: "string";
|
|
1228
|
+
};
|
|
1229
|
+
readonly templateId: {
|
|
1230
|
+
readonly type: "string";
|
|
1231
|
+
};
|
|
1232
|
+
};
|
|
1233
|
+
readonly required: readonly ["publicationId", "templateId"];
|
|
1234
|
+
};
|
|
1235
|
+
}, {
|
|
1236
|
+
readonly name: "template.duplicate";
|
|
1237
|
+
readonly description: "Duplicate an email template into a new draft copy.";
|
|
1238
|
+
readonly inputSchema: {
|
|
1239
|
+
readonly type: "object";
|
|
1240
|
+
readonly properties: {
|
|
1241
|
+
readonly publicationId: {
|
|
1242
|
+
readonly type: "string";
|
|
1243
|
+
};
|
|
1244
|
+
readonly templateId: {
|
|
1245
|
+
readonly type: "string";
|
|
1246
|
+
};
|
|
1247
|
+
};
|
|
1248
|
+
readonly required: readonly ["publicationId", "templateId"];
|
|
1249
|
+
};
|
|
1250
|
+
}, {
|
|
1251
|
+
readonly name: "template.delete";
|
|
1252
|
+
readonly description: "Delete an email template.";
|
|
1253
|
+
readonly inputSchema: {
|
|
1254
|
+
readonly type: "object";
|
|
1255
|
+
readonly properties: {
|
|
1256
|
+
readonly publicationId: {
|
|
1257
|
+
readonly type: "string";
|
|
1258
|
+
};
|
|
1259
|
+
readonly templateId: {
|
|
1260
|
+
readonly type: "string";
|
|
1261
|
+
};
|
|
1262
|
+
};
|
|
1263
|
+
readonly required: readonly ["publicationId", "templateId"];
|
|
1264
|
+
};
|
|
1265
|
+
}, {
|
|
1266
|
+
readonly name: "email.send";
|
|
1267
|
+
readonly description: "Send a transactional email to one or more specific recipients. Provide inline content (html and/or text) OR a template reference — not both. Unlike issue.send_now (which sends a newsletter to the WHOLE publication list), this delivers a one-shot email to the exact addresses in 'to'. Set scheduled_at to send later. Returns the new email's id.";
|
|
1268
|
+
readonly inputSchema: {
|
|
1269
|
+
readonly type: "object";
|
|
1270
|
+
readonly properties: {
|
|
1271
|
+
readonly from: {
|
|
1272
|
+
readonly type: "string";
|
|
1273
|
+
readonly description: "Sender, e.g. 'Acme <hello@acme.com>'. Must use a verified domain.";
|
|
1274
|
+
};
|
|
1275
|
+
readonly to: {
|
|
1276
|
+
readonly type: readonly ["string", "array"];
|
|
1277
|
+
readonly items: {
|
|
1278
|
+
readonly type: "string";
|
|
1279
|
+
};
|
|
1280
|
+
readonly description: "Recipient address, or array of up to 50 addresses.";
|
|
1281
|
+
};
|
|
1282
|
+
readonly subject: {
|
|
1283
|
+
readonly type: "string";
|
|
1284
|
+
readonly description: "Subject line (max 998 chars).";
|
|
1285
|
+
};
|
|
1286
|
+
readonly html: {
|
|
1287
|
+
readonly type: "string";
|
|
1288
|
+
readonly description: "HTML body. Use this OR template, not both.";
|
|
1289
|
+
};
|
|
1290
|
+
readonly text: {
|
|
1291
|
+
readonly type: "string";
|
|
1292
|
+
readonly description: "Plain-text body.";
|
|
1293
|
+
};
|
|
1294
|
+
readonly template: {
|
|
1295
|
+
readonly type: "object";
|
|
1296
|
+
readonly description: "Stored template reference to render instead of inline html.";
|
|
1297
|
+
readonly properties: {
|
|
1298
|
+
readonly id: {
|
|
1299
|
+
readonly type: "string";
|
|
1300
|
+
};
|
|
1301
|
+
readonly variables: {
|
|
1302
|
+
readonly type: "object";
|
|
1303
|
+
readonly description: "Template variable values.";
|
|
1304
|
+
};
|
|
1305
|
+
};
|
|
1306
|
+
readonly required: readonly ["id"];
|
|
1307
|
+
};
|
|
1308
|
+
readonly cc: {
|
|
1309
|
+
readonly type: readonly ["string", "array"];
|
|
1310
|
+
readonly items: {
|
|
1311
|
+
readonly type: "string";
|
|
1312
|
+
};
|
|
1313
|
+
readonly description: "CC address(es).";
|
|
1314
|
+
};
|
|
1315
|
+
readonly bcc: {
|
|
1316
|
+
readonly type: readonly ["string", "array"];
|
|
1317
|
+
readonly items: {
|
|
1318
|
+
readonly type: "string";
|
|
1319
|
+
};
|
|
1320
|
+
readonly description: "BCC address(es).";
|
|
1321
|
+
};
|
|
1322
|
+
readonly reply_to: {
|
|
1323
|
+
readonly type: readonly ["string", "array"];
|
|
1324
|
+
readonly items: {
|
|
1325
|
+
readonly type: "string";
|
|
1326
|
+
};
|
|
1327
|
+
readonly description: "Reply-To address(es).";
|
|
1328
|
+
};
|
|
1329
|
+
readonly scheduled_at: {
|
|
1330
|
+
readonly type: "string";
|
|
1331
|
+
readonly description: "ISO 8601 datetime to schedule the send. Omit to send immediately.";
|
|
1332
|
+
};
|
|
1333
|
+
readonly tags: {
|
|
1334
|
+
readonly type: "array";
|
|
1335
|
+
readonly description: "Custom tags for filtering/analytics.";
|
|
1336
|
+
readonly items: {
|
|
1337
|
+
readonly type: "object";
|
|
1338
|
+
readonly properties: {
|
|
1339
|
+
readonly name: {
|
|
1340
|
+
readonly type: "string";
|
|
1341
|
+
};
|
|
1342
|
+
readonly value: {
|
|
1343
|
+
readonly type: "string";
|
|
1344
|
+
};
|
|
1345
|
+
};
|
|
1346
|
+
readonly required: readonly ["name", "value"];
|
|
1347
|
+
};
|
|
1348
|
+
};
|
|
1349
|
+
readonly headers: {
|
|
1350
|
+
readonly type: "object";
|
|
1351
|
+
readonly description: "Custom email headers (string values).";
|
|
1352
|
+
};
|
|
1353
|
+
readonly attachments: {
|
|
1354
|
+
readonly type: "array";
|
|
1355
|
+
readonly description: "File attachments.";
|
|
1356
|
+
readonly items: {
|
|
1357
|
+
readonly type: "object";
|
|
1358
|
+
readonly properties: {
|
|
1359
|
+
readonly filename: {
|
|
1360
|
+
readonly type: "string";
|
|
1361
|
+
};
|
|
1362
|
+
readonly content: {
|
|
1363
|
+
readonly type: "string";
|
|
1364
|
+
readonly description: "Base64-encoded file content.";
|
|
1365
|
+
};
|
|
1366
|
+
readonly content_type: {
|
|
1367
|
+
readonly type: "string";
|
|
1368
|
+
};
|
|
1369
|
+
readonly content_id: {
|
|
1370
|
+
readonly type: "string";
|
|
1371
|
+
readonly description: "For inline images (cid:).";
|
|
1372
|
+
};
|
|
1373
|
+
};
|
|
1374
|
+
readonly required: readonly ["filename", "content"];
|
|
1375
|
+
};
|
|
1376
|
+
};
|
|
1377
|
+
};
|
|
1378
|
+
readonly required: readonly ["from", "to", "subject"];
|
|
1379
|
+
};
|
|
1380
|
+
}, {
|
|
1381
|
+
readonly name: "email.batch";
|
|
1382
|
+
readonly description: "Send up to 100 transactional emails in one request. Each item is shaped like email.send but WITHOUT attachments or scheduled_at. Returns the ids in request order.";
|
|
1383
|
+
readonly inputSchema: {
|
|
1384
|
+
readonly type: "object";
|
|
1385
|
+
readonly properties: {
|
|
1386
|
+
readonly emails: {
|
|
1387
|
+
readonly type: "array";
|
|
1388
|
+
readonly description: "1-100 email objects: { from, to, subject, html?|text?|template?, cc?, bcc?, reply_to?, tags?, headers? }.";
|
|
1389
|
+
readonly items: {
|
|
1390
|
+
readonly type: "object";
|
|
1391
|
+
};
|
|
1392
|
+
};
|
|
1393
|
+
};
|
|
1394
|
+
readonly required: readonly ["emails"];
|
|
1395
|
+
};
|
|
1396
|
+
}, {
|
|
1397
|
+
readonly name: "email.get";
|
|
1398
|
+
readonly description: "Retrieve a transactional email by id with its delivery status (last_event) and tracking counters (open_count, click_count).";
|
|
1399
|
+
readonly inputSchema: {
|
|
1400
|
+
readonly type: "object";
|
|
1401
|
+
readonly properties: {
|
|
1402
|
+
readonly id: {
|
|
1403
|
+
readonly type: "string";
|
|
1404
|
+
};
|
|
1405
|
+
};
|
|
1406
|
+
readonly required: readonly ["id"];
|
|
1407
|
+
};
|
|
1408
|
+
}, {
|
|
1409
|
+
readonly name: "email.reschedule";
|
|
1410
|
+
readonly description: "Reschedule a still-scheduled transactional email to a new time.";
|
|
1411
|
+
readonly inputSchema: {
|
|
1412
|
+
readonly type: "object";
|
|
1413
|
+
readonly properties: {
|
|
1414
|
+
readonly id: {
|
|
1415
|
+
readonly type: "string";
|
|
1416
|
+
};
|
|
1417
|
+
readonly scheduled_at: {
|
|
1418
|
+
readonly type: "string";
|
|
1419
|
+
readonly description: "New ISO 8601 datetime.";
|
|
1420
|
+
};
|
|
1421
|
+
};
|
|
1422
|
+
readonly required: readonly ["id", "scheduled_at"];
|
|
1423
|
+
};
|
|
1424
|
+
}, {
|
|
1425
|
+
readonly name: "email.cancel";
|
|
1426
|
+
readonly description: "Cancel a scheduled transactional email before it sends.";
|
|
1427
|
+
readonly inputSchema: {
|
|
1428
|
+
readonly type: "object";
|
|
1429
|
+
readonly properties: {
|
|
1430
|
+
readonly id: {
|
|
1431
|
+
readonly type: "string";
|
|
1432
|
+
};
|
|
1433
|
+
};
|
|
1434
|
+
readonly required: readonly ["id"];
|
|
1435
|
+
};
|
|
1436
|
+
}, {
|
|
1437
|
+
readonly name: "email.resend";
|
|
1438
|
+
readonly description: "Resend a failed or bounced transactional email — creates a fresh copy with the same content. Only emails whose status is 'failed' or 'bounced' can be resent; others return an error.";
|
|
1439
|
+
readonly inputSchema: {
|
|
1440
|
+
readonly type: "object";
|
|
1441
|
+
readonly properties: {
|
|
1442
|
+
readonly id: {
|
|
1443
|
+
readonly type: "string";
|
|
1444
|
+
};
|
|
1445
|
+
};
|
|
1446
|
+
readonly required: readonly ["id"];
|
|
1447
|
+
};
|
|
1448
|
+
}, {
|
|
1449
|
+
readonly name: "email.list";
|
|
1450
|
+
readonly description: "List transactional emails (most recent first). Filter by status and tags; paginate with limit/offset. Returns id, status, subject, recipient per email.";
|
|
1451
|
+
readonly inputSchema: {
|
|
1452
|
+
readonly type: "object";
|
|
1453
|
+
readonly properties: {
|
|
1454
|
+
readonly status: {
|
|
1455
|
+
readonly type: "string";
|
|
1456
|
+
readonly enum: readonly ["queued", "sent", "delivered", "bounced", "complained", "failed", "scheduled", "canceled"];
|
|
1457
|
+
readonly description: "Filter by delivery status.";
|
|
1458
|
+
};
|
|
1459
|
+
readonly limit: {
|
|
1460
|
+
readonly type: "number";
|
|
1461
|
+
readonly description: "Max results 1-100 (default 50).";
|
|
1462
|
+
};
|
|
1463
|
+
readonly offset: {
|
|
1464
|
+
readonly type: "number";
|
|
1465
|
+
readonly description: "Pagination offset (default 0).";
|
|
1466
|
+
};
|
|
1467
|
+
readonly tag_name: {
|
|
1468
|
+
readonly type: "string";
|
|
1469
|
+
readonly description: "Filter by a custom tag name.";
|
|
1470
|
+
};
|
|
1471
|
+
readonly tag_value: {
|
|
1472
|
+
readonly type: "string";
|
|
1473
|
+
readonly description: "Filter by a custom tag value (use with tag_name).";
|
|
1474
|
+
};
|
|
1475
|
+
readonly from_date: {
|
|
1476
|
+
readonly type: "string";
|
|
1477
|
+
readonly description: "ISO 8601 lower bound on created_at.";
|
|
1478
|
+
};
|
|
1479
|
+
readonly to_date: {
|
|
1480
|
+
readonly type: "string";
|
|
1481
|
+
readonly description: "ISO 8601 upper bound on created_at.";
|
|
1482
|
+
};
|
|
1483
|
+
};
|
|
1484
|
+
};
|
|
1485
|
+
}, {
|
|
1486
|
+
readonly name: "email.analytics";
|
|
1487
|
+
readonly description: "Aggregate transactional email metrics over an optional date window: totals, delivered/bounced/opened/clicked counts, per-status counts, and delivery/open/click/bounce rates.";
|
|
1488
|
+
readonly inputSchema: {
|
|
1489
|
+
readonly type: "object";
|
|
1490
|
+
readonly properties: {
|
|
1491
|
+
readonly from_date: {
|
|
1492
|
+
readonly type: "string";
|
|
1493
|
+
readonly description: "ISO 8601 lower bound on created_at.";
|
|
1494
|
+
};
|
|
1495
|
+
readonly to_date: {
|
|
1496
|
+
readonly type: "string";
|
|
1497
|
+
readonly description: "ISO 8601 upper bound on created_at.";
|
|
1498
|
+
};
|
|
1499
|
+
};
|
|
1500
|
+
};
|
|
1501
|
+
}, {
|
|
1502
|
+
readonly name: "email.inbound_list";
|
|
1503
|
+
readonly description: "List inbound (received) emails for a publication, most recent first; paginate with limit/cursor. Only this inbound tool needs publicationId — email.inbound_get/list_attachments/get_attachment/reply resolve tenancy from the email id.";
|
|
1504
|
+
readonly inputSchema: {
|
|
1505
|
+
readonly type: "object";
|
|
1506
|
+
readonly properties: {
|
|
1507
|
+
readonly publicationId: {
|
|
1508
|
+
readonly type: "string";
|
|
1509
|
+
};
|
|
1510
|
+
readonly limit: {
|
|
1511
|
+
readonly type: "number";
|
|
1512
|
+
readonly description: "Max results (1-100, default 20).";
|
|
1513
|
+
};
|
|
1514
|
+
readonly cursor: {
|
|
1515
|
+
readonly type: "string";
|
|
1516
|
+
readonly description: "Opaque pagination cursor from a prior response's next_cursor.";
|
|
1517
|
+
};
|
|
1518
|
+
};
|
|
1519
|
+
readonly required: readonly ["publicationId"];
|
|
1520
|
+
};
|
|
1521
|
+
}, {
|
|
1522
|
+
readonly name: "email.inbound_get";
|
|
1523
|
+
readonly description: "Retrieve a single inbound email by id (rxemail_) — headers, html/text body, a signed download URL for the raw message, and its attachments. Tenancy is resolved from the id, so no publicationId is needed.";
|
|
1524
|
+
readonly inputSchema: {
|
|
1525
|
+
readonly type: "object";
|
|
1526
|
+
readonly properties: {
|
|
1527
|
+
readonly id: {
|
|
1528
|
+
readonly type: "string";
|
|
1529
|
+
readonly description: "Inbound email id (rxemail_).";
|
|
1530
|
+
};
|
|
1531
|
+
};
|
|
1532
|
+
readonly required: readonly ["id"];
|
|
1533
|
+
};
|
|
1534
|
+
}, {
|
|
1535
|
+
readonly name: "email.inbound_list_attachments";
|
|
1536
|
+
readonly description: "List the attachments of an inbound email, each with a signed download URL. Tenancy is resolved from the email id, so no publicationId is needed.";
|
|
1537
|
+
readonly inputSchema: {
|
|
1538
|
+
readonly type: "object";
|
|
1539
|
+
readonly properties: {
|
|
1540
|
+
readonly id: {
|
|
1541
|
+
readonly type: "string";
|
|
1542
|
+
readonly description: "Inbound email id (rxemail_).";
|
|
1543
|
+
};
|
|
1544
|
+
};
|
|
1545
|
+
readonly required: readonly ["id"];
|
|
1546
|
+
};
|
|
1547
|
+
}, {
|
|
1548
|
+
readonly name: "email.inbound_get_attachment";
|
|
1549
|
+
readonly description: "Get a single inbound-email attachment (rxatt_) with a signed download URL. Tenancy is resolved from the parent email id, so no publicationId is needed.";
|
|
1550
|
+
readonly inputSchema: {
|
|
1551
|
+
readonly type: "object";
|
|
1552
|
+
readonly properties: {
|
|
1553
|
+
readonly id: {
|
|
1554
|
+
readonly type: "string";
|
|
1555
|
+
readonly description: "Inbound email id (rxemail_).";
|
|
1556
|
+
};
|
|
1557
|
+
readonly attachmentId: {
|
|
1558
|
+
readonly type: "string";
|
|
1559
|
+
readonly description: "Attachment id (rxatt_).";
|
|
1560
|
+
};
|
|
1561
|
+
};
|
|
1562
|
+
readonly required: readonly ["id", "attachmentId"];
|
|
1563
|
+
};
|
|
1564
|
+
}, {
|
|
1565
|
+
readonly name: "email.inbound_reply";
|
|
1566
|
+
readonly description: "Reply to an inbound email. The reply threads automatically — In-Reply-To, References, and the To (reply target) are all derived by the server from the original, so they are NOT inputs. Provide html and/or text. Omit `from` to send from the verified domain the mail was delivered to. Tenancy is resolved from the email id (no publicationId). Returns the resulting transactional email id (txemail_) with its status.";
|
|
1567
|
+
readonly inputSchema: {
|
|
1568
|
+
readonly type: "object";
|
|
1569
|
+
readonly properties: {
|
|
1570
|
+
readonly id: {
|
|
1571
|
+
readonly type: "string";
|
|
1572
|
+
readonly description: "Inbound email id (rxemail_) to reply to.";
|
|
1573
|
+
};
|
|
1574
|
+
readonly from: {
|
|
1575
|
+
readonly type: "object";
|
|
1576
|
+
readonly description: "Sender override. Omit to send from the verified domain the original was delivered to.";
|
|
1577
|
+
readonly properties: {
|
|
1578
|
+
readonly email: {
|
|
1579
|
+
readonly type: "string";
|
|
1580
|
+
};
|
|
1581
|
+
readonly name: {
|
|
1582
|
+
readonly type: "string";
|
|
1583
|
+
};
|
|
1584
|
+
};
|
|
1585
|
+
readonly required: readonly ["email"];
|
|
1586
|
+
};
|
|
1587
|
+
readonly subject: {
|
|
1588
|
+
readonly type: "string";
|
|
1589
|
+
readonly description: "Defaults to the original subject with a single 'Re: ' prefix.";
|
|
1590
|
+
};
|
|
1591
|
+
readonly html: {
|
|
1592
|
+
readonly type: "string";
|
|
1593
|
+
readonly description: "HTML body (provide html and/or text).";
|
|
1594
|
+
};
|
|
1595
|
+
readonly text: {
|
|
1596
|
+
readonly type: "string";
|
|
1597
|
+
readonly description: "Plain-text body (provide html and/or text).";
|
|
1598
|
+
};
|
|
1599
|
+
readonly cc: {
|
|
1600
|
+
readonly type: "array";
|
|
1601
|
+
readonly items: {
|
|
1602
|
+
readonly type: "string";
|
|
1603
|
+
};
|
|
1604
|
+
readonly description: "CC addresses.";
|
|
1605
|
+
};
|
|
1606
|
+
readonly bcc: {
|
|
1607
|
+
readonly type: "array";
|
|
1608
|
+
readonly items: {
|
|
1609
|
+
readonly type: "string";
|
|
1610
|
+
};
|
|
1611
|
+
readonly description: "BCC addresses.";
|
|
1612
|
+
};
|
|
1613
|
+
readonly idempotency_key: {
|
|
1614
|
+
readonly type: "string";
|
|
1615
|
+
readonly description: "Optional key to make the reply idempotent (the Idempotency-Key header wins when both are set).";
|
|
1616
|
+
};
|
|
1617
|
+
};
|
|
1618
|
+
readonly required: readonly ["id"];
|
|
1619
|
+
};
|
|
1620
|
+
}, {
|
|
1621
|
+
readonly name: "issue.send_test";
|
|
1622
|
+
readonly description: "Send a TEST copy of a newsletter draft to specific recipients (yourself/teammates) to check it before subscribers see it. Renders the issue exactly as a subscriber would receive it and delivers it as a one-shot email with a '[TEST]' subject prefix. This does NOT send to the publication's audience — use issue.send_now for the real send.";
|
|
1623
|
+
readonly inputSchema: {
|
|
1624
|
+
readonly type: "object";
|
|
1625
|
+
readonly properties: {
|
|
1626
|
+
readonly issueId: {
|
|
1627
|
+
readonly type: "string";
|
|
1628
|
+
};
|
|
1629
|
+
readonly recipients: {
|
|
1630
|
+
readonly type: readonly ["string", "array"];
|
|
1631
|
+
readonly items: {
|
|
1632
|
+
readonly type: "string";
|
|
1633
|
+
};
|
|
1634
|
+
readonly description: "Test recipient address, or array of addresses.";
|
|
1635
|
+
};
|
|
1636
|
+
readonly from: {
|
|
1637
|
+
readonly type: "string";
|
|
1638
|
+
readonly description: "Sender, e.g. 'Acme <hello@acme.com>'. Must use a verified domain.";
|
|
1639
|
+
};
|
|
1640
|
+
};
|
|
1641
|
+
readonly required: readonly ["issueId", "recipients", "from"];
|
|
1642
|
+
};
|
|
1643
|
+
}, {
|
|
1644
|
+
readonly name: "domain.create";
|
|
1645
|
+
readonly description: "Register an email sending domain for a publication. Returns the DNS TXT record (in 'records') the operator must add before the domain can be verified. Set purpose to 'email' (or 'both') to use it as a sending 'from' domain.";
|
|
1646
|
+
readonly inputSchema: {
|
|
1647
|
+
readonly type: "object";
|
|
1648
|
+
readonly properties: {
|
|
1649
|
+
readonly publicationId: {
|
|
1650
|
+
readonly type: "string";
|
|
1651
|
+
};
|
|
1652
|
+
readonly name: {
|
|
1653
|
+
readonly type: "string";
|
|
1654
|
+
readonly description: "Domain host, e.g. 'mail.acme.com'.";
|
|
1655
|
+
};
|
|
1656
|
+
readonly purpose: {
|
|
1657
|
+
readonly type: "string";
|
|
1658
|
+
readonly enum: readonly ["email", "site", "both"];
|
|
1659
|
+
readonly description: "Use 'email' or 'both' for a sending domain. Defaults to 'site'.";
|
|
1660
|
+
};
|
|
1661
|
+
readonly is_primary: {
|
|
1662
|
+
readonly type: "boolean";
|
|
1663
|
+
};
|
|
1664
|
+
};
|
|
1665
|
+
readonly required: readonly ["publicationId", "name"];
|
|
1666
|
+
};
|
|
1667
|
+
}, {
|
|
1668
|
+
readonly name: "domain.list";
|
|
1669
|
+
readonly description: "List email/site domains for a publication.";
|
|
1670
|
+
readonly inputSchema: {
|
|
1671
|
+
readonly type: "object";
|
|
1672
|
+
readonly properties: {
|
|
1673
|
+
readonly publicationId: {
|
|
1674
|
+
readonly type: "string";
|
|
1675
|
+
};
|
|
1676
|
+
readonly limit: {
|
|
1677
|
+
readonly type: "number";
|
|
1678
|
+
readonly description: "Max results (1-100, default 20).";
|
|
1679
|
+
};
|
|
1680
|
+
};
|
|
1681
|
+
readonly required: readonly ["publicationId"];
|
|
1682
|
+
};
|
|
1683
|
+
}, {
|
|
1684
|
+
readonly name: "domain.get";
|
|
1685
|
+
readonly description: "Get a single domain including the DNS 'records' to add for verification.";
|
|
1686
|
+
readonly inputSchema: {
|
|
1687
|
+
readonly type: "object";
|
|
1688
|
+
readonly properties: {
|
|
1689
|
+
readonly publicationId: {
|
|
1690
|
+
readonly type: "string";
|
|
1691
|
+
};
|
|
1692
|
+
readonly domainId: {
|
|
1693
|
+
readonly type: "string";
|
|
1694
|
+
};
|
|
1695
|
+
};
|
|
1696
|
+
readonly required: readonly ["publicationId", "domainId"];
|
|
1697
|
+
};
|
|
1698
|
+
}, {
|
|
1699
|
+
readonly name: "domain.verify";
|
|
1700
|
+
readonly description: "Verify a domain by checking its DNS TXT record. On success the domain's status becomes 'verified' and it can be used as a sending 'from' domain.";
|
|
1701
|
+
readonly inputSchema: {
|
|
1702
|
+
readonly type: "object";
|
|
1703
|
+
readonly properties: {
|
|
1704
|
+
readonly publicationId: {
|
|
1705
|
+
readonly type: "string";
|
|
1706
|
+
};
|
|
1707
|
+
readonly domainId: {
|
|
1708
|
+
readonly type: "string";
|
|
1709
|
+
};
|
|
1710
|
+
};
|
|
1711
|
+
readonly required: readonly ["publicationId", "domainId"];
|
|
1712
|
+
};
|
|
1713
|
+
}, {
|
|
1714
|
+
readonly name: "domain.update";
|
|
1715
|
+
readonly description: "Update a domain's purpose (email/site/both) or primary flag.";
|
|
1716
|
+
readonly inputSchema: {
|
|
1717
|
+
readonly type: "object";
|
|
1718
|
+
readonly properties: {
|
|
1719
|
+
readonly publicationId: {
|
|
1720
|
+
readonly type: "string";
|
|
1721
|
+
};
|
|
1722
|
+
readonly domainId: {
|
|
1723
|
+
readonly type: "string";
|
|
1724
|
+
};
|
|
1725
|
+
readonly purpose: {
|
|
1726
|
+
readonly type: "string";
|
|
1727
|
+
readonly enum: readonly ["email", "site", "both"];
|
|
1728
|
+
};
|
|
1729
|
+
readonly is_primary: {
|
|
1730
|
+
readonly type: "boolean";
|
|
1731
|
+
};
|
|
1732
|
+
};
|
|
1733
|
+
readonly required: readonly ["publicationId", "domainId"];
|
|
1734
|
+
};
|
|
1735
|
+
}, {
|
|
1736
|
+
readonly name: "domain.delete";
|
|
1737
|
+
readonly description: "Remove a domain from a publication.";
|
|
1738
|
+
readonly inputSchema: {
|
|
1739
|
+
readonly type: "object";
|
|
1740
|
+
readonly properties: {
|
|
1741
|
+
readonly publicationId: {
|
|
1742
|
+
readonly type: "string";
|
|
1743
|
+
};
|
|
1744
|
+
readonly domainId: {
|
|
1745
|
+
readonly type: "string";
|
|
1746
|
+
};
|
|
1747
|
+
};
|
|
1748
|
+
readonly required: readonly ["publicationId", "domainId"];
|
|
1749
|
+
};
|
|
1750
|
+
}, {
|
|
1751
|
+
readonly name: "domain.tracking_create";
|
|
1752
|
+
readonly description: "Add a tracking sub-domain (CNAME) under a domain — used to serve open-pixel/click-tracking links from your own domain. Returns the CNAME record to add, then call domain.tracking_verify.";
|
|
1753
|
+
readonly inputSchema: {
|
|
1754
|
+
readonly type: "object";
|
|
1755
|
+
readonly properties: {
|
|
1756
|
+
readonly publicationId: {
|
|
1757
|
+
readonly type: "string";
|
|
1758
|
+
};
|
|
1759
|
+
readonly domainId: {
|
|
1760
|
+
readonly type: "string";
|
|
1761
|
+
readonly description: "Parent domain ID.";
|
|
1762
|
+
};
|
|
1763
|
+
readonly subdomain: {
|
|
1764
|
+
readonly type: "string";
|
|
1765
|
+
readonly description: "Sub-domain label (lowercase alphanumeric and hyphens), e.g. 'links'.";
|
|
1766
|
+
};
|
|
1767
|
+
};
|
|
1768
|
+
readonly required: readonly ["publicationId", "domainId", "subdomain"];
|
|
1769
|
+
};
|
|
1770
|
+
}, {
|
|
1771
|
+
readonly name: "domain.tracking_list";
|
|
1772
|
+
readonly description: "List tracking sub-domains for a domain.";
|
|
1773
|
+
readonly inputSchema: {
|
|
1774
|
+
readonly type: "object";
|
|
1775
|
+
readonly properties: {
|
|
1776
|
+
readonly publicationId: {
|
|
1777
|
+
readonly type: "string";
|
|
1778
|
+
};
|
|
1779
|
+
readonly domainId: {
|
|
1780
|
+
readonly type: "string";
|
|
1781
|
+
};
|
|
1782
|
+
};
|
|
1783
|
+
readonly required: readonly ["publicationId", "domainId"];
|
|
1784
|
+
};
|
|
1785
|
+
}, {
|
|
1786
|
+
readonly name: "domain.tracking_verify";
|
|
1787
|
+
readonly description: "Verify a tracking sub-domain by checking its CNAME record; status becomes 'verified'.";
|
|
1788
|
+
readonly inputSchema: {
|
|
1789
|
+
readonly type: "object";
|
|
1790
|
+
readonly properties: {
|
|
1791
|
+
readonly publicationId: {
|
|
1792
|
+
readonly type: "string";
|
|
1793
|
+
};
|
|
1794
|
+
readonly domainId: {
|
|
1795
|
+
readonly type: "string";
|
|
1796
|
+
};
|
|
1797
|
+
readonly trackingDomainId: {
|
|
1798
|
+
readonly type: "string";
|
|
1799
|
+
};
|
|
1800
|
+
};
|
|
1801
|
+
readonly required: readonly ["publicationId", "domainId", "trackingDomainId"];
|
|
1802
|
+
};
|
|
1803
|
+
}, {
|
|
1804
|
+
readonly name: "domain.tracking_delete";
|
|
1805
|
+
readonly description: "Remove a tracking sub-domain.";
|
|
1806
|
+
readonly inputSchema: {
|
|
1807
|
+
readonly type: "object";
|
|
1808
|
+
readonly properties: {
|
|
1809
|
+
readonly publicationId: {
|
|
1810
|
+
readonly type: "string";
|
|
1811
|
+
};
|
|
1812
|
+
readonly domainId: {
|
|
1813
|
+
readonly type: "string";
|
|
1814
|
+
};
|
|
1815
|
+
readonly trackingDomainId: {
|
|
1816
|
+
readonly type: "string";
|
|
1817
|
+
};
|
|
1818
|
+
};
|
|
1819
|
+
readonly required: readonly ["publicationId", "domainId", "trackingDomainId"];
|
|
1820
|
+
};
|
|
1821
|
+
}, {
|
|
1822
|
+
readonly name: "webhook.create";
|
|
1823
|
+
readonly description: "Register an outbound webhook endpoint that receives delivery/engagement events. Returns a signing_secret (shown only once) used to verify payloads.";
|
|
1824
|
+
readonly inputSchema: {
|
|
1825
|
+
readonly type: "object";
|
|
1826
|
+
readonly properties: {
|
|
1827
|
+
readonly publicationId: {
|
|
1828
|
+
readonly type: "string";
|
|
1829
|
+
};
|
|
1830
|
+
readonly endpoint: {
|
|
1831
|
+
readonly type: "string";
|
|
1832
|
+
readonly description: "HTTPS URL to deliver events to.";
|
|
1833
|
+
};
|
|
1834
|
+
readonly events: {
|
|
1835
|
+
readonly type: "array";
|
|
1836
|
+
readonly items: {
|
|
1837
|
+
readonly type: "string";
|
|
1838
|
+
};
|
|
1839
|
+
readonly description: "Event types, e.g. email.received, email.sent, email.delivered, email.bounced, email.opened, email.clicked, contact.created, contact.unsubscribed.";
|
|
1840
|
+
};
|
|
1841
|
+
};
|
|
1842
|
+
readonly required: readonly ["publicationId", "endpoint", "events"];
|
|
1843
|
+
};
|
|
1844
|
+
}, {
|
|
1845
|
+
readonly name: "webhook.list";
|
|
1846
|
+
readonly description: "List outbound webhooks for a publication (signing secrets omitted).";
|
|
1847
|
+
readonly inputSchema: {
|
|
1848
|
+
readonly type: "object";
|
|
1849
|
+
readonly properties: {
|
|
1850
|
+
readonly publicationId: {
|
|
1851
|
+
readonly type: "string";
|
|
1852
|
+
};
|
|
1853
|
+
readonly limit: {
|
|
1854
|
+
readonly type: "number";
|
|
1855
|
+
readonly description: "Max results (1-100, default 20).";
|
|
1856
|
+
};
|
|
1857
|
+
};
|
|
1858
|
+
readonly required: readonly ["publicationId"];
|
|
1859
|
+
};
|
|
1860
|
+
}, {
|
|
1861
|
+
readonly name: "webhook.get";
|
|
1862
|
+
readonly description: "Get a single outbound webhook by ID.";
|
|
1863
|
+
readonly inputSchema: {
|
|
1864
|
+
readonly type: "object";
|
|
1865
|
+
readonly properties: {
|
|
1866
|
+
readonly publicationId: {
|
|
1867
|
+
readonly type: "string";
|
|
1868
|
+
};
|
|
1869
|
+
readonly webhookId: {
|
|
1870
|
+
readonly type: "string";
|
|
1871
|
+
};
|
|
1872
|
+
};
|
|
1873
|
+
readonly required: readonly ["publicationId", "webhookId"];
|
|
1874
|
+
};
|
|
1875
|
+
}, {
|
|
1876
|
+
readonly name: "webhook.update";
|
|
1877
|
+
readonly description: "Update a webhook's endpoint, subscribed events, or enabled/disabled status.";
|
|
1878
|
+
readonly inputSchema: {
|
|
1879
|
+
readonly type: "object";
|
|
1880
|
+
readonly properties: {
|
|
1881
|
+
readonly publicationId: {
|
|
1882
|
+
readonly type: "string";
|
|
1883
|
+
};
|
|
1884
|
+
readonly webhookId: {
|
|
1885
|
+
readonly type: "string";
|
|
1886
|
+
};
|
|
1887
|
+
readonly endpoint: {
|
|
1888
|
+
readonly type: "string";
|
|
1889
|
+
};
|
|
1890
|
+
readonly events: {
|
|
1891
|
+
readonly type: "array";
|
|
1892
|
+
readonly items: {
|
|
1893
|
+
readonly type: "string";
|
|
1894
|
+
};
|
|
1895
|
+
};
|
|
1896
|
+
readonly status: {
|
|
1897
|
+
readonly type: "string";
|
|
1898
|
+
readonly enum: readonly ["enabled", "disabled"];
|
|
1899
|
+
};
|
|
1900
|
+
};
|
|
1901
|
+
readonly required: readonly ["publicationId", "webhookId"];
|
|
1902
|
+
};
|
|
1903
|
+
}, {
|
|
1904
|
+
readonly name: "webhook.delete";
|
|
1905
|
+
readonly description: "Delete an outbound webhook.";
|
|
1906
|
+
readonly inputSchema: {
|
|
1907
|
+
readonly type: "object";
|
|
1908
|
+
readonly properties: {
|
|
1909
|
+
readonly publicationId: {
|
|
1910
|
+
readonly type: "string";
|
|
1911
|
+
};
|
|
1912
|
+
readonly webhookId: {
|
|
1913
|
+
readonly type: "string";
|
|
1914
|
+
};
|
|
1915
|
+
};
|
|
1916
|
+
readonly required: readonly ["publicationId", "webhookId"];
|
|
1917
|
+
};
|
|
1918
|
+
}, {
|
|
1919
|
+
readonly name: "segment.create";
|
|
1920
|
+
readonly description: "Create a saved audience segment defined by a status filter and/or a query filter (filter-based, not manual membership).";
|
|
1921
|
+
readonly inputSchema: {
|
|
1922
|
+
readonly type: "object";
|
|
1923
|
+
readonly properties: {
|
|
1924
|
+
readonly publicationId: {
|
|
1925
|
+
readonly type: "string";
|
|
1926
|
+
};
|
|
1927
|
+
readonly name: {
|
|
1928
|
+
readonly type: "string";
|
|
1929
|
+
};
|
|
1930
|
+
readonly description: {
|
|
1931
|
+
readonly type: "string";
|
|
1932
|
+
};
|
|
1933
|
+
readonly status_filter: {
|
|
1934
|
+
readonly type: "string";
|
|
1935
|
+
readonly enum: readonly ["active", "unsubscribed", "suppressed"];
|
|
1936
|
+
};
|
|
1937
|
+
readonly query_filter: {
|
|
1938
|
+
readonly type: "string";
|
|
1939
|
+
readonly description: "Search/filter expression over contacts.";
|
|
1940
|
+
};
|
|
1941
|
+
};
|
|
1942
|
+
readonly required: readonly ["publicationId", "name"];
|
|
1943
|
+
};
|
|
1944
|
+
}, {
|
|
1945
|
+
readonly name: "segment.list";
|
|
1946
|
+
readonly description: "List saved audience segments for a publication.";
|
|
1947
|
+
readonly inputSchema: {
|
|
1948
|
+
readonly type: "object";
|
|
1949
|
+
readonly properties: {
|
|
1950
|
+
readonly publicationId: {
|
|
1951
|
+
readonly type: "string";
|
|
1952
|
+
};
|
|
1953
|
+
readonly limit: {
|
|
1954
|
+
readonly type: "number";
|
|
1955
|
+
readonly description: "Max results (1-100, default 20).";
|
|
1956
|
+
};
|
|
1957
|
+
};
|
|
1958
|
+
readonly required: readonly ["publicationId"];
|
|
1959
|
+
};
|
|
1960
|
+
}, {
|
|
1961
|
+
readonly name: "segment.get";
|
|
1962
|
+
readonly description: "Get a single audience segment by ID.";
|
|
1963
|
+
readonly inputSchema: {
|
|
1964
|
+
readonly type: "object";
|
|
1965
|
+
readonly properties: {
|
|
1966
|
+
readonly publicationId: {
|
|
1967
|
+
readonly type: "string";
|
|
1968
|
+
};
|
|
1969
|
+
readonly segmentId: {
|
|
1970
|
+
readonly type: "string";
|
|
1971
|
+
};
|
|
1972
|
+
};
|
|
1973
|
+
readonly required: readonly ["publicationId", "segmentId"];
|
|
1974
|
+
};
|
|
1975
|
+
}, {
|
|
1976
|
+
readonly name: "segment.update";
|
|
1977
|
+
readonly description: "Update an audience segment's name, description, or filters.";
|
|
1978
|
+
readonly inputSchema: {
|
|
1979
|
+
readonly type: "object";
|
|
1980
|
+
readonly properties: {
|
|
1981
|
+
readonly publicationId: {
|
|
1982
|
+
readonly type: "string";
|
|
1983
|
+
};
|
|
1984
|
+
readonly segmentId: {
|
|
1985
|
+
readonly type: "string";
|
|
1986
|
+
};
|
|
1987
|
+
readonly name: {
|
|
1988
|
+
readonly type: "string";
|
|
1989
|
+
};
|
|
1990
|
+
readonly description: {
|
|
1991
|
+
readonly type: "string";
|
|
1992
|
+
};
|
|
1993
|
+
readonly status_filter: {
|
|
1994
|
+
readonly type: readonly ["string", "null"];
|
|
1995
|
+
readonly enum: readonly ["active", "unsubscribed", "suppressed", null];
|
|
1996
|
+
readonly description: "Filter by contact status, or null to clear it.";
|
|
1997
|
+
};
|
|
1998
|
+
readonly query_filter: {
|
|
1999
|
+
readonly type: readonly ["string", "null"];
|
|
2000
|
+
readonly description: "Search/filter expression, or null to clear it.";
|
|
2001
|
+
};
|
|
2002
|
+
};
|
|
2003
|
+
readonly required: readonly ["publicationId", "segmentId"];
|
|
2004
|
+
};
|
|
2005
|
+
}, {
|
|
2006
|
+
readonly name: "segment.delete";
|
|
2007
|
+
readonly description: "Delete an audience segment.";
|
|
2008
|
+
readonly inputSchema: {
|
|
2009
|
+
readonly type: "object";
|
|
2010
|
+
readonly properties: {
|
|
2011
|
+
readonly publicationId: {
|
|
2012
|
+
readonly type: "string";
|
|
2013
|
+
};
|
|
2014
|
+
readonly segmentId: {
|
|
2015
|
+
readonly type: "string";
|
|
2016
|
+
};
|
|
2017
|
+
};
|
|
2018
|
+
readonly required: readonly ["publicationId", "segmentId"];
|
|
2019
|
+
};
|
|
2020
|
+
}, {
|
|
2021
|
+
readonly name: "contact_property.create";
|
|
2022
|
+
readonly description: "Define a custom contact property (custom field) for the team. Property values are set per-contact via contact.set_properties.";
|
|
2023
|
+
readonly inputSchema: {
|
|
2024
|
+
readonly type: "object";
|
|
2025
|
+
readonly properties: {
|
|
2026
|
+
readonly key: {
|
|
2027
|
+
readonly type: "string";
|
|
2028
|
+
readonly description: "Property key (starts with a letter; letters, numbers, underscores).";
|
|
2029
|
+
};
|
|
2030
|
+
readonly type: {
|
|
2031
|
+
readonly type: "string";
|
|
2032
|
+
readonly enum: readonly ["string", "number"];
|
|
2033
|
+
};
|
|
2034
|
+
readonly fallback_value: {
|
|
2035
|
+
readonly description: "Default value when a contact has none (matches type).";
|
|
2036
|
+
};
|
|
2037
|
+
readonly description: {
|
|
2038
|
+
readonly type: "string";
|
|
2039
|
+
};
|
|
2040
|
+
};
|
|
2041
|
+
readonly required: readonly ["key", "type"];
|
|
2042
|
+
};
|
|
2043
|
+
}, {
|
|
2044
|
+
readonly name: "contact_property.list";
|
|
2045
|
+
readonly description: "List the team's custom contact property definitions.";
|
|
2046
|
+
readonly inputSchema: {
|
|
2047
|
+
readonly type: "object";
|
|
2048
|
+
readonly properties: {
|
|
2049
|
+
readonly limit: {
|
|
2050
|
+
readonly type: "number";
|
|
2051
|
+
readonly description: "Max results (1-100, default 20).";
|
|
2052
|
+
};
|
|
2053
|
+
};
|
|
2054
|
+
};
|
|
2055
|
+
}, {
|
|
2056
|
+
readonly name: "contact_property.update";
|
|
2057
|
+
readonly description: "Update a custom contact property's fallback value or description.";
|
|
2058
|
+
readonly inputSchema: {
|
|
2059
|
+
readonly type: "object";
|
|
2060
|
+
readonly properties: {
|
|
2061
|
+
readonly propertyId: {
|
|
2062
|
+
readonly type: "string";
|
|
2063
|
+
};
|
|
2064
|
+
readonly fallback_value: {};
|
|
2065
|
+
readonly description: {
|
|
2066
|
+
readonly type: "string";
|
|
2067
|
+
};
|
|
2068
|
+
};
|
|
2069
|
+
readonly required: readonly ["propertyId"];
|
|
2070
|
+
};
|
|
2071
|
+
}, {
|
|
2072
|
+
readonly name: "contact_property.delete";
|
|
2073
|
+
readonly description: "Delete a custom contact property definition.";
|
|
2074
|
+
readonly inputSchema: {
|
|
2075
|
+
readonly type: "object";
|
|
2076
|
+
readonly properties: {
|
|
2077
|
+
readonly propertyId: {
|
|
2078
|
+
readonly type: "string";
|
|
2079
|
+
};
|
|
2080
|
+
};
|
|
2081
|
+
readonly required: readonly ["propertyId"];
|
|
2082
|
+
};
|
|
2083
|
+
}, {
|
|
2084
|
+
readonly name: "contact.get";
|
|
2085
|
+
readonly description: "Get a single contact by its ID or email address.";
|
|
2086
|
+
readonly inputSchema: {
|
|
2087
|
+
readonly type: "object";
|
|
2088
|
+
readonly properties: {
|
|
2089
|
+
readonly publicationId: {
|
|
2090
|
+
readonly type: "string";
|
|
2091
|
+
};
|
|
2092
|
+
readonly idOrEmail: {
|
|
2093
|
+
readonly type: "string";
|
|
2094
|
+
readonly description: "Contact ID or email address.";
|
|
2095
|
+
};
|
|
2096
|
+
};
|
|
2097
|
+
readonly required: readonly ["publicationId", "idOrEmail"];
|
|
2098
|
+
};
|
|
2099
|
+
}, {
|
|
2100
|
+
readonly name: "contact.delete";
|
|
2101
|
+
readonly description: "Permanently delete a contact by its ID or email address.";
|
|
2102
|
+
readonly inputSchema: {
|
|
2103
|
+
readonly type: "object";
|
|
2104
|
+
readonly properties: {
|
|
2105
|
+
readonly publicationId: {
|
|
2106
|
+
readonly type: "string";
|
|
2107
|
+
};
|
|
2108
|
+
readonly idOrEmail: {
|
|
2109
|
+
readonly type: "string";
|
|
2110
|
+
readonly description: "Contact ID or email address.";
|
|
2111
|
+
};
|
|
2112
|
+
};
|
|
2113
|
+
readonly required: readonly ["publicationId", "idOrEmail"];
|
|
2114
|
+
};
|
|
2115
|
+
}, {
|
|
2116
|
+
readonly name: "contact.get_properties";
|
|
2117
|
+
readonly description: "Read a contact's custom property values.";
|
|
2118
|
+
readonly inputSchema: {
|
|
2119
|
+
readonly type: "object";
|
|
2120
|
+
readonly properties: {
|
|
2121
|
+
readonly publicationId: {
|
|
2122
|
+
readonly type: "string";
|
|
2123
|
+
};
|
|
2124
|
+
readonly contactId: {
|
|
2125
|
+
readonly type: "string";
|
|
2126
|
+
};
|
|
2127
|
+
};
|
|
2128
|
+
readonly required: readonly ["publicationId", "contactId"];
|
|
2129
|
+
};
|
|
2130
|
+
}, {
|
|
2131
|
+
readonly name: "contact.set_properties";
|
|
2132
|
+
readonly description: "Set a contact's custom property values. Each value references a property by propertyId (from contact_property.list/create).";
|
|
2133
|
+
readonly inputSchema: {
|
|
2134
|
+
readonly type: "object";
|
|
2135
|
+
readonly properties: {
|
|
2136
|
+
readonly publicationId: {
|
|
2137
|
+
readonly type: "string";
|
|
2138
|
+
};
|
|
2139
|
+
readonly contactId: {
|
|
2140
|
+
readonly type: "string";
|
|
2141
|
+
};
|
|
2142
|
+
readonly values: {
|
|
2143
|
+
readonly type: "array";
|
|
2144
|
+
readonly items: {
|
|
2145
|
+
readonly type: "object";
|
|
2146
|
+
readonly properties: {
|
|
2147
|
+
readonly propertyId: {
|
|
2148
|
+
readonly type: "string";
|
|
2149
|
+
};
|
|
2150
|
+
readonly value: {
|
|
2151
|
+
readonly type: "string";
|
|
2152
|
+
};
|
|
2153
|
+
};
|
|
2154
|
+
readonly required: readonly ["propertyId", "value"];
|
|
2155
|
+
};
|
|
2156
|
+
};
|
|
2157
|
+
};
|
|
2158
|
+
readonly required: readonly ["publicationId", "contactId", "values"];
|
|
2159
|
+
};
|
|
2160
|
+
}, {
|
|
2161
|
+
readonly name: "tag.create";
|
|
2162
|
+
readonly description: "Create a tag definition. NOTE: tags cannot yet be assigned to individual contacts via the API — this manages tag definitions only.";
|
|
2163
|
+
readonly inputSchema: {
|
|
2164
|
+
readonly type: "object";
|
|
2165
|
+
readonly properties: {
|
|
2166
|
+
readonly publicationId: {
|
|
2167
|
+
readonly type: "string";
|
|
2168
|
+
};
|
|
2169
|
+
readonly name: {
|
|
2170
|
+
readonly type: "string";
|
|
2171
|
+
};
|
|
2172
|
+
readonly default_subscription: {
|
|
2173
|
+
readonly type: "string";
|
|
2174
|
+
readonly enum: readonly ["opt_in", "opt_out"];
|
|
2175
|
+
};
|
|
2176
|
+
readonly description: {
|
|
2177
|
+
readonly type: "string";
|
|
2178
|
+
};
|
|
2179
|
+
readonly visibility: {
|
|
2180
|
+
readonly type: "string";
|
|
2181
|
+
readonly enum: readonly ["public", "private"];
|
|
2182
|
+
};
|
|
2183
|
+
};
|
|
2184
|
+
readonly required: readonly ["publicationId", "name", "default_subscription"];
|
|
2185
|
+
};
|
|
2186
|
+
}, {
|
|
2187
|
+
readonly name: "tag.list";
|
|
2188
|
+
readonly description: "List tag definitions for a publication.";
|
|
2189
|
+
readonly inputSchema: {
|
|
2190
|
+
readonly type: "object";
|
|
2191
|
+
readonly properties: {
|
|
2192
|
+
readonly publicationId: {
|
|
2193
|
+
readonly type: "string";
|
|
2194
|
+
};
|
|
2195
|
+
readonly limit: {
|
|
2196
|
+
readonly type: "number";
|
|
2197
|
+
readonly description: "Max results (1-100, default 20).";
|
|
2198
|
+
};
|
|
2199
|
+
};
|
|
2200
|
+
readonly required: readonly ["publicationId"];
|
|
2201
|
+
};
|
|
2202
|
+
}, {
|
|
2203
|
+
readonly name: "tag.update";
|
|
2204
|
+
readonly description: "Update a tag definition's name, description, default subscription, or visibility.";
|
|
2205
|
+
readonly inputSchema: {
|
|
2206
|
+
readonly type: "object";
|
|
2207
|
+
readonly properties: {
|
|
2208
|
+
readonly publicationId: {
|
|
2209
|
+
readonly type: "string";
|
|
2210
|
+
};
|
|
2211
|
+
readonly tagId: {
|
|
2212
|
+
readonly type: "string";
|
|
2213
|
+
};
|
|
2214
|
+
readonly name: {
|
|
2215
|
+
readonly type: "string";
|
|
2216
|
+
};
|
|
2217
|
+
readonly description: {
|
|
2218
|
+
readonly type: "string";
|
|
2219
|
+
};
|
|
2220
|
+
readonly default_subscription: {
|
|
2221
|
+
readonly type: "string";
|
|
2222
|
+
readonly enum: readonly ["opt_in", "opt_out"];
|
|
2223
|
+
};
|
|
2224
|
+
readonly visibility: {
|
|
2225
|
+
readonly type: "string";
|
|
2226
|
+
readonly enum: readonly ["public", "private"];
|
|
2227
|
+
};
|
|
2228
|
+
};
|
|
2229
|
+
readonly required: readonly ["publicationId", "tagId"];
|
|
2230
|
+
};
|
|
2231
|
+
}, {
|
|
2232
|
+
readonly name: "tag.delete";
|
|
2233
|
+
readonly description: "Delete a tag definition.";
|
|
2234
|
+
readonly inputSchema: {
|
|
2235
|
+
readonly type: "object";
|
|
2236
|
+
readonly properties: {
|
|
2237
|
+
readonly publicationId: {
|
|
2238
|
+
readonly type: "string";
|
|
2239
|
+
};
|
|
2240
|
+
readonly tagId: {
|
|
2241
|
+
readonly type: "string";
|
|
2242
|
+
};
|
|
2243
|
+
};
|
|
2244
|
+
readonly required: readonly ["publicationId", "tagId"];
|
|
2245
|
+
};
|
|
2246
|
+
}, {
|
|
2247
|
+
readonly name: "api_key.create";
|
|
2248
|
+
readonly description: "Create an API key (PAT). Requires the calling token to hold settings:write AND every scope the new key would grant. The token value is returned ONCE — store it securely. 'full_access' grants all scopes; 'sending_access' grants issue read/write/send only.";
|
|
2249
|
+
readonly inputSchema: {
|
|
2250
|
+
readonly type: "object";
|
|
2251
|
+
readonly properties: {
|
|
2252
|
+
readonly name: {
|
|
2253
|
+
readonly type: "string";
|
|
2254
|
+
readonly description: "Human label for the key (max 50 chars).";
|
|
2255
|
+
};
|
|
2256
|
+
readonly permission: {
|
|
2257
|
+
readonly type: "string";
|
|
2258
|
+
readonly enum: readonly ["full_access", "sending_access"];
|
|
2259
|
+
readonly description: "Defaults to full_access.";
|
|
2260
|
+
};
|
|
2261
|
+
readonly domain_id: {
|
|
2262
|
+
readonly type: "string";
|
|
2263
|
+
readonly description: "Optional publication scope for sending_access.";
|
|
2264
|
+
};
|
|
2265
|
+
};
|
|
2266
|
+
readonly required: readonly ["name"];
|
|
2267
|
+
};
|
|
2268
|
+
}, {
|
|
2269
|
+
readonly name: "api_key.list";
|
|
2270
|
+
readonly description: "List the team's API keys (token values are never returned).";
|
|
2271
|
+
readonly inputSchema: {
|
|
2272
|
+
readonly type: "object";
|
|
2273
|
+
readonly properties: {};
|
|
2274
|
+
};
|
|
2275
|
+
}, {
|
|
2276
|
+
readonly name: "api_key.revoke";
|
|
2277
|
+
readonly description: "Revoke (delete) an API key by its ID.";
|
|
2278
|
+
readonly inputSchema: {
|
|
2279
|
+
readonly type: "object";
|
|
2280
|
+
readonly properties: {
|
|
2281
|
+
readonly keyId: {
|
|
2282
|
+
readonly type: "string";
|
|
2283
|
+
};
|
|
2284
|
+
};
|
|
2285
|
+
readonly required: readonly ["keyId"];
|
|
2286
|
+
};
|
|
2287
|
+
}];
|
|
2288
|
+
declare const MCP_RESOURCES: readonly [{
|
|
2289
|
+
readonly uri: "publication://current/brand-guidelines";
|
|
2290
|
+
readonly name: "Brand Guidelines";
|
|
2291
|
+
readonly description: "Publication writing style and visual preferences";
|
|
2292
|
+
readonly mimeType: "application/json";
|
|
2293
|
+
}, {
|
|
2294
|
+
readonly uri: "mailtea://capabilities";
|
|
2295
|
+
readonly name: "Mailtea MCP Capabilities";
|
|
2296
|
+
readonly description: "Tool and endpoint capabilities for this MCP runtime";
|
|
2297
|
+
readonly mimeType: "application/json";
|
|
2298
|
+
}, {
|
|
2299
|
+
readonly uri: "analytics://current/latest-summary";
|
|
2300
|
+
readonly name: "Latest Analytics Summary";
|
|
2301
|
+
readonly description: "Most recent newsletter engagement snapshot";
|
|
2302
|
+
readonly mimeType: "application/json";
|
|
2303
|
+
}];
|
|
2304
|
+
declare const MCP_PROMPTS: readonly [{
|
|
2305
|
+
readonly name: "newsletter.draft_from_brief";
|
|
2306
|
+
readonly description: "Create a newsletter draft from a short brief";
|
|
2307
|
+
}, {
|
|
2308
|
+
readonly name: "newsletter.subject_line_pack";
|
|
2309
|
+
readonly description: "Generate subject line variants";
|
|
2310
|
+
}];
|
|
2311
|
+
declare function handleMcpRequest(request: JsonRpcRequest, options?: McpRuntimeOptions): Promise<JsonRpcResponse>;
|
|
2312
|
+
|
|
2313
|
+
export { type JsonRpcId, type JsonRpcRequest, type JsonRpcResponse, MCP_PROMPTS, MCP_RESOURCES, MCP_TOOLS, type McpRuntimeOptions, handleMcpRequest };
|