@speakai/mcp-server 1.11.0 → 1.12.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.
- package/README.md +2 -2
- package/dist/index.js +5 -5
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -402,9 +402,9 @@ SPEAK_API_KEY=your-key npx @speakai/mcp-server
|
|
|
402
402
|
| Tool | Description |
|
|
403
403
|
|---|---|
|
|
404
404
|
| `get_signed_upload_url` | Get a pre-signed S3 URL for direct file upload |
|
|
405
|
-
| `upload_media` | Upload media from a public URL
|
|
405
|
+
| `upload_media` | Upload media from a URL — a direct/public file URL or a social/video link (YouTube, Instagram, TikTok, X, Facebook, Reddit, SoundCloud, …) resolved automatically. |
|
|
406
406
|
| `upload_local_file` | Upload a local file directly from disk |
|
|
407
|
-
| `upload_and_analyze` | Upload media and return its `media_id` immediately. Poll `get_media_status` until `processed`, then call `get_media_insights` for AI summaries. |
|
|
407
|
+
| `upload_and_analyze` | Upload media from a URL (direct file or social/video link, resolved automatically) and return its `media_id` immediately. Poll `get_media_status` until `processed`, then call `get_media_insights` for AI summaries. |
|
|
408
408
|
| `list_media` | List and search media files with filters, pagination, and optional inline data (transcripts, speakers, keywords) via `include` param |
|
|
409
409
|
| `get_media_insights` | Get AI insights — topics, sentiment, summaries, action items |
|
|
410
410
|
| `get_transcript` | Get full transcript with speaker labels and timestamps |
|
package/dist/index.js
CHANGED
|
@@ -1208,10 +1208,10 @@ function register(server, client) {
|
|
|
1208
1208
|
registerSpeakTool(
|
|
1209
1209
|
server,
|
|
1210
1210
|
"upload_media",
|
|
1211
|
-
"Upload media from a
|
|
1211
|
+
"Upload media from a URL \u2014 a direct/public file URL, a pre-signed S3 URL, or a shareable social/video link (YouTube, Instagram, TikTok, X, Facebook, Reddit, SoundCloud, and similar) which Speak resolves to the underlying media automatically. Processing is asynchronous \u2014 after uploading, use get_media_status to poll until state is 'processed' (typically 1-3 minutes for audio under 60 min), then use get_transcript and get_media_insights to retrieve results. For a single call that handles everything, use upload_and_analyze instead. For local files, use upload_local_file. (Vimeo links are not yet supported.)",
|
|
1212
1212
|
{
|
|
1213
1213
|
name: import_zod2.z.string().min(1).describe("Display name for the media file"),
|
|
1214
|
-
url: import_zod2.z.string().describe("
|
|
1214
|
+
url: import_zod2.z.string().describe("Direct/public media file URL, pre-signed S3 URL, or a shareable social/video page link (e.g. an Instagram reel or TikTok URL) \u2014 page links are resolved to the underlying media server-side."),
|
|
1215
1215
|
mediaType: import_zod2.z.enum([MediaType.AUDIO, MediaType.VIDEO]).describe('Type of media: "audio" or "video"'),
|
|
1216
1216
|
description: import_zod2.z.string().optional().describe("Description of the media file"),
|
|
1217
1217
|
sourceLanguage: import_zod2.z.string().optional().describe('BCP-47 language code for transcription, e.g. "en-US" or "he-IL"'),
|
|
@@ -4214,9 +4214,9 @@ function register14(server, client) {
|
|
|
4214
4214
|
registerSpeakTool(
|
|
4215
4215
|
server,
|
|
4216
4216
|
"upload_and_analyze",
|
|
4217
|
-
"Upload media and
|
|
4217
|
+
"Upload and transcribe media from a URL \u2014 a direct/public file URL, OR a shareable social/video link (YouTube, Instagram, TikTok, X, Facebook, Reddit, SoundCloud, and similar), which Speak resolves to the underlying media automatically. Returns media_id immediately; after this returns, poll get_media_status until state is 'processed' (typically 1-3 min for under 60min audio), then call get_media_insights for AI summaries. This async pattern is required for remote MCP transports \u2014 long blocking calls die at proxy idle timeouts. (Vimeo links are not yet supported.)",
|
|
4218
4218
|
{
|
|
4219
|
-
url: import_zod15.z.string().describe("
|
|
4219
|
+
url: import_zod15.z.string().describe("Direct/public media file URL, or a shareable social/video page link (e.g. an Instagram reel, TikTok, YouTube, or X post URL) \u2014 page links are resolved to the underlying media server-side. Pass the URL the user gave you as-is."),
|
|
4220
4220
|
name: import_zod15.z.string().optional().describe("Display name for the media (defaults to filename from URL)"),
|
|
4221
4221
|
mediaType: import_zod15.z.enum([MediaType.AUDIO, MediaType.VIDEO]).optional().describe("Media type (default: audio)"),
|
|
4222
4222
|
sourceLanguage: import_zod15.z.string().optional().describe("BCP-47 language code (e.g., 'en-US', 'he-IL')"),
|
|
@@ -4540,7 +4540,7 @@ function registerPrompts(server) {
|
|
|
4540
4540
|
"analyze-meeting",
|
|
4541
4541
|
"Upload a meeting recording and get a full analysis \u2014 transcript, insights, action items, and key takeaways.",
|
|
4542
4542
|
{
|
|
4543
|
-
url: import_zod16.z.string().describe("URL of the meeting recording"),
|
|
4543
|
+
url: import_zod16.z.string().describe("URL of the meeting recording \u2014 a direct file link or a shareable social/video link (resolved automatically)"),
|
|
4544
4544
|
name: import_zod16.z.string().optional().describe("Meeting name (optional)")
|
|
4545
4545
|
},
|
|
4546
4546
|
async ({ url, name }) => ({
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@speakai/mcp-server",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.12.1",
|
|
4
4
|
"mcpName": "io.github.speakai/mcp-server",
|
|
5
5
|
"description": "Official Speak AI MCP Server — capture meetings, search thousands of recordings, run async voice and video surveys, create clips, and automate workflows from your AI assistant.",
|
|
6
6
|
"homepage": "https://mcp.speakai.co",
|