@snokam/mcp-api 0.23.2 → 0.24.1

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.
@@ -1326,6 +1326,45 @@
1326
1326
  }
1327
1327
  }
1328
1328
  },
1329
+ "from": {
1330
+ "type": "object",
1331
+ "properties": {
1332
+ "address": {
1333
+ "type": "string",
1334
+ "nullable": true
1335
+ },
1336
+ "name": {
1337
+ "type": "string",
1338
+ "nullable": true
1339
+ },
1340
+ "original": {
1341
+ "type": "string",
1342
+ "nullable": true
1343
+ }
1344
+ }
1345
+ },
1346
+ "headers": {
1347
+ "type": "object",
1348
+ "properties": {
1349
+ "date": {
1350
+ "type": "string",
1351
+ "nullable": true
1352
+ },
1353
+ "in_reply_to": {
1354
+ "type": "string",
1355
+ "nullable": true
1356
+ },
1357
+ "reply_to": {
1358
+ "type": "object",
1359
+ "nullable": true
1360
+ },
1361
+ "message_id": {
1362
+ "type": "string",
1363
+ "nullable": true
1364
+ }
1365
+ },
1366
+ "nullable": true
1367
+ },
1329
1368
  "inputChatMessage": {
1330
1369
  "type": "object",
1331
1370
  "properties": {
@@ -1340,6 +1379,43 @@
1340
1379
  }
1341
1380
  }
1342
1381
  },
1382
+ "parameters": {
1383
+ "type": "object",
1384
+ "properties": {
1385
+ "type": {
1386
+ "type": "string",
1387
+ "nullable": true
1388
+ },
1389
+ "properties": {
1390
+ "type": "object",
1391
+ "additionalProperties": {
1392
+ "$ref": "#/components/schemas/property"
1393
+ },
1394
+ "nullable": true
1395
+ },
1396
+ "required": {
1397
+ "type": "array",
1398
+ "items": {
1399
+ "type": "string"
1400
+ },
1401
+ "nullable": true
1402
+ }
1403
+ },
1404
+ "nullable": true
1405
+ },
1406
+ "property": {
1407
+ "type": "object",
1408
+ "properties": {
1409
+ "type": {
1410
+ "type": "string",
1411
+ "nullable": true
1412
+ },
1413
+ "description": {
1414
+ "type": "string",
1415
+ "nullable": true
1416
+ }
1417
+ }
1418
+ },
1343
1419
  "realtimeAgentsDto": {
1344
1420
  "type": "object",
1345
1421
  "properties": {
@@ -1502,6 +1578,23 @@
1502
1578
  }
1503
1579
  }
1504
1580
  },
