Agents / MCP

Your agent.Your studio.

Paste one URL into Claude, Cursor, ChatGPT, or Grok and sign in once. Your agent can quote, generate, and poll every public Clip Studio job — Topic Shorts, Character Films, Video Lab, Image Lab, Story, and more — on the same plan as the website.

https://clipstudio.ai/api/mcp

  • 98 tools
  • 14 products
  • OAuth sign-in
  • Same plan as the site

Watch an agent work

One ask. Real tool calls. A finished file.

A scripted replay using the real tool names. The outputs are real Clip Studio renders.

Agent session · scripted replay

You

Make a vertical Topic Short about why cold plunges wake you up. Spotlight captions.

Your agent · clipstudio MCP

  1. create_topic_short_storyQueued

    topic: "cold plunges"

  2. quote_topic_shortQueued

    aspectRatio: "9:16", captionStyle: "spotlight"

  3. generate_topic_shortQueued

    quoteId: "q_…"

  4. get_topic_shortQueued

    id: "ts_…"

Waiting for the agent0%

Topic Shorts · 0/4 tool calls

Connect

Paste the URL. Sign in once.

Pick your agent. There is no client id and no key to paste — the first call opens Clip Studio so you can approve it.

Claude

Customize → Connectors → Add custom connector. Paste the URL. Connect. Leave OAuth client id empty.

Server URL
https://clipstudio.ai/api/mcp
Open Claude connectors

How it works

  1. 01

    Add the URL

    Point the agent at https://clipstudio.ai/api/mcp. No client id. No pasted key.

  2. 02

    Sign in once

    The agent opens Clip Studio. Log in if you need to, then Approve. That is the whole auth.

  3. 03

    Ask for the job

    Ask for a Topic Short, a Character Film, a Video Lab clip, a still, or continue my story. The agent quotes, generates, and polls on the same generation limit as the site. Publishing a finished clip to a public page uses no extra allowance.

What your agent can do

98 tools. Every public job.

If you can do it on clipstudio.ai, your agent can do it here — nothing more. No admin, no webhooks, no chat internals.

Frame from a Clip Studio Video Lab clip41 tools

Create videos

Frontier text- and image-to-video, faceless Topic Shorts, talking-head and UGC-style ads, and playable Last Frame films.

  • Video Lab
  • Last Frame
  • Topic Shorts
  • Talking Shorts
  • Ad Studio
