Create AI-powered short-form video clips from YouTube videos. Supports webhook callbacks.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
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.
End time in seconds (> start, max 1200s window)
Start time in seconds (>= 0)
YouTube video URL
Add background music
Video framing layout
CTA text (max 200 chars, required when ctaEnabled=true)
Public video file URL (alternative to url)
Spoken language (ISO 639-1)
Prepend a meme hook clip (2-5s attention grabber)
Add split-screen gameplay overlay
Add animated hook title at start
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.
Exact track name from list_music (case-sensitive)
Custom outro text (max 80 chars). Omit for the localized default ("Please subscribe"). Requires outroEnabled=true.
Show call-to-action text overlay
Skip AI clipping, process entire range as one clip
Play the short bell sound on the outro (default true). Requires outroEnabled=true.
Caption template ID from list_templates (24-char hex)
Optional webhook URL for completion/failure notifications. Receives a POST with results when processing finishes.
Music volume 0-100
Channel handle shown on the outro card, e.g. "@mychannel" (max 40 chars). Requires outroEnabled=true.
Exact meme hook name from list_meme_hooks (case-sensitive)
Append an end-screen outro card (bell animation + "Please subscribe" text) after each clip. Default false.
Outro duration in seconds (1-3, default 2). Requires outroEnabled=true.
Exact game video name from list_game_videos (case-sensitive)
Public image URL for a custom outro card instead of the stock bell card. Requires outroEnabled=true.
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).
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.
Caption language if different from spoken
Burn captions into the clips (default true). Set false for sources that already have captions.
Target clip duration
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
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.
| Argument | Type | Description |
|---|---|---|
| end* | number | End time in seconds (> start, max 1200s window) |
| url | string | YouTube video URL |
| music | boolean | Add background music |
| start* | number | Start time in seconds (>= 0) |
| layout | string | Video framing layout |
| ctaText | string | CTA text (max 200 chars, required when ctaEnabled=true) |
| fileUrl | string | Public video file URL (alternative to url) |
| language | string | Spoken language (ISO 639-1) |
| memeHook | boolean | Prepend a meme hook clip (2-5s attention grabber) |
| gameVideo | boolean | Add split-screen gameplay overlay |
| hookTitle | boolean | Add animated hook title at start |
| maxShorts | integer | 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. |
| musicName | string | Exact track name from list_music (case-sensitive) |
| outroText | string | Custom outro text (max 80 chars). Omit for the localized default ("Please subscribe"). Requires outroEnabled=true. |
| ctaEnabled | boolean | Show call-to-action text overlay |
| noClipping | boolean | Skip AI clipping, process entire range as one clip |
| outroSting | boolean | Play the short bell sound on the outro (default true). Requires outroEnabled=true. |
| templateId | string | Caption template ID from list_templates (24-char hex) |
| webhookUrl | string | Optional webhook URL for completion/failure notifications. Receives a POST with results when processing finishes. |
| musicVolume | number | Music volume 0-100 |
| outroHandle | string | Channel handle shown on the outro card, e.g. "@mychannel" (max 40 chars). Requires outroEnabled=true. |
| memeHookName | string | Exact meme hook name from list_meme_hooks (case-sensitive) |
| outroEnabled | boolean | Append an end-screen outro card (bell animation + "Please subscribe" text) after each clip. Default false. |
| outroSeconds | integer | Outro duration in seconds (1-3, default 2). Requires outroEnabled=true. |
| gameVideoName | string | Exact game video name from list_game_videos (case-sensitive) |
| outroImageUrl | string | Public image URL for a custom outro card instead of the stock bell card. Requires outroEnabled=true. |
| blurBackground | boolean | 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 | string | 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. |
| captionLanguage | string | Caption language if different from spoken |
| captionsEnabled | boolean | Burn captions into the clips (default true). Set false for sources that already have captions. |
| preferredLength | string | Target clip duration |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"start",
"end"
],
"properties": {
"end": {
"type": "number",
"minimum": 1,
"description": "End time in seconds (> start, max 1200s window)"
},
"url": {
"type": "string",
"description": "YouTube video URL"
},
"music": {
"type": "boolean",
"default": false,
"description": "Add background music"
},
"start": {
"type": "number",
"minimum": 0,
"description": "Start time in seconds (>= 0)"
},
"layout": {
"enum": [
"auto",
"fill",
"fit",
"square"
],
"type": "string",
"default": "auto",
"description": "Video framing layout"
},
"ctaText": {
"type": "string",
"maxLength": 200,
"description": "CTA text (max 200 chars, required when ctaEnabled=true)"
},
"fileUrl": {
"type": "string",
"format": "uri",
"description": "Public video file URL (alternative to url)"
},
"language": {
"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"
],
"type": "string",
"default": "en",
"description": "Spoken language (ISO 639-1)"
},
"memeHook": {
"type": "boolean",
"default": false,
"description": "Prepend a meme hook clip (2-5s attention grabber)"
},
"gameVideo": {
"type": "boolean",
"default": false,
"description": "Add split-screen gameplay overlay"
},
"hookTitle": {
"type": "boolean",
"default": false,
"description": "Add animated hook title at start"
},
"maxShorts": {
"type": "integer",
"maximum": 12,
"minimum": 1,
"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."
},
"musicName": {
"type": "string",
"description": "Exact track name from list_music (case-sensitive)"
},
"outroText": {
"type": "string",
"maxLength": 80,
"description": "Custom outro text (max 80 chars). Omit for the localized default (\"Please subscribe\"). Requires outroEnabled=true."
},
"ctaEnabled": {
"type": "boolean",
"default": false,
"description": "Show call-to-action text overlay"
},
"noClipping": {
"type": "boolean",
"default": false,
"description": "Skip AI clipping, process entire range as one clip"
},
"outroSting": {
"type": "boolean",
"default": true,
"description": "Play the short bell sound on the outro (default true). Requires outroEnabled=true."
},
"templateId": {
"type": "string",
"pattern": "^[0-9a-fA-F]{24}$",
"description": "Caption template ID from list_templates (24-char hex)"
},
"webhookUrl": {
"type": "string",
"format": "uri",
"description": "Optional webhook URL for completion/failure notifications. Receives a POST with results when processing finishes."
},
"musicVolume": {
"type": "number",
"default": 10,
"maximum": 100,
"minimum": 0,
"description": "Music volume 0-100"
},
"outroHandle": {
"type": "string",
"maxLength": 40,
"description": "Channel handle shown on the outro card, e.g. \"@mychannel\" (max 40 chars). Requires outroEnabled=true."
},
"memeHookName": {
"type": "string",
"description": "Exact meme hook name from list_meme_hooks (case-sensitive)"
},
"outroEnabled": {
"type": "boolean",
"default": false,
"description": "Append an end-screen outro card (bell animation + \"Please subscribe\" text) after each clip. Default false."
},
"outroSeconds": {
"type": "integer",
"default": 2,
"maximum": 3,
"minimum": 1,
"description": "Outro duration in seconds (1-3, default 2). Requires outroEnabled=true."
},
"gameVideoName": {
"type": "string",
"description": "Exact game video name from list_game_videos (case-sensitive)"
},
"outroImageUrl": {
"type": "string",
"format": "uri",
"description": "Public image URL for a custom outro card instead of the stock bell card. 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."
},
"captionLanguage": {
"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"
],
"type": "string",
"description": "Caption language if different from spoken"
},
"captionsEnabled": {
"type": "boolean",
"default": true,
"description": "Burn captions into the clips (default true). Set false for sources that already have captions."
},
"preferredLength": {
"enum": [
"under30sec",
"under60sec",
"under90sec",
"under3min",
"under5min",
"under10min"
],
"type": "string",
"default": "under60sec",
"description": "Target clip duration"
}
},
"additionalProperties": false
}Permanently delete a short creation request and all generated videos. Credits are NOT refunded. This action is irreversible.
| Argument | Type | Description |
|---|---|---|
| requestId* | string | The request ID to delete (24-char hex). This action is irreversible and credits are NOT refunded. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"requestId"
],
"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."
}
},
"additionalProperties": false
}Retrieve all generated short clips for a completed request. Provide a request ID, or omit it to see your recent requests and pick one.
| Argument | Type | Description |
|---|---|---|
| requestId | string | The request ID from create_short (24-char hex). Omit to see your recent requests. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"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
}Check processing status of a short creation request. Provide a request ID, or omit it to see your recent requests and pick one.
| Argument | Type | Description |
|---|---|---|
| requestId | string | The request ID from create_short (24-char hex). Omit to see your recent requests. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"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
}List available gameplay videos for split-screen overlays (content top, game bottom). Use the exact gameVideoName when creating shorts.
| Argument | Type | Description |
|---|---|---|
| page | number | Page number |
| limit | number | Items per page (1-100) |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"page": {
"type": "number",
"default": 1,
"minimum": 1,
"description": "Page number"
},
"limit": {
"type": "number",
"default": 20,
"maximum": 100,
"minimum": 1,
"description": "Items per page (1-100)"
}
},
"additionalProperties": false
}List available meme hook clips (2-5 second attention grabbers prepended to shorts). Use the exact memeHookName when creating shorts.
| Argument | Type | Description |
|---|---|---|
| page | number | Page number |
| limit | number | Items per page (1-100) |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"page": {
"type": "number",
"default": 1,
"minimum": 1,
"description": "Page number"
},
"limit": {
"type": "number",
"default": 20,
"maximum": 100,
"minimum": 1,
"description": "Items per page (1-100)"
}
},
"additionalProperties": false
}List available background music tracks with names and durations. Use the exact musicName when creating shorts.
| Argument | Type | Description |
|---|---|---|
| page | number | Page number |
| limit | number | Items per page (1-100) |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"page": {
"type": "number",
"default": 1,
"minimum": 1,
"description": "Page number"
},
"limit": {
"type": "number",
"default": 20,
"maximum": 100,
"minimum": 1,
"description": "Items per page (1-100)"
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| date | string | Which timestamp since/until filter and sort by. Use "published" with since to poll for newly live posts. |
| page | integer | Page number |
| limit | integer | Items per page (1-100) |
| since | string | ISO 8601 lower bound. Applies to scheduledAt, or to publishedAt when date=published |
| until | string | ISO 8601 upper bound (same field as since) |
| source | string | manual = scheduled by hand from the shorts list; automation = posted by channel automation |
| status | string | Filter by post status: scheduled (queued), processing (uploading or waiting for the platform), published (live, has url), failed (has error), canceled |
| shortId | string | Only posts made from this clip (short ID) |
| platform | string |
List all short creation requests with optional status filtering, pagination, and sorting.
| Argument | Type | Description |
|---|---|---|
| page | number | Page number |
| limit | number | Items per page (1-100) |
| sortBy | string | Sort field |
| status | string | Filter by status |
| sortOrder | string | Sort direction |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"page": {
"type": "number",
"default": 1,
"minimum": 1,
"description": "Page number"
},
"limit": {
"type": "number",
"default": 20,
"maximum": 100,
"minimum": 1,
"description": "Items per page (1-100)"
},
"sortBy": {
"enum": [
"createdAt",
"updatedAt"
],
"type": "string",
"default": "createdAt",
"description": "Sort field"
},
"status": {
"enum": [
"queued",
"processing",
"completed",
"failed",
"cancelled"
],
"type": "string",
"description": "Filter by status"
},
"sortOrder": {
"enum": [
"asc",
"desc"
],
"type": "string",
"default": "desc",
"description": "Sort direction"
}
},
"additionalProperties": false
}List all available caption style templates with preview thumbnails, names, and IDs. Use the templateId when creating shorts.
No arguments.
{
"type": "object",
"properties": {}
}| Filter by platform |
| requestId | string | Only posts made from this request (24-char hex request ID) |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"date": {
"enum": [
"scheduled",
"published"
],
"type": "string",
"description": "Which timestamp since/until filter and sort by. Use \"published\" with since to poll for newly live posts."
},
"page": {
"type": "integer",
"default": 1,
"minimum": 1,
"description": "Page number"
},
"limit": {
"type": "integer",
"default": 50,
"maximum": 100,
"minimum": 1,
"description": "Items per page (1-100)"
},
"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)"
},
"source": {
"enum": [
"manual",
"automation"
],
"type": "string",
"description": "manual = scheduled by hand from the shorts list; automation = posted by channel automation"
},
"status": {
"enum": [
"scheduled",
"processing",
"published",
"failed",
"canceled"
],
"type": "string",
"description": "Filter by post status: scheduled (queued), processing (uploading or waiting for the platform), published (live, has url), failed (has error), canceled"
},
"shortId": {
"type": "string",
"format": "uuid",
"description": "Only posts made from this clip (short ID)"
},
"platform": {
"enum": [
"youtube",
"instagram",
"tiktok"
],
"type": "string",
"description": "Filter by platform"
},
"requestId": {
"type": "string",
"pattern": "^[0-9a-fA-F]{24}$",
"description": "Only posts made from this request (24-char hex request ID)"
}
},
"additionalProperties": false
}