MCP server live

Built for AI agents

Autostud turns text, links and media into finished, rendered short-form videos: quizzes, rankings, karaoke, subtitled clips, faceless narration and AI music. Every part of it is callable -- there is no step that requires a human to click something in a dashboard.

Model Context Protocol endpoint
https://autostud.ai/api/mcp

Bearer <api key>, or `?key=<api key>` on the URL for clients that only accept a URL.

75
callable actions
22
resources
46
spend credits
10
MCP tools

Connect your client

No SDK, no code generation. One URL and a key.

Claude Code
claude mcp add --transport http autostud https://autostud.ai/api/mcp --header "Authorization: Bearer sk_live_..."
Claude Desktop / claude.ai
Settings > Connectors > Add custom connector > https://autostud.ai/api/mcp?key=sk_live_...
Cursor
{"mcpServers":{"autostud":{"url":"https://autostud.ai/api/mcp?key=sk_live_..."}}}
OpenAI Responses API
{"type":"mcp","server_label":"autostud","server_url":"https://autostud.ai/api/mcp","headers":{"Authorization":"Bearer sk_live_..."}}

Prefer plain HTTP? The same key works on https://autostud.ai/api/v1. The contract is published as OpenAPI.

The first five calls

From an empty workspace to a finished mp4.

  1. 1

    Check the workspace and its credit balance.

    MCP whoami

    REST GET /api/v1/me

  2. 2

    Find out what this key may touch. Never guess a field name -- ask.

    MCP catalog, then describe { resource: "videos" }

    REST GET /api/v1 (resources + actions the key is scoped for)

  3. 3

    Create the video. One action builds a full timeline composition.

    MCP run_action { action: "videos.create", input: { ... } }

    REST POST /api/v1/actions/videos.create

  4. 4

    Render it. Runs on a worker VM and spends credits.

    MCP run_action { action: "renders.create", input: { video_id } }

    REST POST /api/v1/actions/renders.create

  5. 5

    Wait for the mp4 -- poll, or let a signed webhook tell you.

    MCP list_records { resource: "renders" } until status is done

    REST GET /api/v1/renders?video_id=... or subscribe to render.completed

What you should know first

The things that make an integration behave well instead of merely work.

  • Renders are asynchronous and cost credits. A render takes minutes, not seconds -- poll, or use a webhook, never block.
  • Actions flagged `spends_credits` debit the workspace. `GET /api/v1/me` returns the balance; a 402 `insufficient_credits` carries the shortfall.
  • Every write accepts an `Idempotency-Key` header, kept 24h. Retry with the same key instead of creating a second video.
  • Errors are stable machine codes with a `hint` field naming the call that fixes them. Branch on `error.code`, never on the message.
  • Rate limits and monthly quotas are per key and reported on every response via `X-RateLimit-*`; a 429 carries `Retry-After`.
  • Test the whole path for free with an `sk_test_` key: real auth, real validation, no writes, no credits, no webhooks.
  • Any page on this site can be fetched as Markdown -- send `Accept: text/markdown`, or append `.md` to the URL.

Every failure carries a machine code, a hint naming the call that fixes it, and whether retrying can help. Full error reference.

75 actions

Everything the platform does, callable in one request each.

renders3
  • renders.createcreditsQueues a render for a video and returns the render job.
  • renders.listRender jobs with their status and output URLs.
  • renders.deleteDeletes a render job and its output reference.
videos4
  • videos.createCreates a video through the dashboard controller: applies the template, defaults and workspace stamping.
  • videos.updateValidated update of a video document (same Joi schema as the editor).
  • videos.generate_layer_audiocreditsGenerates the audio of one timeline layer and syncs its timing.
  • videos.launch_flowcreditsRuns the end-to-end video flow (generation pipeline) for a video.
timeline7
  • timeline.generate_audiocreditsGenerates the voice-over of a block/group and runs Whisper alignment.
  • timeline.generate_questionscreditsWrites quiz questions for a video from a topic or keyword.
  • timeline.sync_voiceRecomputes block durations from the audio sequence.
  • timeline.whisper_analyzecreditsWord-level transcription and timing for an audio file.
  • timeline.analyze_subtitlescreditsBuilds subtitle groups from a transcription.
  • timeline.translate_subtitlescreditsTranslates a subtitle track into a target language.
  • timeline.hydrate_tu_preferescreditsFills a would-you-rather timeline with generated questions and media.
subtitles1
  • subtitles.generatecreditsTranscribes a media URL with Whisper, marks the words to emphasise and writes the subtitle track + layer onto the video. One call between `videos.create` and `renders.create`.
images1
  • images.generatecreditsRuns an image agent and bills the workspace.
videos_ai2
  • videos_ai.generatecreditsRuns a video agent (Veo, Kling, Sora, Seedance...) and bills the workspace.
  • videos_ai.extendcreditsExtends a generated video by another segment.
agents2
  • agents.executecreditsRuns any configured agent with its prompt template and variables.
  • agents.executionsHistory of agent runs with their outputs.
generations1
  • generations.launchcreditsThe playground pipeline: prompt in, image or video out, billed and stored.
music2
  • music.generatecreditsCreates a Suno song from a prompt, lyrics or a style brief.
  • music.get_taskStatus and tracks of a music generation.
characters2
  • characters.generate_imagecreditsGenerates a consistent image of a character.
  • characters.smart_variantscreditsGenerates a batch of consistent variants for a character.