See the tools
  • list_video_lab_modelsList Video Lab models, modes, and defaults. Same catalog as /video-lab.
  • quote_video_labQuote a Video Lab setup. Does not generate or charge. Paid generate needs this quote. FLUX 3 Edit clip uses mode=edit_video plus a source MP4 (sourceAssetIds, sourceClipId, or sourceVideoUrl). Duration and aspect follow the source; output is 720p. Keeps the source clip’s audio. Clips must be MP4, under 15 seconds and 50 MB.
  • generate_video_labpaidStart a paid Video Lab generation. Uses this month’s generation allowance. Poll get_video_lab_generation until it finishes. FLUX 3 Edit clip uses mode=edit_video plus the same source clip used on the quote. Duration and aspect follow the source; output is 720p. Keeps the source clip’s audio.
  • list_video_lab_generationsList this account’s Video Lab generations.
  • get_video_lab_generationFetch one Video Lab generation by video id.
  • reconcile_video_lab_generationRefresh a Video Lab job from the provider. Does not charge again.
  • presign_generation_assetCreate an upload slot for a Video Lab, Image Lab, or Paint Lab source image (or a Video Lab MP4). Then complete_generation_asset.
  • complete_generation_assetMark a source image or MP4 upload ready for Video Lab, Image Lab, or Paint Lab. Returns the asset id, width, and height.
  • list_last_frame_gamesList Last Frame games (Adventure, Heist, Tape, and the rest).
  • list_last_frame_worldsList Last Frame catalog worlds/maps.
  • quote_last_frameQuote a Last Frame opening or next shot. Does not film.
  • start_last_framepaidStart a Last Frame run and film the opening shot. Uses this month’s generation allowance.
  • get_last_frame_runGet a Last Frame run, including the latest shot and choices.
  • choose_last_framepaidPick a numbered Last Frame option. Films the next shot and uses this month’s generation allowance.
  • type_last_framepaidType a custom Last Frame move. Films the next shot and uses this month’s generation allowance.
  • timeout_last_frameApply the Last Frame choice timeout (same as the play HUD timer running out).
  • end_last_frame_clipTell Last Frame the current shot finished playing so the next choice can appear.
  • arm_last_frame_itemArm a Last Frame inventory item for the next move. itemIndex is 0-based.
  • create_last_frame_worldCreate a custom Last Frame world from a description.
  • list_hook_bankList Opening hooks script-opening templates (Problem, Curiosity, Trust, Niche). Catalog id hook_bank. The workspace picker is hidden; this catalog is for MCP seeding. Optional intent filter. This is not Hook captions (captionMode=hook / hook_kinetic), which stay hidden in the workspace.
  • create_topic_short_storyPreview a Topic Short story with hook, setup, reveal, and payoff beats, narration, and English Pexels search terms. Narration is written to fill the selected length (about 2.6 words per second). A short supplied script is expanded; a too-long script is packed down to the speaking-pace envelope. A script that already fills the length is kept word for word. Keep topic nouns in the queries (Messi, soccer, football). Prefer on-topic action over unrelated lifestyle B-roll. Put the strongest hook visual first. Generate fail-opens with broader topic-near sports footage if a beat misses on Pexels, then unused clips, then a neutral scenery catalog, then cached or synthesized last-resort clips if the provider is down — never the same clip on every shot when unused footage exists. Does not render. Choose any storyFormat (mini_documentary, myth_check, story_twist, how_it_works, ranking, quiz, scary_story, history_pov, reddit_story, what_if); edit the returned plan before quoting and generating. language writes the narration in en, es, pt, de, fr or hi. sourced (or sourceUrl / sourceUrls / sourceText) researches the topic and plans only claims it can cite. seriesEpisodeId plans an approved series episode. Optional hookTemplateId seeds the topic from Opening hooks (script opening, not Hook captions).
  • quote_topic_shortQuote a Topic Short. Does not render. Spoken narration is planned to fill the selected length; that does not change the quote (quoted on duration, not word count). captionStyle defaults to spotlight (same seven looks as Story: off, spotlight, impact, highlighter, editorial, boxed, kicker); transitionMode defaults to dynamic. Neither changes the quote. Legacy captionMode values are aliased onto captionStyle. Optional hookTemplateId seeds the topic from Opening hooks (script opening, not a caption look) and does not change the quote. The setup that does change the quote: length, visualStyle cinematic, aiHook (and the recurring characters they bring on story formats), a host (hostNarratorId) and sourced research; language, aspectRatio (9:16, 16:9, 1:1), storyFormat and a cloned voice (voiceCloneId) do not change the price. Cinematic, aiHook, host, sourced and voice clone are paid options, not available on the free short. seriesEpisodeId quotes an approved series episode with its series style.
  • generate_topic_shortpaidGenerate a Topic Short from a reviewed storyPlan or automatically plan one from the topic and storyFormat. Spoken narration fills the selected length. A short reviewed plan is expanded so the voiceover is not a music-only tail. A too-long plan is packed down; generate never fails for narration length. captionStyle defaults to spotlight (off, spotlight, impact, highlighter, editorial, boxed, kicker — the Story caption looks, burned from the voiceover word timings); transitionMode defaults to dynamic. Uses this month’s generation allowance or complimentary quota. Poll get_topic_short. Stock matching fail-opens: a Pexels miss or outage still returns a finished short. Caption failure also fail-opens (captionBurn.verdict = fallback). Legacy captionMode values are aliased onto captionStyle. Optional hookTemplateId seeds the topic from Opening hooks (script opening, not a caption look) and does not change consume or refund. Takes the same setup as quote_topic_short (storyFormat, aspectRatio, visualStyle, aiHook, language, host, sources, voiceCloneId, seriesEpisodeId); pass the same values on both. Cinematic and AI hook shots that miss their 2-minute deadline fall back to judged stock, so the short still ships. A seriesEpisodeId short is linked to that episode.
  • get_topic_shortFetch a Topic Short generation, including captionBurn persisted on the completed record. status moves through queued and in_progress, then composing while the final edit is put together, then completed or failed; keep polling through composing. setup echoes the options it was made with (format, frame size, language, visual style and render tier, host, sources, voice clone, series episode). A sourced short also returns sources: the citations shown on its Sources card. shots lists each shot with its judged alternates for swap_shot edits. On a completed short it also returns versions (the original plus each edit; current marks the one the library shows), editCapabilities (including musicOptions for edit_topic_short) and publication (which version a public page is pinned to). On a completed short it also returns postingPack (title, caption, hashtags), coverUrl when the cover is ready, and exports (each format and whether export_topic_short can make it).
  • edit_topic_shortpaidEdit a finished Topic Short. Free kinds use no generation allowance: captions (captionStyle: off, spotlight, impact, highlighter, editorial, boxed, kicker), music (trackId from get_topic_short editCapabilities.musicOptions, or none) and swap_shot (beatIndex, shotIndex and an alternateId from get_topic_short shots). Paid kinds are quoted first with quote_topic_short_edit and run on that quoteId with the same fields: revoice (beatIndex plus the new narration for that line) and regenerate_shot (beatIndex and shotIndex of an AI shot); a shortfall returns HTTP 402 with numeric requiredCredits and availableCredits. nl takes an instruction ("make the hook punchier") and only interprets it: it returns a proposal of steps, each with a label and either a ready request (kind and params, with a quoteId and quote facts on paid steps) or the reason it cannot run. Apply each runnable step with its own edit_topic_short call, passing its params fields and quoteId. Each applied edit makes a new version; poll get_topic_short until it is completed. A public page stays on the version it was published from until you call publish_generation again. Restoring an earlier version is done on the clip page. Up to 20 free edits per short.
  • quote_topic_short_editQuote one paid edit of a finished Topic Short before it runs. kind revoice re-records one line (beatIndex plus the new narration, in the short’s language; it must fit that beat) and kind regenerate_shot re-rolls one AI shot (beatIndex and shotIndex). Nothing is charged. Returns quoteId, numeric requiredCredits and availableCredits (null for unlimited accounts), affordable, expiresAt and facts (the job facts, for example Beat 3 · New voiceover · 4s line). Pass quoteId with the same fields to edit_topic_short within 10 minutes; a new edit on the short invalidates it. When affordable is false, edit_topic_short returns HTTP 402: use create_checkout_url. Free edits (captions, music, swap_shot) need no quote.
  • export_topic_shortGet a posting export of a finished Topic Short, made from its stored voice, music and caption tracks at no cost. no_music is voice and captions without music (add a trending sound in the app); clean is voice and music without burned-in captions; srt and vtt return the subtitle file as text; cover is the opening frame as a still. Video exports and the cover may return rendering with retryAfterMs: call again until status is ready (url) or unavailable.
  • save_topic_short_styleSave the setup of a finished Topic Short as a reusable style: its format, length, visual style, voice, captions, transitions, music mood and frame size, plus an optional intro and outro line. Up to 10 styles. Use a style with create_topic_short_series. Free.
  • list_topic_short_stylesList your saved Topic Short styles and the series built on them. Free.
  • create_topic_short_seriesStart a Topic Short series from a saved style and a niche (for example “deep sea creatures”). Returns the series; add or propose episodes with queue_topic_short_episodes. Free: each episode is quoted and generated like any short.
  • queue_topic_short_episodesFill a Topic Short series episode queue. Add your own episodes, approve or skip proposed ones, and by default propose new episode angles that do not repeat earlier ones. Make an approved episode by passing its id as seriesEpisodeId to quote_topic_short and generate_topic_short. Does not render. Free.
  • list_topic_short_voice_clonesList your cloned narration voices and whether this account can use them. Pass a ready clone id as voiceCloneId to quote_topic_short and generate_topic_short. Read-only: enrolling a clone needs a voice recording and consent, so it is done on the web in the Topic Shorts workspace. Voice clones need an active plan. A short narrated by a clone carries an AI-voice disclosure.
  • research_talking_shortResearch a Talking Short from a product URL or a brief. Does not render or charge. Optional hookTemplateId seeds the brief from Opening hooks (script opening, not caption style).
  • quote_talking_shortQuote a Talking Short. Does not render. captionMode defaults to current and does not change the quote. phrase is MCP-ungated. The Phrase chip is operator-email only in the workspace. hook remains accepted and burns Current karaoke. Optional hookTemplateId seeds the brief from Opening hooks and does not change the quote.
  • generate_talking_shortpaidStart a paid Talking Short. Uses this month’s generation allowance. Poll get_talking_short until it finishes. captionMode defaults to current. phrase is MCP-ungated. The Phrase chip is operator-email only in the workspace. hook burns Current karaoke. Optional hookTemplateId seeds the brief from Opening hooks (script opening, not caption style) and does not change consume or refund.
  • get_talking_shortFetch a Talking Short generation.
  • list_talking_short_actorsList Talking Shorts catalog stills. Does not render.
  • research_ad_studioResearch Ad Studio from a product URL or brief. Returns Problem, Curiosity, Trust, and Niche angles with a locked 5-beat script (Hook / Problem / Product / Result / Soft close). Does not render or charge.
  • quote_ad_studioQuote an Ad Studio job. Does not render. Uses the Talking Shorts generation curve. Catalog creators only.
  • generate_ad_studiopaidStart a paid Ad Studio clip. Uses this month’s generation allowance. Poll get_ad_studio until it finishes. Hard failures return that job’s allowance.
  • get_ad_studioFetch an Ad Studio generation. Submit and poll; do not wait on generate_ad_studio for the full render.
