Loading...
Preparing your workspace
Loading...
Preparing your workspace
Promvie for Developers
Connect Claude Code, Cowork, OpenClaw, or any MCP-speaking agent to Promvie and drive the entire pipeline — idea, script, cast, storyboards, video, final render — programmatically. Everything your agent generates spends your normal credit balance and lands in your dashboard like any other movie.
No key needed. In Claude, open Settings, then Connectors, choose Add custom connector, name it Promvie and paste https://promvie.com/api/mcp. Claude opens a Promvie sign-in and approval page; after you allow it, the connector is ready. It shows up as a key on your API keys page, and deleting that key disconnects it. Any MCP client that supports OAuth sign-in connects the same way.
promvie_sk_… and is shown exactly once — store it like a password. Requests authenticate with Authorization: Bearer promvie_sk_….claude mcp add promvie --transport http https://promvie.com/api/mcp \ --header "Authorization: Bearer promvie_sk_YOUR_KEY"
https://promvie.com/api/mcp — Streamable HTTP transport, 40+ tools. Sign in with OAuth (Claude.ai, Claude Desktop and other OAuth-capable MCP clients) or send a bearer API key (Claude Code, Claude Cowork, OpenClaw, custom agents built on the MCP SDKs).
Create projects and set the concept that unlocks the pipeline.
list_movies · create_movie · update_idea · update_movie_title · update_movie_aspect_ratio
Observe what exists, resolve "scene 5" or a character name to real ids, and read nextStep.
get_pipeline_state · list_scenes · list_shots · list_characters · list_locations · list_storyboards · find_entity
Each returns a jobId immediately; identical in-flight jobs are deduped and reused.
enqueue_generate_script · enqueue_detect_characters · enqueue_generate_images · enqueue_generate_storyboards · enqueue_generate_shots · enqueue_generate_scene_video · enqueue_generate_shot_image · enqueue_revise_scene · enqueue_generate_cover · enqueue_generate_poster
Direct, synchronous edits to the script, shots, and cast.
update_scene · update_shot · update_character · update_location · update_storyboard_prompt · set_audio_preferences · set_render_preferences · delete_scene · delete_shot · delete_character · delete_location
Track background work and export the final MP4.
list_running_jobs · cancel_job · render_movie · cancel_render · get_render_status
The async model: enqueue_* tools return a jobId immediately and run in the background — generation takes minutes. Agents poll get_pipeline_state, whose nextStep field says what to enqueue next. Re-enqueueing an identical in-flight job is safe: the server dedupes and returns the existing job.
Prefer plain HTTP? The same API key works on the REST routes. This is the complete nothing-to-finished-movie sequence:
# 1. Create a movie
curl -s https://promvie.com/api/movies -X POST \
-H "Authorization: Bearer $PROMVIE_KEY" -H "Content-Type: application/json" \
-d '{"title": "The Lighthouse Keeper"}'
# → { "movie": { "id": "<movieId>", ... } }
# 2. Seed the idea (logline + outline + style unlock the pipeline)
curl -s https://promvie.com/api/movies -X PATCH \
-H "Authorization: Bearer $PROMVIE_KEY" -H "Content-Type: application/json" \
-d '{"id": "<movieId>", "metadata": {"idea": {
"logline": "A lonely keeper discovers the light summons more than ships.",
"outline": "Three-act short: routine, discovery, sacrifice.",
"style": "Moody 1920s noir, heavy fog, desaturated blues."}}}'
# 3. Ask the pipeline what to do next
curl -s "https://promvie.com/api/studio/pipeline-state?movieId=<movieId>" \
-H "Authorization: Bearer $PROMVIE_KEY"
# → { "state": { "nextStep": "generate_script", ... } }
# 4. Enqueue it (repeat 3 → 4 until nextStep is null)
curl -s https://promvie.com/api/agent/jobs/enqueue -X POST \
-H "Authorization: Bearer $PROMVIE_KEY" -H "Content-Type: application/json" \
-d '{"kind": "generate_script", "movieId": "<movieId>", "input": {}}'
# → { "jobId": "...", "reused": false } (async — poll step 3)
# 5. Render the final movie
curl -s https://promvie.com/api/render-video -X POST \
-H "Authorization: Bearer $PROMVIE_KEY" -H "Content-Type: application/json" \
-d '{"movieId": "<movieId>"}'
# 6. Poll for the finished MP4
curl -s "https://promvie.com/api/render-video?movieId=<movieId>" \
-H "Authorization: Bearer $PROMVIE_KEY"
# → { "status": "completed", "videoUrl": "https://..." }Series are folders of seasons whose episodes are ordinary movies — with two structural guarantees the pipeline enforces for you: one cast shared by every episode (reference portraits carry across, so faces stay consistent), and a season-level premise + visual style every episode inherits. The script generator automatically composes each episode against the season premise and a “previously on” recap of earlier episodes. Series need the Director's Choice plan: without it, the tools that create or produce a series return series_plan_required.
create_series — title + season-1 premise/style (defaults to 9:16 vertical, the episodic format).create_episode — returns a movieId; run the normal movie pipeline on it. Episodes skip the cast step for characters the series already has; a new character the script introduces joins the shared cast, with a portrait and a voice, before the storyboards.upsert_season / get_series — shape the arc; read seasons, shared cast, and episode statuses.To produce a whole season with one instruction, call plan_season, confirm the episode plan and the credit estimate with your user, then start_season_generation: the showrunner creates and produces the episodes one after another, and get_series shows the progress.
Paste this into your project's AGENTS.md (or CLAUDE.md) so your agent knows the etiquette without being told each session:
## Promvie (AI movie generation) Promvie generates complete AI movies through a staged pipeline. It is connected via MCP (server name: promvie). Rules: - Movies are the root object: create_movie / list_movies first; every other tool takes that movieId. - Set the idea before anything else: update_idea with logline + outline + style. - Then follow the pipeline: get_pipeline_state returns "nextStep" — enqueue it, poll, repeat. Order: script → characters → character images and voices → storyboards → shots → videos (enqueue_generate_scene_video, one call per scene; every scene renders as a single continuous video). - Every enqueue_* tool is ASYNC and returns a jobId immediately. Poll list_running_jobs or get_pipeline_state every 15–30s. NEVER re-enqueue while an identical job is pending/running (the server dedupes and reuses anyway). - render_movie stitches the final MP4; poll get_render_status for the URL. - Generation SPENDS the account's prepaid credits (images ~1-10, video ~12-30 per second). Ask the user before enqueueing video-generation or render steps, and tell them roughly what it will cost. - A free account (never bought credits) renders ONE short scene video as a preview. After that, video calls fail with "Free preview used": stop and tell the user to buy a credit pack or subscribe at https://promvie.com/dashboard/billing. Do not retry. - On "insufficient credits": stop and tell the user to top up at https://promvie.com/dashboard/billing. Do not retry.