faceless8
  • faceless.generate_storycreditsWrites the script of a faceless video from a prompt.
  • faceless.generate_outlinecreditsProduces the act/scene outline before the full script.
  • faceless.parse_scriptcreditsSplits a script into scenes ready for the faceless engine.
  • faceless.generate_audiocreditsGenerates the voice-over of one or more scenes.
  • faceless.generate_videocreditsGenerates the visual of a faceless scene (image or video model).
  • faceless.check_statusStatus of a running faceless scene generation.
  • faceless.analyze_urlcreditsExtracts a usable brief from an article or video URL.
  • faceless.detect_characterscreditsFinds recurring characters and proposes consistent prompts.
smart_groups3
  • smart_groups.generatecreditsBuilds a smart group (quiz, ranking, dialogue...) inside a video.
  • smart_groups.actioncreditsExecutes one of a smart group's declared actions.
  • smart_groups.create_qcmCreates a multiple-choice question group from a question set.
tools10
  • tools.generate_from_promptcreditsThe one-shot tool: a prompt in, a ready video project out.
  • tools.image_to_promptcreditsTurns an image into a reusable generation prompt.
  • tools.remove_backgroundcreditsReturns a cut-out version of the image.
  • tools.image_modificationcreditsApplies an instruction-based edit to an image.
  • tools.image_cropCrops or reframes an image to a target format.
  • tools.reddit_post_to_videocreditsFetches a Reddit post and turns it into a video project.
  • tools.youtube_to_karaokecreditsBuilds a karaoke video composition from a YouTube URL.
  • tools.read_commentscreditsFetches the comments of a TikTok or Instagram post.
  • tools.write_lyricscreditsTurns comments into song lyrics, each line keeping its comment id.
  • tools.variant_analyzecreditsAnalyses a media variant and reports what it contains.
slideshows2
  • slideshows.generatecreditsGenerates the visuals of every pending slide.
  • slideshows.exportcreditsExports the finished slideshow.
flows2
  • flows.executecreditsRuns an automation flow and returns its execution.
  • flows.executionsExecution history of a flow.
publishing2
  • publishing.schedule_postcreditsQueues a video for publication on a connected account.
  • publishing.calendarScheduled posts grouped by day.
account3
  • account.creditsCurrent credit balance of the workspace.
  • account.limitsPlan limits and current consumption.
  • account.credit_historyCredit movements, newest first.
image_agents6
  • image_agents.listImage agents configured for the workspace.
  • image_agents.createCreates an image agent with its model and default parameters.
  • image_agents.updateUpdates an image agent.
  • image_agents.deleteDeletes an image agent.
  • image_agents.generatecreditsStarts an image generation job. Poll `image_agents.status` for the result.
  • image_agents.statusStatus of one or more image generation jobs.
app_screenshots5
  • app_screenshots.listApp-screenshot projects of the workspace.
  • app_screenshots.createCreates an app-screenshot project.
  • app_screenshots.updateUpdates an app-screenshot project.
  • app_screenshots.deleteDeletes an app-screenshot project.
  • app_screenshots.generatecreditsGenerates one app-store screenshot from a project.
voice_projects4
  • voice_projects.listBulk text-to-voice projects.
  • voice_projects.createCreates a bulk text-to-voice project.
  • voice_projects.updateUpdates a bulk text-to-voice project.
  • voice_projects.deleteDeletes a bulk text-to-voice project.
playground2
  • playground.random_promptcreditsGenerates an image prompt from a theme, for exploration.
  • playground.image_to_promptcreditsTurns an image into the prompt that would produce it.
instructions2
  • instructions.generatecreditsWrites the instruction set driving a generation from a brief.
  • instructions.generate_with_newscreditsSame, seeded with fresh news on the topic.
assets1
  • assets.static_libraryThe platform-provided asset library (backgrounds, overlays, sounds).

22 resources

Read and written with the standard CRUD verbs, scoped per key.

videos

Video projects with their timeline, blocks and generation settings.

list - get - create - update - delete

folders

Folders organising videos and playground generations.

list - get - create - update - delete

assets

Files uploaded to the workspace library.

list - get - create - delete

characters

Recurring characters with their visual and voice configuration.

list - get - create - update - delete

agents

Image and video generation agents.

list - get - create - update - delete

flows

Automation flows: nodes, edges and variables.

list - get - create - update - delete

slideshows

Slideshow projects and their slides.

list - get - create - update - delete

templates

Saved video templates.

list - get - create - update - delete

video_styles

Reusable style presets applied to timelines.

list - get - create - update - delete

smart_group_configs

Custom smart-group definitions used by the timeline editor.

list - get - create - update - delete

custom_video_types

User-defined video types available in the editor.

list - get - create - update - delete

generations

Every AI generation billed to the workspace: image, video, audio, music.

list - get

music

AI song generations and their tracks.

list - get

scheduled_posts

Posts queued for publication on connected social accounts.

list - get - create - update - delete

social_accounts

Connected publishing destinations. Read-only: connect them from the dashboard.

list - get

renders

Render jobs and their output files. Start one with the `renders.create` action — it charges credits.

list - get

voices

The voice catalog: the shared global library plus the workspace and personal voices.

list - get

character_tags

Tags used to organise characters.

list - get - create - update - delete

agent_executions

History of agent runs with their prompt, variables and result.

list - get

flow_executions

Flow runs: status, node states, execution path and credits consumed.

list - get

credit_transactions

Every credit movement of the workspace: what was charged, by whom, for what.

list - get

playground_generations

Images and videos generated from the playground gallery.

list - get - update - delete

Read this site as Markdown

Because HTML is a bad way to hand a page to a model.

curl -H "Accept: text/markdown" https://autostud.ai/tools/tweet-to-video
curl https://autostud.ai/tools/tweet-to-video.md
curl "https://autostud.ai/tools/tweet-to-video?format=md"

Same page, roughly fifty times fewer bytes, with the layout chrome removed. Works on every public URL on this domain.

Connect in under a minute

Mint a key, paste the URL into your client, call whoami.

Get your MCP URL