Frame from a Clip Studio Character Film13 tools

Films & stories

Narrated Character Films and multi-part Stories. Plan, film the opening, then continue on the same project.

  • Story
  • Character Films
See the tools
  • list_storyboard_themesList Story visual themes. The chosen theme carries across parts when you continue my story on the same project.
  • list_storyboard_voicesList Story narration voices with accent and locale. Same catalog as Audio Lab. The chosen voice carries across parts when you continue my story.
  • estimate_storyboardEstimate the next Story part from a script. Does not render. Use this before render_storyboard when you continue my story.
  • create_storyboardStart a Story project from a full story or script. Does not write a part or film. Next: generate_storyboard_part (first part, or continue my story on this projectId), then render_storyboard.
  • get_storyboardFetch a Story project and its parts, or omit projectId to list recent projects. Use this to pick up a story and continue the next part.
  • generate_storyboard_partContinue my story: write the next Story part on an existing project (or the first part after create_storyboard). Pass projectId from create_storyboard or get_storyboard. Uses previous parts for continuity. Does not film — call render_storyboard after.
  • render_storyboardpaidFilm the latest Story part. After generate_storyboard_part — including continue my story — render that part. Uses this month’s generation allowance. Poll get_storyboard.
  • list_character_film_catalogList Character Films narrators, looks, and lengths. Same catalog as /character-films. Each narrator includes voiceName (the narrator’s fixed voice). Does not render or charge. Subtitles are burned automatically.
  • plan_character_filmPlan a Character Film: pick a narrator, type a topic, and get a full-length block script saved as a project. Film scripts are directed by Anthropic’s Claude Opus 5.5. Does not render or charge. Next: generate_character_film for the opening, then continue_character_film for the rest.
  • quote_character_filmQuote a Character Film range. Does not render. range opening is block 1 (at most 8 seconds). range remaining is the rest of the planned film and follows the same plan as the site. Pass projectId from plan_character_film.
  • generate_character_filmpaidStart the Character Film opening (block 1, at most 8 seconds) on the same plan as the site. Optional quoteId from quote_character_film with range opening; when omitted this tool quotes the opening first. Optional idempotencyKey is generated when omitted. Poll get_character_film. Submit and poll — do not wait here for the full render. After the opening is completed, call continue_character_film for the rest (same plan as the site).
  • continue_character_filmpaidContinue a Character Film: film the remaining blocks after the opening is completed. Billed under the same plan as the site. Requires a completed opening. Optional quoteId from quote_character_film with range remaining; when omitted this tool quotes remaining first. Optional idempotencyKey is generated when omitted. Poll get_character_film. Submit and poll — do not wait here for the full render.
  • get_character_filmFetch a Character Film render or project. Pass renderId from generate_character_film or continue_character_film, or projectId from plan_character_film. Returns status, stage, blocksDone, blocksTotal, outputUrl, and canContinue. Poll until status is completed or failed. Submit and poll; do not wait on generate for the full render.
