Ssemble AI Clipping

Create AI-powered short-form video clips from YouTube videos. Supports webhook callbacks.

Should I use this

Quality & Safety

A
Description quality
98%
Schema completeness
86%
Naming quality
100%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~2,772Tokens (tool definitions)
~2.8 KBTypical response size
Significant attention impact (2.17% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "mcp-server": {
      "command": "npx",
      "args": [
        "@ssemble/mcp-server"
      ]
    }
  }
}

Runnable packages

npm@ssemble/mcp-server1.1.14stdio

Remote endpoints

https://mcp.ssemble.com/mcpstreamable-http

What it can do

Tool inventory

Tools (10)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟡create_short(url, fileUrl, start, end, preferredLength, ...)

Create AI-generated short-form video clips from a YouTube video or uploaded file. Returns a request ID instantly. Processing takes 5-30 minutes. Costs 1 credit.

Input Schema

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "YouTube video URL"
    },
    "fileUrl": {
      "type": "string",
      "format": "uri",
      "description": "Public video file URL (alternative to url)"
    },
    "start": {
      "type": "number",
      "minimum": 0,
      "description": "Start time in seconds (>= 0)"
    },
    "end": {
      "type": "number",
      "minimum": 1,
      "description": "End time in seconds (> start, max 1200s window)"
    },
    "preferredLength": {
      "type": "string",
      "enum": [
        "under30sec",
        "under60sec",
        "under90sec",
        "under3min",
        "under5min",
        "under10min"
      ],
      "default": "under60sec",
      "description": "Target clip duration"
    },
    "maxShorts": {
      "type": "integer",
      "minimum": 1,
      "maximum": 12,
      "description": "Maximum number of shorts to create (1-12). Keeps the highest-scoring clips and never pads, so short videos may return fewer. Omit to get up to 12."
    },
    "language": {
      "type": "string",
      "enum": [
        "en",
        "es",
        "fr",
        "de",
        "it",
        "pt",
        "ru",
        "ja",
        "ko",
        "zh",
        "ar",
        "hi",
        "tr",
        "pl",
        "nl",
        "sv",
        "no",
        "da",
        "fi",
        "cs",
        "vi",
        "id",
        "fa",
        "uk",
        "af",
        "ca",
        "et",
        "fo",
        "gl",
        "is",
        "ms",
        "sq",
        "sw",
        "tl",
        "ro",
        "sk",
        "hr",
        "sl",
        "hu",
        "lv",
        "lt",
        "bs",
        "az",
        "bg",
        "mk",
        "sr",
        "mt",
        "el",
        "ne",
        "mr",
        "ka",
        "hy",
        "ur",
        "he"
      ],
      "default": "en",
      "description": "Spoken language (ISO 639-1)"
    },
    "captionLanguage": {
      "type": "string",
      "enum": [
        "en",
        "es",
        "fr",
        "de",
        "it",
        "pt",
        "ru",
        "ja",
        "ko",
        "zh",
        "ar",
        "hi",
        "tr",
        "pl",
        "nl",
        "sv",
        "no",
        "da",
        "fi",
        "cs",
        "vi",
        "id",
        "fa",
        "uk",
        "af",
        "ca",
        "et",
        "fo",
        "gl",
        "is",
        "ms",
        "sq",
        "sw",
        "tl",
        "ro",
        "sk",
        "hr",
        "sl",
        "hu",
        "lv",
        "lt",
        "bs",
        "az",
        "bg",
        "mk",
        "sr",
        "mt",
        "el",
        "ne",
        "mr",
        "ka",
        "hy",
        "ur",
        "he"
      ],
      "description": "Caption language if different from spoken"
    },
    "templateId": {
      "type": "string",
      "pattern": "^[0-9a-fA-F]{24}$",
      "description": "Caption template ID from list_templates (24-char hex)"
    },
    "noClipping": {
      "type": "boolean",
      "default": false,
      "description": "Skip AI clipping, process entire range as one clip"
    },
    "hookTitle": {
      "type": "boolean",
      "default": false,
      "description": "Add animated hook title at start"
    },
    "memeHook": {
      "type": "boolean",
      "default": false,
      "description": "Prepend a meme hook clip (2-5s attention grabber)"
    },
    "memeHookName": {
      "type": "string",
      "description": "Exact meme hook name from list_meme_hooks (case-sensitive)"
    },
    "gameVideo": {
      "type": "boolean",
      "default": false,
      "description": "Add split-screen gameplay overlay"
    },
    "gameVideoName": {
      "type": "string",
      "description": "Exact game video name from list_game_videos (case-sensitive)"
    },
    "ctaEnabled": {
      "type": "boolean",
      "default": false,
      "description": "Show call-to-action text overlay"
    },
    "ctaText": {
      "type": "string",
      "maxLength": 200,
      "description": "CTA text (max 200 chars, required when ctaEnabled=true)"
    },
    "music": {
      "type": "boolean",
      "default": false,
      "description": "Add background music"
    },
    "musicName": {
      "type": "string",
      "description": "Exact track name from list_music (case-sensitive)"
    },
    "musicNames": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "minItems": 1,
      "maxItems": 20,
      "description": "Several exact track names from list_music (case-sensitive); each short uses one of them at random. Use instead of musicName. Requires music=true."
    },
    "musicVolume": {
      "type": "number",
      "minimum": 0,
      "maximum": 100,
      "default": 10,
      "description": "Music volume 0-100"
    },
    "layout": {
      "type": "string",
      "enum": [
        "auto",
        "fill",
        "fit",
        "square"
      ],
      "default": "auto",
      "description": "Video framing layout"
    },
    "captionsEnabled": {
      "type": "boolean",
      "default": true,
      "description": "Burn captions into the clips (default true). Set false for sources that already have captions."
    },
    "outroEnabled": {
      "type": "boolean",
      "default": false,
      "description": "Append an end-screen outro card (bell animation + \"Please subscribe\" text) after each clip. Default false."
    },
    "outroText": {
      "type": "string",
      "maxLength": 80,
      "description": "Custom outro text (max 80 chars). Omit for the localized default (\"Please subscribe\"). Requires outroEnabled=true."
    },
    "outroImageUrl": {
      "type": "string",
      "format": "uri",
      "description": "Public image URL for a custom outro card instead of the stock bell card. Requires outroEnabled=true."
    },
    "outroSeconds": {
      "type": "integer",
      "minimum": 1,
      "maximum": 3,
      "default": 2,
      "description": "Outro duration in seconds (1-3, default 2). Requires outroEnabled=true."
    },
    "outroSting": {
      "type": "boolean",
      "default": true,
      "description": "Play the short bell sound on the outro (default true). Requires outroEnabled=true."
    },
    "outroHandle": {
      "type": "string",
      "maxLength": 40,
      "description": "Channel handle shown on the outro card, e.g. \"@mychannel\" (max 40 chars). Requires outroEnabled=true."
    },
    "blurBackground": {
      "type": "boolean",
      "description": "Background behind the clip when the source does not fill the 9:16 canvas (mainly layout=fit): true = blurred copy of the video, false = solid color (backgroundColor, else the account's saved color, else the template color). Omit to use the account's saved editor preference (default: blurred)."
    },
    "backgroundColor": {
      "type": "string",
      "pattern": "^#[0-9a-fA-F]{6}$",
      "description": "Solid background color as hex, e.g. \"#000000\". Only with blurBackground=false. Omit to use the account's saved background color, else the template color."
    },
    "includeSourceLink": {
      "type": "boolean",
      "description": "When these clips are later scheduled from the Ssemble web app (Share / Calendar), end each caption with \"Source: <link>\": customSourceLink if set, else the original YouTube video. Omit to use the account's last scheduler choice. Does not change the clips."
    },
    "customSourceLink": {
      "type": "string",
      "maxLength": 300,
      "description": "Own link for the Source line, e.g. \"mysite.com/videos\" (https:// added if missing, max 300 chars). Requires includeSourceLink=true."
    },
    "webhookUrl": {
      "type": "string",
      "format": "uri",
      "description": "Optional webhook URL for completion/failure notifications. Receives a POST with results when processing finishes."
    }
  },
  "required": [
    "start",
    "end"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_status(requestId)

Check processing status of a short creation request. Provide a request ID, or omit it to see your recent requests and pick one.

Input Schema

{
  "type": "object",
  "properties": {
    "requestId": {
      "type": "string",
      "pattern": "^[0-9a-fA-F]{24}$",
      "description": "The request ID from create_short (24-char hex). Omit to see your recent requests."
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_shorts(requestId)

Retrieve all generated short clips for a completed request. Provide a request ID, or omit it to see your recent requests and pick one.

Input Schema

{
  "type": "object",
  "properties": {
    "requestId": {
      "type": "string",
      "pattern": "^[0-9a-fA-F]{24}$",
      "description": "The request ID from create_short (24-char hex). Omit to see your recent requests."
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢list_requests(page, limit, status, sortBy, sortOrder)

List all short creation requests with optional status filtering, pagination, and sorting.

Input Schema

{
  "type": "object",
  "properties": {
    "page": {
      "type": "number",
      "minimum": 1,
      "default": 1,
      "description": "Page number"
    },
    "limit": {
      "type": "number",
      "minimum": 1,
      "maximum": 100,
      "default": 20,
      "description": "Items per page (1-100)"
    },
    "status": {
      "type": "string",
      "enum": [
        "queued",
        "processing",
        "completed",
        "failed",
        "cancelled"
      ],
      "description": "Filter by status"
    },
    "sortBy": {
      "type": "string",
      "enum": [
        "createdAt",
        "updatedAt"
      ],
      "default": "createdAt",
      "description": "Sort field"
    },
    "sortOrder": {
      "type": "string",
      "enum": [
        "asc",
        "desc"
      ],
      "default": "desc",
      "description": "Sort direction"
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴delete_request(requestId)

Permanently delete a short creation request and all generated videos. Credits are NOT refunded. This action is irreversible.

Input Schema

{
  "type": "object",
  "properties": {
    "requestId": {
      "type": "string",
      "pattern": "^[0-9a-fA-F]{24}$",
      "description": "The request ID to delete (24-char hex). This action is irreversible and credits are NOT refunded."
    }
  },
  "required": [
    "requestId"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢list_templates

List all available caption style templates with preview thumbnails, names, and IDs. Use the templateId when creating shorts.

Input Schema

{
  "type": "object",
  "properties": {}
}
🟢list_music(page, limit)

List available background music tracks with names and durations. Use the exact musicName when creating shorts.

Input Schema

{
  "type": "object",
  "properties": {
    "page": {
      "type": "number",
      "minimum": 1,
      "default": 1,
      "description": "Page number"
    },
    "limit": {
      "type": "number",
      "minimum": 1,
      "maximum": 100,
      "default": 20,
      "description": "Items per page (1-100)"
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢list_game_videos(page, limit)

List available gameplay videos for split-screen overlays (content top, game bottom). Use the exact gameVideoName when creating shorts.

Input Schema

{
  "type": "object",
  "properties": {
    "page": {
      "type": "number",
      "minimum": 1,
      "default": 1,
      "description": "Page number"
    },
    "limit": {
      "type": "number",
      "minimum": 1,
      "maximum": 100,
      "default": 20,
      "description": "Items per page (1-100)"
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢list_meme_hooks(page, limit)

List available meme hook clips (2-5 second attention grabbers prepended to shorts). Use the exact memeHookName when creating shorts.

Input Schema

{
  "type": "object",
  "properties": {
    "page": {
      "type": "number",
      "minimum": 1,
      "default": 1,
      "description": "Page number"
    },
    "limit": {
      "type": "number",
      "minimum": 1,
      "maximum": 100,
      "default": 20,
      "description": "Items per page (1-100)"
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡list_posts(status, platform, source, requestId, shortId, ...)

List your scheduled and published social posts (YouTube, Instagram, TikTok) with status, public URL and publish time. Filter by status, platform, request, clip or time window; use date=published with since to find posts that went live after a given moment.

Input Schema

{
  "type": "object",
  "properties": {
    "status": {
      "type": "string",
      "enum": [
        "scheduled",
        "processing",
        "published",
        "failed",
        "canceled"
      ],
      "description": "Filter by post status: scheduled (queued), processing (uploading or waiting for the platform), published (live, has url), failed (has error), canceled"
    },
    "platform": {
      "type": "string",
      "enum": [
        "youtube",
        "instagram",
        "tiktok"
      ],
      "description": "Filter by platform"
    },
    "source": {
      "type": "string",
      "enum": [
        "manual",
        "automation"
      ],
      "description": "manual = scheduled by hand from the shorts list; automation = posted by channel automation"
    },
    "requestId": {
      "type": "string",
      "pattern": "^[0-9a-fA-F]{24}$",
      "description": "Only posts made from this request (24-char hex request ID)"
    },
    "shortId": {
      "type": "string",
      "format": "uuid",
      "description": "Only posts made from this clip (short ID)"
    },
    "since": {
      "type": "string",
      "format": "date-time",
      "description": "ISO 8601 lower bound. Applies to scheduledAt, or to publishedAt when date=published"
    },
    "until": {
      "type": "string",
      "format": "date-time",
      "description": "ISO 8601 upper bound (same field as since)"
    },
    "date": {
      "type": "string",
      "enum": [
        "scheduled",
        "published"
      ],
      "description": "Which timestamp since/until filter and sort by. Use \"published\" with since to poll for newly live posts."
    },
    "page": {
      "type": "integer",
      "minimum": 1,
      "default": 1,
      "description": "Page number"
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "default": 50,
      "description": "Items per page (1-100)"
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded10 tools
verifiedversion not recorded10 tools
verifiedversion not recorded10 tools
verifiedversion not recorded9 tools
verifiedversion not recorded9 tools
verifiedversion not recorded9 tools