UnitsStudio

Studio MCP

Let Claude, Claude Code, Codex or Cursor plan films and start runs on your Studio account.

https://units.school/api/studio/mcp

In Claude, add it as a custom connector. You sign in with your Units account; there is no token to paste.

Add it by hand

Terminal
claude mcp add --transport http units-studio https://units.school/api/studio/mcp

# then run /mcp inside Claude Code and sign in

What the agent can do

  • studio_status

    Credits, membership, whether the production worker is up, and whether local make-like cuts are available on this machine.

  • get_assets

    Which Units account this conversation is connected to (its email), and what that account has given Studio to make videos from: the headings of its saved story and how much footage is uploaded. Call this first for a new user. Upload guidance must be three separate messages: intro, URL alone, then next step; use the returned upload link; one page accepts videos, batches and reusable assets.

  • import_links

    Pull clips they sent as LINKS into their footage library: Dropbox file or folder links, Google Drive file links, or a direct link to a video file. Call it right away with every link they sent, exactly as sent; nothing to ask first. It runs in the background (a big folder can take a while); they get a text from you when the clips are in, and only then can a video use them. Google Drive folders can't be pulled in by link: the reason comes back, say it. This only brings clips in; it never starts an edit. If they also asked for a video, tell them you'll start it once the clips are in.

  • list_footage

    Search this account's complete footage library by filename with query. For a named clip, ALWAYS search before saying it is missing; the default result is only one page. offset/limit paginate all clips; batch_id finds one upload batch. Reference uploads are excluded. Never ask for re-upload because a name was absent from the first page.

  • report_problem

    File a problem with a video (or with Studio) for the Units team to fix: captions wrong, wrong clip, a crash, anything they say is broken or bad. Pass their exact words and which video. It becomes a tracked bug with the video's logs attached.

  • list_videos

    Read current video status whenever they ask how an edit is going, what's happening, whether it's done, or why it stopped. Returns queued/active/stopped/ready state, actual editing stage, last progress time, recorded failure reason and links. Optional video selects an exact video id or Units link; omit to list their newest videos. Read-only: never starts or retries an edit. Never claim ongoing editing for a stopped job or invent a finish time.

  • export_video

    A finished video as a file made for one platform: instagram (Reels and feed), tiktok, youtube (Shorts and regular), x, linkedin, or master (the full-quality original). Call it when they ask for a version for a platform ("for TikTok", "for Reels", "for Shorts") or say a video they posted looks blurry or low quality. The shape never changes: a horizontal video stays horizontal; only the size, frame rate and bitrate are made right for that platform. Returns link: send it as its own message. The first ask for a platform takes a few minutes to encode and the link shows the download once it's ready, so send it straight away.

  • send_video_card

    Sends the iMessage card for one of their videos, captioned with the video's own name: the progress card (latest frame and where it's at) while it's being made, the finished video once it's ready. A tap opens it expanded inside Messages. Call it when a platform notice names it, after request_video accepts an edit, or when they ask to see a video or its link. It sends the card itself, so don't also send the link with imessage_send_app. Returns title and link; only if its delivery comes back unavailable or failed, send link as its own reply in that video's thread.

  • list_updates

    What has finished on the account in the last two weeks: uploads that completed, footage that is ready to use, videos that are done. One line per thing, each starting with a stable id, so a watcher can tell what is new since it last looked.

  • list_edit_formats

    Offer quick editing formats when the person asks what you can make or wants a quick edit. Return the choices, let them choose, then pass that exact format ID to request_video. Quick formats target 15 minutes, not a delivery guarantee. A supplied reference remains the target.

  • request_video

    Make a video from this person's own footage. Call it right away, without asking them anything first. When they send a reel link, pass just the link: the maker watches the reel and copies its length, pacing, captions and structure, and picks the moment from their story and footage. Add about only with words they wrote, and seconds only if they named a length. With no reel and no direction it picks their best moment. It is made in the background; list_updates says when it has started, when it is ready (with a link to watch it), or if it failed.

  • generate_footage

    Make a NEW clip or still from a description with an AI video or image model (Seedance, Kling, Veo, Nano Banana), when they ask for footage they don't have: b-roll, a background, an establishing shot, a product still, a poster. It costs credits from their Studio balance (quoted back to you; about 175 credits = $1.75 for a 5 s 720p Seedance clip). Call it with their words as prompt; the result lands in their footage library in a minute or two and you get a platform notice, after which request_video can cut with it. Not for editing clips they already have (that's request_video).

  • save_story

    Add to the account's story on the Assets page: who they are, what they are building, what happened and when. Send their own words; do not invent or change facts, names or numbers. Each call adds one titled part to the end.

  • set_up_brand

    Writes or updates the account's Brand doc from what they told you while getting started: what they want videos for (use_case), their website, their socials and their own words about themselves. Reads the website for its text, name, logo, colours and fonts, then writes the brief; takes up to a minute. Call it once they've answered the use-case question and the website question (a skipped website is fine: pass nothing). Call it again whenever they add or correct something. It only saves what they gave; nothing is invented.

  • list_presets

    Studio film presets you can pass to plan_film (cinematic, product, explainer, documentary).

  • list_projects

    The signed-in user's recent Studio projects and any production run.

  • get_project

    One project: brief, shot plan, quote, and run state. No storage keys.

  • plan_film

    Write a Seedance shot plan from a brief, save it as a Studio project, and return the quote. Does not start production or spend credits.

  • start_run

    Queue production for an existing project. Spends reserved credits when the quote is above zero and the Studio worker is up. Pass acceptedCents from the plan quote.

  • get_run

    Production state for a run id. Completed films are at outputUrl on the Studio origin.

start_run spends credits. Check the quote before you tell the agent to start.