Image Lab still of a pour-over coffee dripper at dawn27 tools

Stills & ads

Image Lab stills across the frontier image models, Paint Lab sketch finishing, fills, line-art color, upscales, cutouts, and your own trained style, plus on-brand static ads, tip packs, and Proof carousels.

  • Image Lab
  • Ad Lab
  • Paint Lab
See the tools
  • list_image_lab_modelsList Image Lab models, modes, and aspect ratios. Same catalog as /image-lab: ChatGPT Image 2.5, Nano Banana, Nano Banana 2, Nano Banana 2.1, Nano Banana Pro, FLUX 3 Image, FLUX.2 Pro, Ideogram V4.5, MAI Image 2.5, MAI Image 2.5 Pro, Seedream 5 Lite, Seedream 5 Flash, Muse Image, Grok Imagine Image 2.0, Qwen Image 3, Kling Omni 3, and Recraft V4.1 Flash.
  • quote_image_labQuote an Image Lab still. Does not generate or charge. Paid generate needs this quote.
  • generate_image_labpaidStart a paid Image Lab generation (ChatGPT Image 2.5, Nano Banana, Nano Banana 2, Nano Banana 2.1, Nano Banana Pro, FLUX 3 Image, FLUX.2 Pro, Ideogram V4.5, MAI Image 2.5, MAI Image 2.5 Pro, Seedream 5 Lite, Seedream 5 Flash, Muse Image, Grok Imagine Image 2.0, Qwen Image 3, Kling Omni 3, or Recraft V4.1 Flash). Uses this month’s generation allowance. Poll get_image_lab_generation until it finishes.
  • list_image_lab_generationsList this account’s Image Lab generations.
  • get_image_lab_generationFetch one Image Lab generation by id and refresh it from the provider. Does not charge again.
  • quote_adQuote an Ad Lab layout. Does not generate.
  • import_ad_websiteRead a public website into an Ad Lab company profile.
  • generate_adpaidGenerate Ad Lab stills. Uses this month’s generation allowance. Poll get_ad_generation. layout is 9:16, 1:1, 4:5, or 16:9.
  • quote_ad_tip_packQuote an Ad Lab tip pack. Does not generate. Default 6 slides at 4:5, each with a distinct topic-matched image. Optional 9:16. Set uniquePlates false to reuse one image across the pack.
  • generate_ad_tip_packpaidGenerate an Ad Lab tip pack (hook, numbered tips, soft CTA), with a distinct topic-matched image per slide by default. Uses this month’s generation allowance. Poll get_ad_generation; download slides and zip from the job. Set uniquePlates false to reuse one image across the pack.
  • quote_ad_proof_packQuote an Ad Lab Proof pack. Does not generate. Default 6 slides at 4:5: hook, in-the-life stills for the user’s niche, and a soft CTA. Pass hasScreenshot true when a product screenshot will be composited on the last slide.
  • generate_ad_proof_packpaidGenerate an Ad Lab Proof pack (hook, niche in-the-life stills, soft CTA) at 4:5. Optional product name, screenshot asset or URL, and CTA URL. Uses this month’s generation allowance. Poll get_ad_generation; download slides and zip from the job. Never invent a fake UI; missing screenshot falls back to a text CTA.
  • quote_ad_explainQuote an Ad Lab Explain film. Does not generate. Pass hasStyleRef true when a style still is included.
  • generate_ad_explainpaidGenerate an Ad Lab Explain film from a product photo and a brief. Optional style still. Uses this month’s generation allowance. Poll get_ad_generation. Stay on Ad Lab; the stitched film is on the job.
  • list_ad_generationsList Ad Lab generations this account owns. Pass companyId for static ads, or kind tip_pack, proof_pack, or explain.
  • get_ad_generationFetch one Ad Lab generation.
  • list_paint_lab_stylesList Paint Lab AI actions (finish, edit, fill, colorize, upscale, remove_background), which ones need a prompt, a mask, or line art, plus finish styles, qualities, variation counts, upscale factors, and size limits. Same catalog as /paint-lab. The drawing canvas is on the website.
  • quote_paint_labQuote one Paint Lab AI action on an uploaded image. Does not generate or charge. Upload first with presign_generation_asset and complete_generation_asset. Returns quoteId, the job facts line, and the result size. Quotes expire after about 5 minutes.
  • generate_paint_labpaidStart a paid Paint Lab AI action: finish a sketch, edit with words, fill a masked area, color line art without changing the lines, upscale, or remove a background. Uses this month’s generation allowance. Pass quoteId from quote_paint_lab, or the op settings to quote and generate in one call. Poll get_paint_lab_generation until status is completed or failed. A failed job returns its allowance.
  • list_paint_lab_generationsList this account’s Paint Lab AI results, newest first. Refreshes in-flight jobs. Does not charge.
  • get_paint_lab_generationFetch one Paint Lab AI result by id and refresh it from the provider. Completed results include a public PNG outputUrl per variation. Does not charge again.
  • list_paint_lab_trained_stylesList this account’s trained Paint Lab styles, newest first: id, name, status (submitting, queued, training, ready, failed), and drawing count. Refreshes styles still training. Failed trainings are included; deleted ones are not. Does not charge.
  • quote_paint_lab_style_trainingQuote training your own Paint Lab style from 8–20 of your own paintings. Does not train or charge. Returns quoteId and the job facts line. Quotes expire after about 10 minutes. You can keep up to 12 styles; delete one to train another.
  • train_paint_lab_stylepaidStart training your own Paint Lab style from a quote. Uses this month’s generation allowance. Returns the style at once (status submitting or queued); poll get_paint_lab_trained_style until status is ready or failed. Training takes a few minutes. Retrying with the same quoteId returns the same style and never charges twice. A failed training returns its allowance.
  • get_paint_lab_trained_styleFetch one trained Paint Lab style and refresh its training status. Once status is ready, pass its id as trainedStyleId to quote_paint_lab or generate_paint_lab (finish or edit). Does not charge again.
  • rename_paint_lab_trained_styleRename one of your trained Paint Lab styles. Does not charge or retrain.
  • delete_paint_lab_trained_styleDelete one of your trained Paint Lab styles (ready or failed). A style that is still training cannot be deleted yet. Does not charge or refund. Results already made in that style are kept.
