@speakai/mcp-server 1.0.1 → 1.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +53 -52
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -135,8 +135,9 @@ speakClient.interceptors.response.use(
|
|
|
135
135
|
(response) => response,
|
|
136
136
|
async (error) => {
|
|
137
137
|
const originalRequest = error.config;
|
|
138
|
-
|
|
139
|
-
|
|
138
|
+
const retryCount = originalRequest._retryCount ?? 0;
|
|
139
|
+
if (error.response?.status === 401 && retryCount < 2) {
|
|
140
|
+
originalRequest._retryCount = retryCount + 1;
|
|
140
141
|
tokenExpiresAt = 0;
|
|
141
142
|
await ensureAuthenticated();
|
|
142
143
|
originalRequest.headers["x-speakai-key"] = API_KEY;
|
|
@@ -176,7 +177,7 @@ function register(server2, client) {
|
|
|
176
177
|
"Get a pre-signed S3 URL for direct media file upload. Use this before uploading a file directly to Speak AI storage.",
|
|
177
178
|
{
|
|
178
179
|
isVideo: import_zod.z.boolean().describe("Set true for video files, false for audio files"),
|
|
179
|
-
filename: import_zod.z.string().describe("Original filename including extension"),
|
|
180
|
+
filename: import_zod.z.string().min(1).describe("Original filename including extension"),
|
|
180
181
|
mimeType: import_zod.z.string().describe('MIME type of the file, e.g. "audio/mp4" or "video/mp4"')
|
|
181
182
|
},
|
|
182
183
|
async ({ isVideo, filename, mimeType }) => {
|
|
@@ -201,7 +202,7 @@ function register(server2, client) {
|
|
|
201
202
|
"upload_media",
|
|
202
203
|
"Upload a media file to Speak AI by providing a publicly accessible URL. Speak AI will fetch and process the file asynchronously.",
|
|
203
204
|
{
|
|
204
|
-
name: import_zod.z.string().describe("Display name for the media file"),
|
|
205
|
+
name: import_zod.z.string().min(1).describe("Display name for the media file"),
|
|
205
206
|
url: import_zod.z.string().describe("Publicly accessible URL of the media file (or pre-signed S3 URL)"),
|
|
206
207
|
mediaType: import_zod.z.enum(["audio", "video"]).describe('Type of media: "audio" or "video"'),
|
|
207
208
|
description: import_zod.z.string().optional().describe("Description of the media file"),
|
|
@@ -211,8 +212,8 @@ function register(server2, client) {
|
|
|
211
212
|
callbackUrl: import_zod.z.string().optional().describe("Webhook callback URL for this specific upload"),
|
|
212
213
|
fields: import_zod.z.array(
|
|
213
214
|
import_zod.z.object({
|
|
214
|
-
id: import_zod.z.string().describe("Custom field ID"),
|
|
215
|
-
value: import_zod.z.string().describe("Custom field value")
|
|
215
|
+
id: import_zod.z.string().min(1).describe("Custom field ID"),
|
|
216
|
+
value: import_zod.z.string().min(1).describe("Custom field value")
|
|
216
217
|
})
|
|
217
218
|
).optional().describe("Custom field values to attach to the media")
|
|
218
219
|
},
|
|
@@ -267,7 +268,7 @@ function register(server2, client) {
|
|
|
267
268
|
"get_media_insights",
|
|
268
269
|
"Retrieve AI-generated insights for a media file, including topics, sentiment, action items, and summaries.",
|
|
269
270
|
{
|
|
270
|
-
mediaId: import_zod.z.string().describe("Unique identifier of the media file")
|
|
271
|
+
mediaId: import_zod.z.string().min(1).describe("Unique identifier of the media file")
|
|
271
272
|
},
|
|
272
273
|
async ({ mediaId }) => {
|
|
273
274
|
try {
|
|
@@ -289,7 +290,7 @@ function register(server2, client) {
|
|
|
289
290
|
"get_transcript",
|
|
290
291
|
"Retrieve the full transcript for a media file, including speaker labels and timestamps.",
|
|
291
292
|
{
|
|
292
|
-
mediaId: import_zod.z.string().describe("Unique identifier of the media file")
|
|
293
|
+
mediaId: import_zod.z.string().min(1).describe("Unique identifier of the media file")
|
|
293
294
|
},
|
|
294
295
|
async ({ mediaId }) => {
|
|
295
296
|
try {
|
|
@@ -311,11 +312,11 @@ function register(server2, client) {
|
|
|
311
312
|
"update_transcript_speakers",
|
|
312
313
|
"Update or rename speaker labels in a media transcript.",
|
|
313
314
|
{
|
|
314
|
-
mediaId: import_zod.z.string().describe("Unique identifier of the media file"),
|
|
315
|
+
mediaId: import_zod.z.string().min(1).describe("Unique identifier of the media file"),
|
|
315
316
|
speakers: import_zod.z.array(
|
|
316
317
|
import_zod.z.object({
|
|
317
|
-
id: import_zod.z.string().describe("Speaker identifier from the transcript"),
|
|
318
|
-
name: import_zod.z.string().describe("Display name to assign to the speaker")
|
|
318
|
+
id: import_zod.z.string().min(1).describe("Speaker identifier from the transcript"),
|
|
319
|
+
name: import_zod.z.string().min(1).describe("Display name to assign to the speaker")
|
|
319
320
|
})
|
|
320
321
|
).describe("Array of speaker ID to name mappings")
|
|
321
322
|
},
|
|
@@ -342,7 +343,7 @@ function register(server2, client) {
|
|
|
342
343
|
"get_media_status",
|
|
343
344
|
"Check the processing status of a media file (e.g. pending, transcribing, completed, failed).",
|
|
344
345
|
{
|
|
345
|
-
mediaId: import_zod.z.string().describe("Unique identifier of the media file")
|
|
346
|
+
mediaId: import_zod.z.string().min(1).describe("Unique identifier of the media file")
|
|
346
347
|
},
|
|
347
348
|
async ({ mediaId }) => {
|
|
348
349
|
try {
|
|
@@ -364,7 +365,7 @@ function register(server2, client) {
|
|
|
364
365
|
"update_media_metadata",
|
|
365
366
|
"Update metadata fields (name, description, tags, status) for an existing media file.",
|
|
366
367
|
{
|
|
367
|
-
mediaId: import_zod.z.string().describe("Unique identifier of the media file"),
|
|
368
|
+
mediaId: import_zod.z.string().min(1).describe("Unique identifier of the media file"),
|
|
368
369
|
name: import_zod.z.string().optional().describe("New display name for the media"),
|
|
369
370
|
description: import_zod.z.string().optional().describe("Description or notes for the media"),
|
|
370
371
|
folderId: import_zod.z.string().optional().describe("Move media to this folder ID"),
|
|
@@ -393,7 +394,7 @@ function register(server2, client) {
|
|
|
393
394
|
"delete_media",
|
|
394
395
|
"Permanently delete a media file and all associated transcripts and insights.",
|
|
395
396
|
{
|
|
396
|
-
mediaId: import_zod.z.string().describe("Unique identifier of the media file to delete")
|
|
397
|
+
mediaId: import_zod.z.string().min(1).describe("Unique identifier of the media file to delete")
|
|
397
398
|
},
|
|
398
399
|
async ({ mediaId }) => {
|
|
399
400
|
try {
|
|
@@ -425,7 +426,7 @@ function register2(server2, client) {
|
|
|
425
426
|
"create_text_note",
|
|
426
427
|
"Create a new text note in Speak AI for analysis. The content will be analyzed for insights, topics, and sentiment.",
|
|
427
428
|
{
|
|
428
|
-
name: import_zod2.z.string().describe("Title/name for the text note"),
|
|
429
|
+
name: import_zod2.z.string().min(1).describe("Title/name for the text note"),
|
|
429
430
|
text: import_zod2.z.string().optional().describe("Full text content to analyze"),
|
|
430
431
|
description: import_zod2.z.string().optional().describe("Description for the text note"),
|
|
431
432
|
folderId: import_zod2.z.string().optional().describe("ID of the folder to place the note in"),
|
|
@@ -433,8 +434,8 @@ function register2(server2, client) {
|
|
|
433
434
|
callbackUrl: import_zod2.z.string().optional().describe("Webhook callback URL for completion notification"),
|
|
434
435
|
fields: import_zod2.z.array(
|
|
435
436
|
import_zod2.z.object({
|
|
436
|
-
id: import_zod2.z.string().describe("Custom field ID"),
|
|
437
|
-
value: import_zod2.z.string().describe("Custom field value")
|
|
437
|
+
id: import_zod2.z.string().min(1).describe("Custom field ID"),
|
|
438
|
+
value: import_zod2.z.string().min(1).describe("Custom field value")
|
|
438
439
|
})
|
|
439
440
|
).optional().describe("Custom field values to attach to the text note")
|
|
440
441
|
},
|
|
@@ -458,7 +459,7 @@ function register2(server2, client) {
|
|
|
458
459
|
"get_text_insight",
|
|
459
460
|
"Retrieve AI-generated insights for a text note, including topics, sentiment, summaries, and action items.",
|
|
460
461
|
{
|
|
461
|
-
mediaId: import_zod2.z.string().describe("Unique identifier of the text note")
|
|
462
|
+
mediaId: import_zod2.z.string().min(1).describe("Unique identifier of the text note")
|
|
462
463
|
},
|
|
463
464
|
async ({ mediaId }) => {
|
|
464
465
|
try {
|
|
@@ -502,7 +503,7 @@ function register2(server2, client) {
|
|
|
502
503
|
"update_text_note",
|
|
503
504
|
"Update an existing text note's name, content, or metadata. Updating text content will trigger re-analysis.",
|
|
504
505
|
{
|
|
505
|
-
mediaId: import_zod2.z.string().describe("Unique identifier of the text note"),
|
|
506
|
+
mediaId: import_zod2.z.string().min(1).describe("Unique identifier of the text note"),
|
|
506
507
|
name: import_zod2.z.string().optional().describe("New name for the text note"),
|
|
507
508
|
text: import_zod2.z.string().optional().describe("New text content (will trigger re-analysis)"),
|
|
508
509
|
description: import_zod2.z.string().optional().describe("Updated description"),
|
|
@@ -542,7 +543,7 @@ function register3(server2, client) {
|
|
|
542
543
|
"export_media",
|
|
543
544
|
"Export a media file's transcript or insights in various formats (pdf, docx, srt, vtt, txt, csv, md).",
|
|
544
545
|
{
|
|
545
|
-
mediaId: import_zod3.z.string().describe("Unique identifier of the media file"),
|
|
546
|
+
mediaId: import_zod3.z.string().min(1).describe("Unique identifier of the media file"),
|
|
546
547
|
fileType: import_zod3.z.enum(["pdf", "docx", "srt", "vtt", "txt", "csv", "md"]).describe("Desired export format"),
|
|
547
548
|
isSpeakerNames: import_zod3.z.boolean().optional().describe("Include speaker names in export"),
|
|
548
549
|
isSpeakerEmail: import_zod3.z.boolean().optional().describe("Include speaker emails in export"),
|
|
@@ -638,7 +639,7 @@ function register4(server2, client) {
|
|
|
638
639
|
"get_folder_views",
|
|
639
640
|
"Retrieve all saved views for a specific folder.",
|
|
640
641
|
{
|
|
641
|
-
folderId: import_zod4.z.string().describe("Unique identifier of the folder")
|
|
642
|
+
folderId: import_zod4.z.string().min(1).describe("Unique identifier of the folder")
|
|
642
643
|
},
|
|
643
644
|
async ({ folderId }) => {
|
|
644
645
|
try {
|
|
@@ -660,7 +661,7 @@ function register4(server2, client) {
|
|
|
660
661
|
"create_folder_view",
|
|
661
662
|
"Create a new saved view for a folder with custom filters and display settings.",
|
|
662
663
|
{
|
|
663
|
-
folderId: import_zod4.z.string().describe("Unique identifier of the folder"),
|
|
664
|
+
folderId: import_zod4.z.string().min(1).describe("Unique identifier of the folder"),
|
|
664
665
|
name: import_zod4.z.string().optional().describe("Display name for the view"),
|
|
665
666
|
filters: import_zod4.z.record(import_zod4.z.unknown()).optional().describe("Filter configuration object")
|
|
666
667
|
},
|
|
@@ -687,8 +688,8 @@ function register4(server2, client) {
|
|
|
687
688
|
"update_folder_view",
|
|
688
689
|
"Update an existing saved view's name, filters, or display settings.",
|
|
689
690
|
{
|
|
690
|
-
folderId: import_zod4.z.string().describe("Unique identifier of the folder"),
|
|
691
|
-
viewId: import_zod4.z.string().describe("Unique identifier of the view to update"),
|
|
691
|
+
folderId: import_zod4.z.string().min(1).describe("Unique identifier of the folder"),
|
|
692
|
+
viewId: import_zod4.z.string().min(1).describe("Unique identifier of the view to update"),
|
|
692
693
|
name: import_zod4.z.string().optional().describe("New display name for the view"),
|
|
693
694
|
filters: import_zod4.z.record(import_zod4.z.unknown()).optional().describe("Updated filter configuration")
|
|
694
695
|
},
|
|
@@ -715,7 +716,7 @@ function register4(server2, client) {
|
|
|
715
716
|
"clone_folder_view",
|
|
716
717
|
"Duplicate an existing folder view.",
|
|
717
718
|
{
|
|
718
|
-
viewId: import_zod4.z.string().describe("Unique identifier of the view to clone")
|
|
719
|
+
viewId: import_zod4.z.string().min(1).describe("Unique identifier of the view to clone")
|
|
719
720
|
},
|
|
720
721
|
async (body) => {
|
|
721
722
|
try {
|
|
@@ -761,7 +762,7 @@ function register4(server2, client) {
|
|
|
761
762
|
"get_folder_info",
|
|
762
763
|
"Get detailed information about a specific folder including its contents.",
|
|
763
764
|
{
|
|
764
|
-
folderId: import_zod4.z.string().describe("Unique identifier of the folder")
|
|
765
|
+
folderId: import_zod4.z.string().min(1).describe("Unique identifier of the folder")
|
|
765
766
|
},
|
|
766
767
|
async ({ folderId }) => {
|
|
767
768
|
try {
|
|
@@ -783,7 +784,7 @@ function register4(server2, client) {
|
|
|
783
784
|
"create_folder",
|
|
784
785
|
"Create a new folder in the workspace.",
|
|
785
786
|
{
|
|
786
|
-
name: import_zod4.z.string().describe("Display name for the new folder"),
|
|
787
|
+
name: import_zod4.z.string().min(1).describe("Display name for the new folder"),
|
|
787
788
|
parentFolderId: import_zod4.z.string().optional().describe("ID of the parent folder for nesting")
|
|
788
789
|
},
|
|
789
790
|
async (body) => {
|
|
@@ -806,7 +807,7 @@ function register4(server2, client) {
|
|
|
806
807
|
"clone_folder",
|
|
807
808
|
"Duplicate an existing folder and all of its contents.",
|
|
808
809
|
{
|
|
809
|
-
folderId: import_zod4.z.string().describe("ID of the folder to clone")
|
|
810
|
+
folderId: import_zod4.z.string().min(1).describe("ID of the folder to clone")
|
|
810
811
|
},
|
|
811
812
|
async (body) => {
|
|
812
813
|
try {
|
|
@@ -828,7 +829,7 @@ function register4(server2, client) {
|
|
|
828
829
|
"update_folder",
|
|
829
830
|
"Update a folder's name or other properties.",
|
|
830
831
|
{
|
|
831
|
-
folderId: import_zod4.z.string().describe("Unique identifier of the folder"),
|
|
832
|
+
folderId: import_zod4.z.string().min(1).describe("Unique identifier of the folder"),
|
|
832
833
|
name: import_zod4.z.string().optional().describe("New display name for the folder")
|
|
833
834
|
},
|
|
834
835
|
async ({ folderId, ...body }) => {
|
|
@@ -851,7 +852,7 @@ function register4(server2, client) {
|
|
|
851
852
|
"delete_folder",
|
|
852
853
|
"Permanently delete a folder. Media within the folder will be moved, not deleted.",
|
|
853
854
|
{
|
|
854
|
-
folderId: import_zod4.z.string().describe("Unique identifier of the folder to delete")
|
|
855
|
+
folderId: import_zod4.z.string().min(1).describe("Unique identifier of the folder to delete")
|
|
855
856
|
},
|
|
856
857
|
async ({ folderId }) => {
|
|
857
858
|
try {
|
|
@@ -883,7 +884,7 @@ function register5(server2, client) {
|
|
|
883
884
|
"check_recorder_status",
|
|
884
885
|
"Check whether a recorder/survey is active and accepting submissions.",
|
|
885
886
|
{
|
|
886
|
-
token: import_zod5.z.string().describe("Unique token identifying the recorder")
|
|
887
|
+
token: import_zod5.z.string().min(1).describe("Unique token identifying the recorder")
|
|
887
888
|
},
|
|
888
889
|
async ({ token }) => {
|
|
889
890
|
try {
|
|
@@ -947,7 +948,7 @@ function register5(server2, client) {
|
|
|
947
948
|
"clone_recorder",
|
|
948
949
|
"Duplicate an existing recorder including all its settings and questions.",
|
|
949
950
|
{
|
|
950
|
-
recorderId: import_zod5.z.string().describe("ID of the recorder to clone")
|
|
951
|
+
recorderId: import_zod5.z.string().min(1).describe("ID of the recorder to clone")
|
|
951
952
|
},
|
|
952
953
|
async (body) => {
|
|
953
954
|
try {
|
|
@@ -967,7 +968,7 @@ function register5(server2, client) {
|
|
|
967
968
|
"get_recorder_info",
|
|
968
969
|
"Get detailed information about a specific recorder including its settings and questions.",
|
|
969
970
|
{
|
|
970
|
-
recorderId: import_zod5.z.string().describe("Unique identifier of the recorder")
|
|
971
|
+
recorderId: import_zod5.z.string().min(1).describe("Unique identifier of the recorder")
|
|
971
972
|
},
|
|
972
973
|
async ({ recorderId }) => {
|
|
973
974
|
try {
|
|
@@ -987,7 +988,7 @@ function register5(server2, client) {
|
|
|
987
988
|
"get_recorder_recordings",
|
|
988
989
|
"List all submissions/recordings collected by a specific recorder.",
|
|
989
990
|
{
|
|
990
|
-
recorderId: import_zod5.z.string().describe("Unique identifier of the recorder")
|
|
991
|
+
recorderId: import_zod5.z.string().min(1).describe("Unique identifier of the recorder")
|
|
991
992
|
},
|
|
992
993
|
async ({ recorderId }) => {
|
|
993
994
|
try {
|
|
@@ -1007,7 +1008,7 @@ function register5(server2, client) {
|
|
|
1007
1008
|
"generate_recorder_url",
|
|
1008
1009
|
"Generate a shareable public URL for a recorder/survey.",
|
|
1009
1010
|
{
|
|
1010
|
-
recorderId: import_zod5.z.string().describe("Unique identifier of the recorder")
|
|
1011
|
+
recorderId: import_zod5.z.string().min(1).describe("Unique identifier of the recorder")
|
|
1011
1012
|
},
|
|
1012
1013
|
async ({ recorderId }) => {
|
|
1013
1014
|
try {
|
|
@@ -1027,7 +1028,7 @@ function register5(server2, client) {
|
|
|
1027
1028
|
"update_recorder_settings",
|
|
1028
1029
|
"Update configuration settings for a recorder (branding, permissions, etc.).",
|
|
1029
1030
|
{
|
|
1030
|
-
recorderId: import_zod5.z.string().describe("Unique identifier of the recorder"),
|
|
1031
|
+
recorderId: import_zod5.z.string().min(1).describe("Unique identifier of the recorder"),
|
|
1031
1032
|
settings: import_zod5.z.record(import_zod5.z.unknown()).describe("Settings object with updated values")
|
|
1032
1033
|
},
|
|
1033
1034
|
async ({ recorderId, settings }) => {
|
|
@@ -1048,7 +1049,7 @@ function register5(server2, client) {
|
|
|
1048
1049
|
"update_recorder_questions",
|
|
1049
1050
|
"Update the survey questions for a recorder.",
|
|
1050
1051
|
{
|
|
1051
|
-
recorderId: import_zod5.z.string().describe("Unique identifier of the recorder"),
|
|
1052
|
+
recorderId: import_zod5.z.string().min(1).describe("Unique identifier of the recorder"),
|
|
1052
1053
|
questions: import_zod5.z.array(import_zod5.z.record(import_zod5.z.unknown())).describe("Array of question objects")
|
|
1053
1054
|
},
|
|
1054
1055
|
async ({ recorderId, questions }) => {
|
|
@@ -1069,7 +1070,7 @@ function register5(server2, client) {
|
|
|
1069
1070
|
"delete_recorder",
|
|
1070
1071
|
"Permanently delete a recorder/survey. Existing recordings are preserved.",
|
|
1071
1072
|
{
|
|
1072
|
-
recorderId: import_zod5.z.string().describe("Unique identifier of the recorder to delete")
|
|
1073
|
+
recorderId: import_zod5.z.string().min(1).describe("Unique identifier of the recorder to delete")
|
|
1073
1074
|
},
|
|
1074
1075
|
async ({ recorderId }) => {
|
|
1075
1076
|
try {
|
|
@@ -1099,7 +1100,7 @@ function register6(server2, client) {
|
|
|
1099
1100
|
"create_embed",
|
|
1100
1101
|
"Create an embeddable player/transcript widget for a media file.",
|
|
1101
1102
|
{
|
|
1102
|
-
mediaId: import_zod6.z.string().describe("Unique identifier of the media file"),
|
|
1103
|
+
mediaId: import_zod6.z.string().min(1).describe("Unique identifier of the media file"),
|
|
1103
1104
|
settings: import_zod6.z.record(import_zod6.z.unknown()).optional().describe("Embed configuration settings")
|
|
1104
1105
|
},
|
|
1105
1106
|
async (body) => {
|
|
@@ -1120,7 +1121,7 @@ function register6(server2, client) {
|
|
|
1120
1121
|
"update_embed",
|
|
1121
1122
|
"Update settings for an existing embed widget.",
|
|
1122
1123
|
{
|
|
1123
|
-
embedId: import_zod6.z.string().describe("Unique identifier of the embed"),
|
|
1124
|
+
embedId: import_zod6.z.string().min(1).describe("Unique identifier of the embed"),
|
|
1124
1125
|
settings: import_zod6.z.record(import_zod6.z.unknown()).optional().describe("Updated embed settings")
|
|
1125
1126
|
},
|
|
1126
1127
|
async ({ embedId, ...body }) => {
|
|
@@ -1141,7 +1142,7 @@ function register6(server2, client) {
|
|
|
1141
1142
|
"check_embed",
|
|
1142
1143
|
"Check if an embed exists for a media file and retrieve its configuration.",
|
|
1143
1144
|
{
|
|
1144
|
-
mediaId: import_zod6.z.string().describe("Unique identifier of the media file")
|
|
1145
|
+
mediaId: import_zod6.z.string().min(1).describe("Unique identifier of the media file")
|
|
1145
1146
|
},
|
|
1146
1147
|
async ({ mediaId }) => {
|
|
1147
1148
|
try {
|
|
@@ -1161,7 +1162,7 @@ function register6(server2, client) {
|
|
|
1161
1162
|
"get_embed_iframe_url",
|
|
1162
1163
|
"Get the iframe URL for embedding a media player/transcript on a webpage.",
|
|
1163
1164
|
{
|
|
1164
|
-
mediaId: import_zod6.z.string().describe("Unique identifier of the media file")
|
|
1165
|
+
mediaId: import_zod6.z.string().min(1).describe("Unique identifier of the media file")
|
|
1165
1166
|
},
|
|
1166
1167
|
async ({ mediaId }) => {
|
|
1167
1168
|
try {
|
|
@@ -1211,8 +1212,8 @@ function register7(server2, client) {
|
|
|
1211
1212
|
"ask_magic_prompt",
|
|
1212
1213
|
"Ask an AI-powered question about a specific media file using Speak AI's Magic Prompt.",
|
|
1213
1214
|
{
|
|
1214
|
-
mediaId: import_zod7.z.string().describe("Unique identifier of the media file to query"),
|
|
1215
|
-
prompt: import_zod7.z.string().describe("The question or prompt to ask about the media"),
|
|
1215
|
+
mediaId: import_zod7.z.string().min(1).describe("Unique identifier of the media file to query"),
|
|
1216
|
+
prompt: import_zod7.z.string().min(1).describe("The question or prompt to ask about the media"),
|
|
1216
1217
|
promptId: import_zod7.z.string().optional().describe("ID of a predefined prompt template to use")
|
|
1217
1218
|
},
|
|
1218
1219
|
async (body) => {
|
|
@@ -1268,7 +1269,7 @@ function register8(server2, client) {
|
|
|
1268
1269
|
"schedule_meeting_event",
|
|
1269
1270
|
"Schedule the Speak AI meeting assistant to join and record an upcoming meeting.",
|
|
1270
1271
|
{
|
|
1271
|
-
meetingUrl: import_zod8.z.string().describe("URL of the meeting to join"),
|
|
1272
|
+
meetingUrl: import_zod8.z.string().min(1).describe("URL of the meeting to join"),
|
|
1272
1273
|
title: import_zod8.z.string().optional().describe("Display title for the event"),
|
|
1273
1274
|
scheduledAt: import_zod8.z.string().optional().describe("ISO 8601 datetime for when the meeting starts")
|
|
1274
1275
|
},
|
|
@@ -1368,7 +1369,7 @@ function register9(server2, client) {
|
|
|
1368
1369
|
"create_field",
|
|
1369
1370
|
"Create a new custom field for categorizing and tagging media.",
|
|
1370
1371
|
{
|
|
1371
|
-
name: import_zod9.z.string().describe("Display name for the field"),
|
|
1372
|
+
name: import_zod9.z.string().min(1).describe("Display name for the field"),
|
|
1372
1373
|
type: import_zod9.z.string().optional().describe("Field type (text, number, select, etc.)"),
|
|
1373
1374
|
options: import_zod9.z.array(import_zod9.z.string()).optional().describe("Options for select/multi-select field types")
|
|
1374
1375
|
},
|
|
@@ -1410,7 +1411,7 @@ function register9(server2, client) {
|
|
|
1410
1411
|
"update_field",
|
|
1411
1412
|
"Update a specific custom field by ID.",
|
|
1412
1413
|
{
|
|
1413
|
-
id: import_zod9.z.string().describe("Unique identifier of the field"),
|
|
1414
|
+
id: import_zod9.z.string().min(1).describe("Unique identifier of the field"),
|
|
1414
1415
|
name: import_zod9.z.string().optional().describe("New display name"),
|
|
1415
1416
|
type: import_zod9.z.string().optional().describe("New field type"),
|
|
1416
1417
|
options: import_zod9.z.array(import_zod9.z.string()).optional().describe("Updated options for select types")
|
|
@@ -1461,7 +1462,7 @@ function register10(server2, client) {
|
|
|
1461
1462
|
"get_automation",
|
|
1462
1463
|
"Get detailed information about a specific automation rule.",
|
|
1463
1464
|
{
|
|
1464
|
-
automationId: import_zod10.z.string().describe("Unique identifier of the automation")
|
|
1465
|
+
automationId: import_zod10.z.string().min(1).describe("Unique identifier of the automation")
|
|
1465
1466
|
},
|
|
1466
1467
|
async ({ automationId }) => {
|
|
1467
1468
|
try {
|
|
@@ -1504,7 +1505,7 @@ function register10(server2, client) {
|
|
|
1504
1505
|
"update_automation",
|
|
1505
1506
|
"Update an existing automation rule's configuration.",
|
|
1506
1507
|
{
|
|
1507
|
-
automationId: import_zod10.z.string().describe("Unique identifier of the automation"),
|
|
1508
|
+
automationId: import_zod10.z.string().min(1).describe("Unique identifier of the automation"),
|
|
1508
1509
|
name: import_zod10.z.string().optional().describe("New display name"),
|
|
1509
1510
|
trigger: import_zod10.z.record(import_zod10.z.unknown()).optional().describe("Updated trigger configuration"),
|
|
1510
1511
|
actions: import_zod10.z.array(import_zod10.z.record(import_zod10.z.unknown())).optional().describe("Updated action configurations"),
|
|
@@ -1531,7 +1532,7 @@ function register10(server2, client) {
|
|
|
1531
1532
|
"toggle_automation_status",
|
|
1532
1533
|
"Enable or disable an automation rule.",
|
|
1533
1534
|
{
|
|
1534
|
-
automationId: import_zod10.z.string().describe("Unique identifier of the automation"),
|
|
1535
|
+
automationId: import_zod10.z.string().min(1).describe("Unique identifier of the automation"),
|
|
1535
1536
|
enabled: import_zod10.z.boolean().describe("Set to true to enable, false to disable")
|
|
1536
1537
|
},
|
|
1537
1538
|
async ({ automationId, enabled }) => {
|
|
@@ -1604,7 +1605,7 @@ function register11(server2, client) {
|
|
|
1604
1605
|
"update_webhook",
|
|
1605
1606
|
"Update an existing webhook's URL or subscribed events.",
|
|
1606
1607
|
{
|
|
1607
|
-
webhookId: import_zod11.z.string().describe("Unique identifier of the webhook"),
|
|
1608
|
+
webhookId: import_zod11.z.string().min(1).describe("Unique identifier of the webhook"),
|
|
1608
1609
|
url: import_zod11.z.string().url().optional().describe("New endpoint URL"),
|
|
1609
1610
|
events: import_zod11.z.array(import_zod11.z.string()).optional().describe("Updated array of event types")
|
|
1610
1611
|
},
|
|
@@ -1626,7 +1627,7 @@ function register11(server2, client) {
|
|
|
1626
1627
|
"delete_webhook",
|
|
1627
1628
|
"Delete a webhook and stop receiving notifications at its endpoint.",
|
|
1628
1629
|
{
|
|
1629
|
-
webhookId: import_zod11.z.string().describe("Unique identifier of the webhook to delete")
|
|
1630
|
+
webhookId: import_zod11.z.string().min(1).describe("Unique identifier of the webhook to delete")
|
|
1630
1631
|
},
|
|
1631
1632
|
async ({ webhookId }) => {
|
|
1632
1633
|
try {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@speakai/mcp-server",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.3",
|
|
4
4
|
"description": "Official Speak AI MCP Server — connect Claude and other AI assistants to Speak AI's transcription, insights, and media management API",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|