Videoslash API

AI Lab tools

Run AI Lab video and image tools (Upscale, Lipsync, Video Translate, Reshoot and more) from Claude and AI coding agents.

AI Lab tools

The MCP server exposes every AI Lab tool from the dashboard: one create tool per AI Lab tool, plus three helpers to list tools, quote prices and poll runs. They use the same options, credits and limits as the dashboard and the AI Lab API.

Tools

Create tools

Each create tool starts one run and needs the creative:generate scope.

MCP toolAI Lab toolOutputWhat it does
recast_videoRecastvideoRemake a video with new people, products or places while keeping its motion.
reshoot_videoReshootvideoGet new camera angles of a take you already filmed.
erase_from_videoErasevideoRemove subtitles, captions, watermarks, logos and on-screen text.
extend_videoExtendvideoMake a video longer with new footage after its end or before its start.
edit_videoEdit VideovideoChange something inside a clip while the people, motion and camera stay the same (Seedance 2.5 or Kling O3).
recreate_videoRecreatevideoRemake a video in a new scene, season, style or cast.
create_thumbnailThumbnailimageTurn a photo into thumbnails for YouTube, Shorts, Reels and TikTok.
upscale_videoUpscalevideoSharpen a video to 720p, 1080p or 4K, optionally up to 60 fps.
lipsync_videoLipsyncvideoMake anyone in a video say new audio, with lips matched to the words.
change_video_voiceChange VoicevideoSwap the voice in a video for a new one, keeping the timing and delivery.
translate_videoVideo TranslatevideoTranslate a video's speech into other languages, in the speaker's own voice.
edit_image_backgroundBackgroundimageReplace or remove the background of a photo.
add_video_soundAdd SoundvideoAdd music and sound effects that follow what happens in a video.

Helpers

MCP toolScopeWhat it does
list_ai_lab_toolsreadWithout tool: a summary of every tool with its MCP tool name and files. With tool: that tool's full input schema, file slots and choices (such as voices for Change Voice).
estimate_ai_lab_runreadCredits a run would cost, without starting it. Pass tool, input and, when known, seconds (the main clip's length); otherwise the tool's maximum length is quoted.
get_ai_lab_runreadStatus and outputs of a run by its id (or the id of any of its outputs).

In Claude (Connectors): the AI Lab widget

In Claude Desktop and claude.ai, every create tool mounts the Videoslash AI Lab widget (MCP App, ui://videoslash/ai-lab@v1) next to the tool call.

  1. Claude calls the create tool with the options it understood from the chat (for example upscale_video with resolution: "4k") and leaves the files out.
  2. The tool returns awaiting_media instead of starting. This isn't an error: the widget now shows the tool's file slots and options.
  3. The user adds the files in the widget. It converts audio to WAV where a tool needs it (for example MP3 for Lipsync) and asks for an MP4 when a tool only takes MP4, uploads them from the browser, and shows the price.
  4. The user starts the run in the widget. It shows progress and the results inline, so Claude doesn't need to poll or paste output URLs.

Files never pass through the chat or Claude's context. Ask Claude for what you want ("upscale this to 4K at 60 fps"), then add the file in the widget.

Coding agents (API key)

Claude Code, Codex, Cursor and other API-key clients don't render the widget. Upload the files first, then call the create tool with every required file:

  1. Upload each file.
    • request_creative_media_upload returns a presigned URL. PUT the file bytes to it with the requiredHeaders (for example with curl -T). Use this for anything large; the upload endpoint caps video at 200MB.
    • upload_creative_media takes the file as base64 in the tool call, up to 8MB decoded. Pass the base64 only as the tool argument; never print it into the conversation.
  2. Call the create tool with the uploadId in the tool's file field (for example video for upscale_video, video and audio for lipsync_video). The URL of an earlier output works too, so tools chain: Recast a clip, then pass the result's URL to upscale_video.
  3. Poll get_ai_lab_run (see below).

A create tool called without a required file returns validation_error naming the missing fields.

The tools don't convert files for API-key clients. Lipsync needs an MP4 video and a WAV audio, Video Translate an MP4, and Reshoot's custom soundtrack a WAV; convert other formats (for example with ffmpeg) before uploading. Call list_ai_lab_tools with tool for each slot's accepted types and limits. Other format rules are listed in the AI Lab API guide.

Example prompts:

  • "Upscale ./renders/teaser.mov to 1080p at 30 fps with Videoslash."
  • "Lip-sync ./host.mp4 to ./line.wav and tell me what it costs first."
  • "Translate ./promo.mp4 into Spanish and German."

Plans and credits

  • An active plan is required for every create tool (and for create_creative_generation), the same as on the dashboard. Without one, the tool returns subscription_required with a billing link and a summary of the plans. Pay-per-use credits stay on the account and can be spent once the user subscribes.
  • Credits are charged when a run starts, by the tool's own pricing, based on the files' measured length. Use estimate_ai_lab_run to quote first. Outputs that fail are refunded.
  • Not enough credits returns insufficient_credits with advice: how many credits are needed, which credit pack covers the shortfall, or when plan credits refill.
  • get_credits returns the balances plus subscribed, plan, refillsAt, canBuyPacks and packs, and adds advice when the user has no plan or is low on credits.
  • Too many runs in a short time return rate_limited. Wait a minute and try again.

Long-running runs

AI Lab runs take from about a minute to several minutes (longer for big clips and multi-output runs). A create tool returns right away with the run, its outputs still processing.

  • Poll get_ai_lab_run with the run id about every 10 to 20 seconds until status is no longer processing.
  • A run's status ends as completed, failed or partial (some outputs failed). Each item has its own status, url when completed and error when failed.
  • Multi-output runs (Recast versions, Reshoot angles, Thumbnail and Background variants, voices, languages, Add Sound takes) return one run with one item per output, each with a label.
  • In Claude, the widget does the polling and shows the results, so Claude doesn't need to.

Tool annotations

Read tools (list_ai_lab_tools, estimate_ai_lab_run, get_ai_lab_run) declare readOnlyHint: true and idempotentHint: true. Create tools declare readOnlyHint: false and destructiveHint: false: they add new outputs and never change or delete existing ones. All tools declare openWorldHint: false.

On this page