5 tools

Voice

Turn a script into downloadable narration with Clip Studio voices.

  • Audio Lab
See the tools
  • list_audio_lab_voicesList Audio Lab narration voices with accent and locale. id and name are the Clip Studio voice name (for example Russ), not the ElevenLabs voice_id. Same catalog as /audio-lab.
  • quote_audio_labQuote an Audio Lab script. Does not generate or charge.
  • generate_audio_labpaidStart a paid Audio Lab narration. Uses this month’s generation allowance. Poll get_audio_lab_generation until it finishes.
  • list_audio_lab_generationsList this account’s Audio Lab generations.
  • get_audio_lab_generationFetch one Audio Lab generation by id and refresh it from the provider. Does not charge again.
9 tools

Library & sharing

Find past clips, publish a finished one to a public page, and run the free copy and planning tools.

  • Library
  • Free tools
See the tools
  • list_libraryList clips in the library.
  • get_clipFetch one library clip.
  • publish_generationPublish a completed library generation to a public page. Does not use extra allowance.
  • unpublish_generationUnpublish a library generation you previously made public. Does not use extra allowance.
  • get_generation_publicationGet whether a library generation is public, and its public URL if it is.
  • list_public_generationsList public published generations. Optional kind, model, and limit filters.
  • get_public_generationFetch one public published generation by clip id.
  • list_free_toolsList public free tools at /tools.
  • run_free_toolRun a public free tool (hooks, scripts, briefs). Does not generate video.