1581
+ "to": {
1582
+ "type": "object",
1583
+ "properties": {
1584
+ "address": {
1585
+ "type": "string",
1586
+ "nullable": true
1587
+ },
1588
+ "name": {
1589
+ "type": "string",
1590
+ "nullable": true
1591
+ },
1592
+ "original": {
1593
+ "type": "string",
1594
+ "nullable": true
1595
+ }
1596
+ }
1597
+ },
1505
1598
  "tool": {
1506
1599
  "type": "object",
1507
1600
  "properties": {
@@ -0,0 +1,559 @@
1
+ {
2
+ "openapi": "3.0.1",
3
+ "info": {
4
+ "title": "Notifications API",
5
+ "description": "Notification hub service",
6
+ "version": "v1.0.0"
7
+ },
8
+ "servers": [
9
+ {
10
+ "url": "https://notifications.api.test.snokam.no"
11
+ }
12
+ ],
13
+ "paths": {
14
+ "/v1.0/protected/alerts/azure": {
15
+ "post": {
16
+ "tags": [
17
+ "Alerts"
18
+ ],
19
+ "summary": "Receive Azure Monitor alert",
20
+ "description": "Action Group webhook receiver for the Azure Monitor common alert schema. Posts a formatted summary to the channel given by ?channel= (defaults to #feed-errors).",
21
+ "operationId": "ReceiveAzureAlert",
22
+ "parameters": [
23
+ {
24
+ "name": "channel",
25
+ "in": "query",
26
+ "schema": {
27
+ "type": "string"
28
+ },
29
+ "x-ms-summary": "Slack channel including the leading # (defaults to #feed-errors)"
30
+ }
31
+ ],
32
+ "responses": {
33
+ "200": {
34
+ "description": "Alert relayed",
35
+ "x-ms-summary": "Success"
36
+ }
37
+ },
38
+ "security": [
39
+ {
40
+ "Implicit": [
41
+ "api://246713d5-cd48-4a00-84dd-7fc7ae290a62/.default"
42
+ ]
43
+ }
44
+ ]
45
+ }
46
+ },
47
+ "/v1.0/protected/newsletter/trigger": {
48
+ "post": {
49
+ "tags": [
50
+ "Notifications"
51
+ ],
52
+ "summary": "Trigger newsletter summarizer",
53
+ "description": "Manually runs the weekly knowledge-summarizer cron (iterates active newsletterSeries, posts Olaf's summary to the configured Slack channel per series, and emails subscribers for series with sendEmails=true).",
54
+ "operationId": "TriggerKnowledgeSummarizer",
55
+ "responses": {
56
+ "200": {
57
+ "description": "Summarizer run completed",
58
+ "x-ms-summary": "Success"
59
+ }
60
+ },
61
+ "security": [
62
+ {
63
+ "Implicit": [
64
+ "api://246713d5-cd48-4a00-84dd-7fc7ae290a62/.default"
65
+ ]
66
+ }
67
+ ]
68
+ }
69
+ },
70
+ "/v1.0/protected/newsletter/debug": {
71
+ "post": {
72
+ "tags": [
73
+ "Notifications"
74
+ ],
75
+ "summary": "Preview newsletters by email",
76
+ "description": "Generates Olaf's summary for each active newsletterSeries and emails the rendered body (same composition the real cron uses) to the caller-supplied address. Skips Sanity persistence, Slack posts, and the 7-day dedup check — subscribers are never touched. Defaults to utvikling@snokam.no.",
77
+ "operationId": "DebugNewsletterEmail",
78
+ "parameters": [
79
+ {
80
+ "name": "to",
81
+ "in": "query",
82
+ "schema": {
83
+ "type": "string"
84
+ },
85
+ "x-ms-summary": "Recipient email (defaults to utvikling@snokam.no)"
86
+ }
87
+ ],
88
+ "responses": {
89
+ "200": {
90
+ "description": "Payload of Object",
91
+ "content": {
92
+ "application/json": {
93
+ "schema": {
94
+ "type": "object"
95
+ }
96
+ }
97
+ },
98
+ "x-ms-summary": "Preview sent"
99
+ }
100
+ },
101
+ "security": [
102
+ {
103
+ "Implicit": [
104
+ "api://246713d5-cd48-4a00-84dd-7fc7ae290a62/.default"
105
+ ]
106
+ }
107
+ ]
108
+ }
109
+ },
110
+ "/v1.0/protected/push/register": {
111
+ "post": {
112
+ "tags": [
113
+ "Push"
114
+ ],
115
+ "summary": "Register device for push notifications",
116
+ "description": "Creates or updates a device installation in Azure Notification Hub",
117
+ "operationId": "RegisterDevice",
118
+ "requestBody": {
119
+ "description": "Device registration data",
120
+ "content": {
121
+ "application/json": {
122
+ "schema": {
123
+ "$ref": "#/components/schemas/deviceInstallation"
124
+ }
125
+ }
126
+ },
127
+ "required": true
128
+ },
129
+ "responses": {
130
+ "200": {
131
+ "description": "Device registered successfully",
132
+ "x-ms-summary": "Success"
133
+ }
134
+ },
135
+ "security": [
136
+ {
137
+ "Implicit": [
138
+ "api://246713d5-cd48-4a00-84dd-7fc7ae290a62/.default"
139
+ ]
140
+ }
141
+ ]
142
+ }
143
+ },
144
+ "/v1.0/protected/push/register/{installationId}": {
145
+ "delete": {
146
+ "tags": [
147
+ "Push"
148
+ ],
149
+ "summary": "Unregister device from push notifications",
150
+ "description": "Removes a device installation from Azure Notification Hub",
151
+ "operationId": "UnregisterDevice",
152
+ "responses": {
153
+ "200": {
154
+ "description": "Device unregistered successfully",
155
+ "x-ms-summary": "Success"
156
+ }
157
+ },
158
+ "security": [
159
+ {
160
+ "Implicit": [
161
+ "api://246713d5-cd48-4a00-84dd-7fc7ae290a62/.default"
162
+ ]
163
+ }
164
+ ]
165
+ }
166
+ },
167
+ "/v1.0/protected/slack": {
168
+ "post": {
169
+ "tags": [
170
+ "Notifications"
171
+ ],
172
+ "summary": "Send Slack notification",
173
+ "description": "Queues a Slack message for delivery",
174
+ "operationId": "SendSlackNotification",
175
+ "requestBody": {
176
+ "description": "Slack notification to send",
177
+ "content": {
178
+ "application/json": {
179
+ "schema": {
180
+ "$ref": "#/components/schemas/sendSlackRequest"
181
+ }
182
+ }
183
+ },
184
+ "required": true
185
+ },
186
+ "responses": {
187
+ "200": {
188
+ "description": "Notification queued successfully",
189
+ "x-ms-summary": "Success"
190
+ }
191
+ },
192
+ "security": [
193
+ {
194
+ "Implicit": [
195
+ "api://246713d5-cd48-4a00-84dd-7fc7ae290a62/.default"
196
+ ]
197
+ }
198
+ ]
199
+ }
200
+ },
201
+ "/v1.0/protected/sms": {
202
+ "post": {
203
+ "tags": [
204
+ "Notifications"
205
+ ],
206
+ "summary": "Send SMS notification",
207
+ "description": "Queues an SMS message for delivery",
208
+ "operationId": "SendSmsNotification",
209
+ "requestBody": {
210
+ "description": "SMS notification to send",
211
+ "content": {
212
+ "application/json": {
213
+ "schema": {
214
+ "$ref": "#/components/schemas/sendSmsRequest"
215
+ }
216
+ }
217
+ },
218
+ "required": true
219
+ },
220
+ "responses": {
221
+ "200": {
222
+ "description": "Notification queued successfully",
223
+ "x-ms-summary": "Success"
224
+ }
225
+ },
226
+ "security": [
227
+ {
228
+ "Implicit": [
229
+ "api://246713d5-cd48-4a00-84dd-7fc7ae290a62/.default"
230
+ ]
231
+ }
232
+ ]
233
+ }
234
+ },
235
+ "/v1.0/protected/email": {
236
+ "post": {
237
+ "tags": [
238
+ "Notifications"
239
+ ],
240
+ "summary": "Send email notification",
241
+ "description": "Queues an email for delivery",
242
+ "operationId": "SendEmailNotification",
243
+ "requestBody": {
244
+ "description": "Email notification to send",
245
+ "content": {
246
+ "application/json": {
247
+ "schema": {
248
+ "$ref": "#/components/schemas/sendEmailRequest"
249
+ }
250
+ }
251
+ },
252
+ "required": true
253
+ },
254
+ "responses": {
255
+ "200": {
256
+ "description": "Notification queued successfully",
257
+ "x-ms-summary": "Success"
258
+ }
259
+ },
260
+ "security": [
261
+ {
262
+ "Implicit": [
263
+ "api://246713d5-cd48-4a00-84dd-7fc7ae290a62/.default"
264
+ ]
265
+ }
266
+ ]
267
+ }
268
+ },
269
+ "/v1.0/protected/push": {
270
+ "post": {
271
+ "tags": [
272
+ "Notifications"
273
+ ],
274
+ "summary": "Send push notification",
275
+ "description": "Queues a push notification for delivery",
276
+ "operationId": "SendPushNotification",
277
+ "requestBody": {
278
+ "description": "Push notification to send",
279
+ "content": {
280
+ "application/json": {
281
+ "schema": {
282
+ "$ref": "#/components/schemas/sendPushRequest"
283
+ }
284
+ }
285
+ },
286
+ "required": true
287
+ },
288
+ "responses": {
289
+ "200": {
290
+ "description": "Notification queued successfully",
291
+ "x-ms-summary": "Success"
292
+ }
293
+ },
294
+ "security": [
295
+ {
296
+ "Implicit": [
297
+ "api://246713d5-cd48-4a00-84dd-7fc7ae290a62/.default"
298
+ ]
299
+ }
300
+ ]
301
+ }
302
+ },
303
+ "/v1.0/protected/notify": {
304
+ "post": {
305
+ "tags": [
306
+ "Notifications"
307
+ ],
308
+ "summary": "Send notification",
309
+ "description": "Queues a notification for delivery to one or more channels (Slack, SMS, email)",
310
+ "operationId": "SendNotification",
311
+ "requestBody": {
312
+ "description": "Notification with one or more channels",
313
+ "content": {
314
+ "application/json": {
315
+ "schema": {
316
+ "$ref": "#/components/schemas/sendNotificationRequest"
317
+ }
318
+ }
319
+ },
320
+ "required": true
321
+ },
322
+ "responses": {
323
+ "200": {
324
+ "description": "Notification queued successfully",
325
+ "x-ms-summary": "Success"
326
+ }
327
+ },
328
+ "security": [
329
+ {
330
+ "Implicit": [
331
+ "api://246713d5-cd48-4a00-84dd-7fc7ae290a62/.default"
332
+ ]
333
+ }
334
+ ]
335
+ }
336
+ },
337
+ "/v1.0/protected/sprint-notification/trigger": {
338
+ "post": {
339
+ "tags": [
340
+ "Notifications"
341
+ ],
342
+ "summary": "Trigger weekly sprint summary",
343
+ "description": "Manually triggers the weekly sprint summary notification to Slack #general",
344
+ "operationId": "TriggerSprintNotification",
345
+ "responses": {
346
+ "200": {
347
+ "description": "Summary sent successfully",
348
+ "x-ms-summary": "Success"
349
+ }
350
+ },
351
+ "security": [
352
+ {
353
+ "Implicit": [
354
+ "api://246713d5-cd48-4a00-84dd-7fc7ae290a62/.default"
355
+ ]
356
+ }
357
+ ]
358
+ }
359
+ },
360
+ "/v1.0/protected/sprint-notification/debug": {
361
+ "get": {
362
+ "tags": [
363
+ "Notifications"
364
+ ],
365
+ "summary": "Debug friday summary",
366
+ "description": "Returns the full friday summary including ChatGPT output for debugging",
367
+ "operationId": "DebugSprintSummary",
368
+ "responses": {
369
+ "200": {
370
+ "description": "Payload of Object",
371
+ "content": {
372
+ "application/json": {
373
+ "schema": {
374
+ "type": "object"
375
+ }
376
+ }
377
+ },
378
+ "x-ms-summary": "Debug data"
379
+ }
380
+ },
381
+ "security": [
382
+ {
383
+ "Implicit": [
384
+ "api://246713d5-cd48-4a00-84dd-7fc7ae290a62/.default"
385
+ ]
386
+ }
387
+ ]
388
+ }
389
+ }
390
+ },
391
+ "components": {
392
+ "schemas": {
393
+ "deviceInstallation": {
394
+ "type": "object",
395
+ "properties": {
396
+ "installationId": {
397
+ "type": "string"
398
+ },
399
+ "platform": {
400
+ "type": "string"
401
+ },
402
+ "pushChannel": {
403
+ "type": "string"
404
+ },
405
+ "tags": {
406
+ "type": "array",
407
+ "items": {
408
+ "type": "string"
409
+ }
410
+ }
411
+ }
412
+ },
413
+ "sendEmailAttachmentRequest": {
414
+ "type": "object",
415
+ "properties": {
416
+ "content": {
417
+ "type": "string"
418
+ },
419
+ "filename": {
420
+ "type": "string"
421
+ },
422
+ "contentType": {
423
+ "type": "string"
424
+ }
425
+ }
426
+ },
427
+ "sendEmailRequest": {
428
+ "type": "object",
429
+ "properties": {
430
+ "receiver": {
431
+ "type": "string"
432
+ },
433
+ "receivers": {
434
+ "type": "array",
435
+ "items": {
436
+ "type": "string"
437
+ }
438
+ },
439
+ "title": {
440
+ "type": "string"
441
+ },
442
+ "body": {
443
+ "type": "string"
444
+ },
445
+ "htmlBody": {
446
+ "type": "string"
447
+ },
448
+ "sender": {
449
+ "type": "string"
450
+ },
451
+ "senderName": {
452
+ "type": "string"
453
+ },
454
+ "replyTo": {
455
+ "type": "string"
456
+ },
457
+ "attachments": {
458
+ "type": "array",
459
+ "items": {
460
+ "$ref": "#/components/schemas/sendEmailAttachmentRequest"
461
+ }
462
+ }
463
+ }
464
+ },
465
+ "sendNotificationRequest": {
466
+ "type": "object",
467
+ "properties": {
468
+ "slack": {
469
+ "$ref": "#/components/schemas/sendSlackRequest"
470
+ },
471
+ "sms": {
472
+ "$ref": "#/components/schemas/sendSmsRequest"
473
+ },
474
+ "email": {
475
+ "$ref": "#/components/schemas/sendEmailRequest"
476
+ },
477
+ "push": {
478
+ "$ref": "#/components/schemas/sendPushRequest"
479
+ }
480
+ }
481
+ },
482
+ "sendPushRequest": {
483
+ "type": "object",
484
+ "properties": {
485
+ "title": {
486
+ "type": "string"
487
+ },
488
+ "body": {
489
+ "type": "string"
490
+ },
491
+ "email": {
492
+ "type": "string"
493
+ },
494
+ "tags": {
495
+ "type": "array",
496
+ "items": {
497
+ "type": "string"
498
+ }
499
+ },
500
+ "data": {
501
+ "type": "object",
502
+ "additionalProperties": {
503
+ "type": "string"
504
+ }
505
+ }
506
+ }
507
+ },
508
+ "sendSlackRequest": {
509
+ "type": "object",
510
+ "properties": {
511
+ "channelId": {
512
+ "type": "string"
513
+ },
514
+ "message": {
515
+ "type": "string"
516
+ },
517
+ "blocksJson": {
518
+ "type": "string"
519
+ },
520
+ "attachmentsJson": {
521
+ "type": "string"
522
+ },
523
+ "iconEmoji": {
524
+ "type": "string"
525
+ },
526
+ "username": {
527
+ "type": "string"
528
+ }
529
+ }
530
+ },
531
+ "sendSmsRequest": {
532
+ "type": "object",
533
+ "properties": {
534
+ "phoneNumber": {
535
+ "type": "string"
536
+ },
537
+ "message": {
538
+ "type": "string"
539
+ }
540
+ }
541
+ }
542
+ },
543
+ "securitySchemes": {
544
+ "Implicit": {
545
+ "type": "oauth2",
546
+ "flows": {
547
+ "implicit": {
548
+ "authorizationUrl": "https://login.microsoftonline.com/a8533784-aa3c-403b-a61a-1533ecc6e3ed/oauth2/v2.0/authorize",
549
+ "tokenUrl": "https://login.microsoftonline.com/a8533784-aa3c-403b-a61a-1533ecc6e3ed/oauth2/v2.0/token",
550
+ "refreshUrl": "https://login.microsoftonline.com/a8533784-aa3c-403b-a61a-1533ecc6e3ed/oauth2/v2.0/token",
551
+ "scopes": {
552
+ "api://246713d5-cd48-4a00-84dd-7fc7ae290a62/.default": "Default function scope"
553
+ }
554
+ }
555
+ }
556
+ }
557
+ }
558
+ }
559
+ }