Vyexa — video link to short clips

Turn a video link into vertical short clips with subtitles: create jobs, poll, get downloads.

Should I use this

Quality & Safety

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

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~856Tokens (tool definitions)
~1.5 KBTypical response size
Moderate attention impact (0.67% 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": {
    "clips": {
      "url": "https://vyexa.net/mcp"
    }
  }
}

Remote endpoints

https://vyexa.net/mcpstreamable-http

What it can do

Tool inventory

Tools (4)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟡create_clips(url, num_clips, language, segment_duration, layout, ...)

Start a job that cuts a video link (YouTube, TikTok, Instagram, Vimeo, Twitch, or a direct file URL) into vertical 9:16 short clips with burned-in subtitles. Returns a job_id immediately; the job runs for a few minutes — poll get_job until status is "completed" or "partial". num_clips is a maximum, not a guarantee. Uses the account's normal clip balance (free plan included).

Input Schema

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "Public https link to the source video."
    },
    "num_clips": {
      "type": "integer",
      "minimum": 1,
      "description": "Maximum number of clips to produce (default 1)."
    },
    "language": {
      "type": "string",
      "description": "Spoken language code (en, ru, uk, pl, …) or \"auto\" (default)."
    },
    "segment_duration": {
      "type": "integer",
      "enum": [
        30,
        50,
        90
      ],
      "description": "Target clip length in seconds. 50 needs Creator, 90 needs Pro; default 30."
    },
    "layout": {
      "type": "string",
      "description": "Framing: auto, full, frame_70, frame_50, frame_40, dual, streaming, lesson. See get_options."
    },
    "subtitle_style": {
      "type": "string",
      "description": "Subtitle style, e.g. karaoke, highlighter, glow, punch, none. See get_options."
    },
    "title_style": {
      "type": "string",
      "description": "Title style: clean, box, chip, box_accent, outline, off."
    },
    "font": {
      "type": "string",
      "description": "Font: montserrat, rubik, russo."
    },
    "subtitle_position": {
      "type": "string",
      "enum": [
        "auto",
        "bottom",
        "middle",
        "top"
      ]
    },
    "highlight_color": {
      "type": "string",
      "description": "Accent colour as #RRGGBB (or \"#RRGGBB+#RRGGBB\" for two alternating)."
    },
    "generate_title": {
      "type": "boolean",
      "description": "Generate an AI title for each clip (default true)."
    },
    "title": {
      "type": "string",
      "maxLength": 32,
      "description": "Fixed title instead of an AI one."
    },
    "profanity_censor": {
      "type": "boolean",
      "description": "Mask and bleep swear words."
    },
    "logo": {
      "type": "object",
      "description": "Paid plans only: {url|base64, position, size, margin, opacity}. See https://vyexa.net/api-docs#logo."
    }
  },
  "required": [
    "url"
  ]
}
🟢get_job(job_id, include_subtitles)

Status of a job created with create_clips: status (pending, processing, completed, partial, failed), progress counters, source info and the list of finished clips with download_url. Poll every 10–15 seconds. "partial" means some clips are usable.

Input Schema

{
  "type": "object",
  "properties": {
    "job_id": {
      "type": "integer",
      "description": "job_id returned by create_clips."
    },
    "include_subtitles": {
      "type": "boolean",
      "description": "Include per-clip subtitle text."
    }
  },
  "required": [
    "job_id"
  ]
}
🟢list_clips(job_id, include_subtitles)

Only the finished clips of a job (id, title, duration, download_url). Each download_url requires the same Bearer key.

Input Schema

{
  "type": "object",
  "properties": {
    "job_id": {
      "type": "integer",
      "description": "job_id returned by create_clips."
    },
    "include_subtitles": {
      "type": "boolean",
      "description": "Include per-clip subtitle text."
    }
  },
  "required": [
    "job_id"
  ]
}
🟢get_options

All accepted values for layout, subtitle_style, title_style, font, subtitle_position with "when to choose" hints and recommendations by content type (podcast, gaming, humor…). Call once before create_clips to pick styling.

Input Schema

{
  "type": "object",
  "properties": {}
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded4 tools