3 tools

Plan & checkout

Read plan and usage. When the month’s allowance runs out, get a Stripe Checkout link — never card data.

  • Account
See the tools
  • list_public_productsList Clip Studio public products an agent can use through this MCP server.
  • get_accountPlan and usage for the signed-in Clip Studio account. resetsAt is an ISO timestamp when the monthly allowance resets, or null when there is no reset window. Includes offerCheckout price IDs for Clip Pro $19/mo and Studio Elite $39/mo after a 402.
  • create_checkout_urlCreate a Stripe Checkout URL for a plan. After HTTP 402, prefer Clip Pro $19/mo price_1PsryR07fQ1sqleOUNzbksZh or Studio Elite $39/mo price_1Psrzg07fQ1sqleOVBf1tv1P (also on get_account.offerCheckout). Do not use Content Creator $9 default_price or Content Creator $19 as the site wall or post-value offers. Returns a Stripe Checkout URL. Does not take card data.

Billing

Same plan. Same allowance.

Your agent spends from the same monthly generation allowance you use on the site. No separate plan, no second meter.

  1. 01

    Quote

    Prices the job before anything runs.

  2. 02

    Generate

    Starts the render on your plan.

  3. 03

    Poll

    Checks back until the file is ready.

Out of allowance for the month? The tool says so, and the agent can hand you a Stripe Checkout link. It never sees card details.

