@ssemble/mcp-server 1.0.5 → 1.0.6

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 CHANGED
@@ -9,6 +9,7 @@ Works with **Claude Desktop**, **Claude Code**, **Cursor**, **VS Code**, **Winds
9
9
  This MCP server lets AI assistants create short-form video clips from YouTube videos using Ssemble's AI clipping engine. The AI can:
10
10
 
11
11
  - **Create shorts** from YouTube URLs or uploaded files
12
+ - **Webhook callbacks** — get notified when processing completes (works with n8n, Zapier, Make)
12
13
  - **Browse assets** — caption templates, background music, gameplay overlays, meme hooks
13
14
  - **Track processing** — check progress and retrieve completed clips
14
15
  - **Manage requests** — list history, get results, delete old requests
@@ -91,12 +92,39 @@ Add to your MCP settings:
91
92
 
92
93
  ## How Processing Works
93
94
 
94
- Video processing takes 5-30 minutes. The workflow is:
95
+ Video processing takes 5-30 minutes. Two workflows available:
95
96
 
97
+ ### Option A: Polling (manual check)
96
98
  1. `create_short` — submits the job and returns instantly with a request ID
97
99
  2. `get_status` — check progress anytime (queued → processing → completed)
98
100
  3. `get_shorts` — retrieve the generated clips when done
99
101
 
102
+ ### Option B: Webhook (automated)
103
+ 1. `create_short` with `webhookUrl` — submits the job with a callback URL
104
+ 2. When processing completes or fails, the API sends an HTTP POST to your URL with the results
105
+ 3. No polling needed — ideal for n8n, Zapier, Make, and custom backend integrations
106
+
107
+ Webhook payload example:
108
+ ```json
109
+ {
110
+ "event": "shorts.completed",
111
+ "requestId": "507f1f77bcf86cd799439011",
112
+ "status": "completed",
113
+ "timestamp": "2026-03-30T12:00:00.000Z",
114
+ "data": {
115
+ "shorts": [
116
+ {
117
+ "id": "...",
118
+ "title": "AI-Generated Title",
119
+ "video_url": "https://...",
120
+ "duration": 45,
121
+ "viral_score": 8.5
122
+ }
123
+ ]
124
+ }
125
+ }
126
+ ```
127
+
100
128
  ## Usage Examples
101
129
 
102
130
  **Create shorts from a YouTube video:**
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@ssemble/mcp-server",
3
- "version": "1.0.5",
3
+ "version": "1.0.6",
4
4
  "mcpName": "com.ssemble/mcp-server",
5
- "description": "MCP server for Ssemble AI Clipping — create viral short-form videos from any AI assistant",
5
+ "description": "MCP server for Ssemble AI Clipping — create viral short-form videos from any AI assistant. Webhook callbacks for n8n, Zapier, and Make automation.",
6
6
  "type": "module",
7
7
  "bin": {
8
8
  "ssemble-mcp": "./src/transports/stdio.js"
package/server.json CHANGED
@@ -2,8 +2,8 @@
2
2
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
3
3
  "name": "com.ssemble/mcp-server",
4
4
  "title": "Ssemble AI Clipping",
5
- "description": "Create AI-powered short-form video clips from YouTube videos using any AI assistant.",
6
- "version": "1.0.5",
5
+ "description": "Create AI-powered short-form video clips from YouTube videos using any AI assistant. Webhook callbacks for n8n, Zapier, and Make automation.",
6
+ "version": "1.0.6",
7
7
  "websiteUrl": "https://www.ssemble.com",
8
8
  "repository": {
9
9
  "url": "https://github.com/ssembleinc/ssemble-mcp-server",
@@ -14,7 +14,7 @@
14
14
  "registryType": "npm",
15
15
  "registryBaseUrl": "https://registry.npmjs.org",
16
16
  "identifier": "@ssemble/mcp-server",
17
- "version": "1.0.5",
17
+ "version": "1.0.6",
18
18
  "transport": {
19
19
  "type": "stdio"
20
20
  },
@@ -28,6 +28,7 @@ const schema = {
28
28
  musicName: z.string().describe('Exact track name from list_music (case-sensitive)').optional(),
29
29
  musicVolume: z.number().min(0).max(100).default(10).describe('Music volume 0-100').optional(),
30
30
  layout: z.enum(['auto', 'fill', 'fit', 'square']).default('auto').describe('Video framing layout').optional(),
31
+ webhookUrl: z.string().url().describe('Optional webhook URL for completion/failure notifications. Receives a POST with results when processing finishes.').optional(),
31
32
  };
32
33
 
33
34
  export function registerCreateShort(server, client) {