See pricing

Security

You approve. Your account stays yours.

  • OAuth 2.1 with PKCE

    The agent opens clipstudio.ai. You log in and click Approve. Your password never reaches the agent.

  • No key to paste

    Clients register themselves. API keys exist only as a headless fallback.

  • Tokens stay on the agent

    Clip Studio stores only hashes of the tokens it issues.

  • Public products only

    The agent acts as you, on the same jobs you can run — never admin tools or other accounts.

Questions

Everything agents ask about.

What is Clip Studio MCP?

A hosted Model Context Protocol server. Any MCP client can use Clip Studio’s public products — Video Lab, Image Lab, Audio Lab, Last Frame, Topic Shorts, Talking Shorts, Ad Studio, Character Films, Ad Lab, Story (continue my story on the next part), library, and free tools — as the signed-in account, on the same plan as the website.

How do I connect?

Add https://clipstudio.ai/api/mcp as a remote MCP server. The first call opens Clip Studio login, then one Approve. You do not paste an API key.

Does this use extra allowance?

No. Agents use the same monthly generation limit a human would. Paid jobs quote first. If the allowance is short, the tool returns HTTP 402 with requiredCredits and availableCredits. Call create_checkout_url with a priceId to open Stripe Checkout. After a 402, prefer Clip Pro $19/mo or Studio Elite $39/mo from get_account.offerCheckout. Optional source is stored as checkout_source. It does not take card data.

How does checkout work after a 402?

Call create_checkout_url with a priceId. After a 402, prefer Clip Pro $19/mo (price_1PsryR07fQ1sqleOUNzbksZh) or Studio Elite $39/mo (price_1Psrzg07fQ1sqleOVBf1tv1P). Those IDs are on get_account.offerCheckout. Do not use the Content Creator $9 default_price or Content Creator $19 as the site wall or post-value offers. It returns a Stripe Checkout URL, never /pricing, and does not take card data. Mixpanel checkout_initiated, checkout_completed, and checkout_abandoned are Stripe webhook / checkout-API analytics on that path, not MCP tools. checkout_completed properties include amount, plan, price_id, checkout_source, and user_id.

Can I review a Topic Short before generating it?

Yes. Ask your agent to preview the story, then edit narration, visual directions, and English Pexels search terms. Spoken narration is written to fill the length you pick — a 30-second short is about 30 seconds of voiceover with matching stock, not a short list padded with music. Search terms should name what that beat’s narration is saying, then the topic’s concrete nouns. Prefer on-topic action — faces, hands, and motion when they belong to that spoken line, not a reused talking-head clip. If a beat misses on Pexels, generate tries that line’s nouns first, then broader topic-near sports footage, then unused clips, then neutral scenery instead of failing, and still ships cached or synthesized last-resort clips if Pexels is down. It avoids repeating the same clip across shots when other footage exists. Captions use the same seven looks as Story — pass captionStyle: spotlight (default), impact, highlighter, editorial, boxed, kicker, or off. Transition mode defaults to Dynamic; Classic and Off cuts are available. Talking Shorts keep their own captionMode (Current karaoke, Off, or Phrase; MCP is ungated). Those choices do not change this month’s generation limit. You can also generate directly from a topic.

What are Opening hooks?

Opening hooks are proven script openers — Problem, Curiosity, Trust, or Niche. The workspace picker is hidden. list_hook_bank returns the catalog (id hook_bank). Pass hookTemplateId and optional hookBlanks, or fill the [brackets] yourself. It seeds the topic or brief. It is a script opening, not a caption look — captionStyle still defaults to Spotlight on Topic Shorts.

Can an agent make Part 2 of a Topic Short?

Yes. Pass recipeGenerationId (one of your earlier Topic Shorts) to quote_topic_short and generate_topic_short with a new topic. The new short reuses that short’s voice, caption look, transitions, format, frame size, and length unless the agent sets them. Use recipeSource same_style to reuse only the setup for an unrelated topic. It is quoted like any other short.

Can an agent edit a Topic Short after it is made?

Yes. edit_topic_short changes captions, music, or one shot (swap_shot with an alternate from get_topic_short) for free. Re-voicing a line (revoice) or re-rolling an AI shot (regenerate_shot) is quoted first with quote_topic_short_edit, like any job. Kind nl takes a plain instruction such as “make the hook punchier” and returns the steps it would take, with paid steps already quoted. Each change makes a new version; poll get_topic_short. A public page stays on the version you published until you publish again.

Can an agent make a Topic Short from a link or in another language?

Yes. Pass sourceUrl (or up to three sourceUrls) or pasted sourceText to quote_topic_short and generate_topic_short. The script keeps only claims it can cite, and get_topic_short returns the sources shown on the short’s Sources card. language takes en, es, pt, de, fr, or hi (Hindi captions use a Devanagari font). aspectRatio takes 9:16, 16:9, or 1:1, and storyFormat covers all ten formats.

Can an agent run a Topic Shorts series?

Yes. save_topic_short_style saves a finished short’s setup with an optional intro and outro line. create_topic_short_series pairs a style with a niche, and queue_topic_short_episodes adds or proposes episodes. Generate an approved episode by passing its seriesEpisodeId to quote_topic_short and generate_topic_short. Each episode is quoted like any other short.

Can an agent use a recurring host or my cloned voice?

Yes. Pass hostNarratorId (and optionally hostLayout) for a recurring on-screen host, or voiceCloneId from list_topic_short_voice_clones to narrate in your cloned voice. Enrolling a clone needs a voice recording and spoken consent, so it is done on the website. Shorts in a cloned voice carry an AI-voice disclosure.

Can an agent get a title, caption, and hashtags for posting?

Yes. get_topic_short returns a posting pack — title, caption, and hashtags — for a finished Topic Short. export_topic_short makes a version without music (to add a trending sound in the app), a version without burned-in captions, SRT or VTT subtitles, or the cover frame. Exports are free.

How does an agent continue my story?

Say “continue my story.” The agent loads the project with get_storyboard (omit projectId to list recent ones, or create_storyboard if it is new), calls generate_storyboard_part with that projectId to write the next part, then render_storyboard to film it. Poll get_storyboard. The same characters, theme, and voice carry over. Paste the full story once; generate the next part your plan covers and come back later to continue. Do not start a second project for the next part. Story burns its own captions from the narration: pass captionStyle on create_storyboard or render_storyboard — spotlight (default), impact, highlighter, editorial, boxed, kicker, or off. Topic Shorts take the same captionStyle values. It does not change the quote.

How does an agent make a Character Film?

Call list_character_film_catalog, then plan_character_film with a topic, narrator, and length. The narrator is the whole character — its look and voice are used; there is no separate look or voice choice. generate_character_film films the opening (it quotes range opening when quoteId is omitted). Poll get_character_film. The opening is at most 8 seconds. After the opening is completed, continue_character_film films the rest under the same plan as the site. Subtitles are burned automatically — do not pass captionStyle. Submit and poll; do not wait on generate for the full render.

Can the agent post my video to YouTube, Instagram, or TikTok?

No. MCP has no YouTube, Instagram, or TikTok publish tools. Continue my story with generate_storyboard_part and render_storyboard. To share a finished clip, publish_generation makes a public Clip Studio page at /p/{id}.

Can the agent use Agentic Studio chat?

No. Agentic Studio stays a browser chat. Agents call the same product APIs that studio already uses, not the AG-UI stream.

Can an agent train my own Paint Lab style?

Yes. Call quote_paint_lab_style_training with a style name and 8 to 20 of your Paint Lab paintings (the project id from each painting’s link), then train_paint_lab_style with that quoteId. Poll get_paint_lab_trained_style until it is ready; training takes a few minutes and a failed training returns its allowance. Then pass trainedStyleId to quote_paint_lab or generate_paint_lab to finish or edit new work in your style. Drawing stays on the website.

Ready when your agent is

Give your agent a studio.

One URL, one Approve, and every public Clip Studio job is a sentence away.

https://clipstudio.ai/api/mcp