Future Video Render
Use this skill to create Future Video Studio renders through the hosted MCP server at https://mcp.future.video/mcp.
The MCP supports two billing paths:
- Account mode: send
X-FVS-Agent-Key or configure FVS_AGENT_API_KEY; renders charge the owning Future Video Studio account wallet and require explicit user approval before submission.
- Pay-per-render mode: omit the API key, create a Link payment quote, pay the returned
payment_url, then poll the claim-token status URL.
Fallback to the direct Agent API at https://app.future.video/api/agent only when the MCP client is unavailable or when a local-file workflow needs the bundled helper script.
Best Fits
- multi-shot scene renders from a screenplay or creative brief
- custom productions that combine uploaded references, PDFs, and brand assets
- soundtrack-led music videos built around an uploaded song
- no-account one-off renders paid through Link for agents
- agent workflows that need a final signed video URL instead of loose clip outputs
Before You Start
- Connect to the MCP manifest at
https://mcp.future.video/server.json or the remote endpoint at https://mcp.future.video/mcp.
- If
FVS_AGENT_API_KEY is available, treat it as a wallet-backed credential, not blanket permission to render.
- Before account-mode submission, show the user the render summary, requested duration/resolution, any available estimate or budget cap, and ask for explicit approval to spend FVS wallet credits.
- If no key is available or the user wants a visible price before paying, use pay-per-render mode with
fvs_create_paid_render_quote.
- Default the app origin to
https://app.future.video unless a trusted local or staging FVS environment is explicitly configured.
- Never ask the user for raw card details. Link payment authorization must happen through the returned Link/MPP payment URL or an approved agent payment tool.
Quick Workflow
- Build a render request object that matches the Future Video Studio payload.
- Choose the billing path:
- use
fvs_submit_render for account/API-key mode only after explicit user approval to spend wallet credits
- use
fvs_create_paid_render_quote for no-account pay-per-render mode
- For assets:
- remote MCP clients should prefer public HTTPS
upload_urls
- local
upload_files only work when the MCP server runs on the same machine as the agent
- paid quote mode supports text-only requests and public HTTPS
upload_urls, not local multipart file paths
- Poll with the MCP status tools until the job reaches a terminal or review state.
- Return
final_video_url when available, or explain the blocking error if the render halts or fails.
Example Prompts
Use $future-video-render to turn this 24-second product teaser brief and these brand reference files into a polished three-shot scene, then poll until the final video URL is ready.
Use $future-video-render to create a moody four-shot music video from the uploaded track and lead character reference, keeping continuity consistent across the whole piece.
Use $future-video-render without an FVS account key. Create a paid quote, let me approve the Link payment, then retrieve the final video.
Use $future-video-render to submit a custom render that uses the uploaded style guide PDF, logo stills, and mood board images, then give me the finished signed video URL.
Preferred MCP Tools
Use the MCP tools first:
fvs_submit_render: submit an account/API-key render
fvs_create_paid_render_quote: create a no-account Link quote
fvs_get_render_status: check account render status by project_id or status_url
fvs_get_paid_render_status: check paid quote/render status by status_url or quote_id plus claim_token
fvs_cancel_render: cancel an account-owned running render
fvs_download_final_video: save a completed signed video URL
Account render:
{
"tool": "fvs_submit_render",
"arguments": {
"request": {
"name": "Archive corridor test",
"project_mode": "scene",
"screenplay": "Shot 1: A woman enters a glowing archive corridor. Shot 2: She reaches toward a moving photograph. Shot 3: She steps through into a sunlit memory chamber.",
"instructions": "Create exactly three cinematic shots totaling about 24 seconds. Keep the subject visually consistent. No subtitles or text overlays.",
"shot_count": 3,
"scene_target_duration_seconds": 24,
"visual_style_preset": "realistic_cinematic",
"video_resolution": "720p"
},
"poll_until_complete": false
}
}
Paid quote render:
{
"tool": "fvs_create_paid_render_quote",
"arguments": {
"request": {
"name": "Paid quote test",
"project_mode": "scene",
"screenplay": "Shot 1: A glass airship drifts over a frozen city.",
"shot_count": 1,
"scene_target_duration_seconds": 4,
"video_resolution": "720p"
}
}
}
After a paid quote is created:
- Keep the returned
payment_url, status_url, quote_id, and claim_token.
- Ask the user's Link-capable payment surface to approve/pay
payment_url.
- Poll with
fvs_get_paid_render_status using status_url, or quote_id plus claim_token.
- Return
final_video_url after the paid render completes.
Direct API Fallback
Use the bundled helper script only when MCP is unavailable or when account mode needs local multipart upload from the same filesystem. It handles multipart upload, auth headers, polling, and cancel/status URLs.
Submit and poll:
python "{baseDir}/scripts/future_video_render.py" submit `
--request-file request.json `
--file character.png `
--file soundtrack.wav `
--poll `
--write-json result.json
Check status later:
python "{baseDir}/scripts/future_video_render.py" status --project-id proj_api_123
Cancel a running job:
python "{baseDir}/scripts/future_video_render.py" cancel --project-id proj_api_123
If python is unavailable, read {baseDir}/references/api.md and use a direct HTTP request with the same endpoints and headers.
Request Design Rules
- In account mode, always get explicit user approval before submitting a wallet-backed render, then send
X-FVS-Agent-Key through the MCP secret header, local MCP environment, or direct API header.
- In paid quote mode, omit
X-FVS-Agent-Key and use fvs_create_paid_render_quote.
- For direct account API fallback calls, send the render body as
multipart/form-data with:
request_json: the JSON payload string
- repeated
files: optional uploaded files
- Use
project_mode of music, scene, or custom.
- Prefer status polling over blocking waits. Use
wait_for_completion_seconds: 0 for direct API calls unless the user explicitly wants a short blocking wait.
- For uploaded soundtrack flows, set
music_workflow to uploaded_track and upload at least one audio file.
- Keep
scene_target_duration_seconds within 4 to 600.
- Keep
shot_count within 1 to 64.
- Treat
final_video_url as a signed URL that may expire. Return it promptly.
Billing Alignment
- This skill does not introduce a separate API-only pricing model.
- Account API keys belong to a specific Future Video Studio account and charge that account's wallet balance.
- Do not submit account-mode renders merely because an API key is configured. Confirm the requested job and user-approved budget or spending intent first.
- Pay-per-render quotes use the same Future Video Studio credit estimate and return
amount_cents, currency, and credits_quoted before payment.
- Future Video Studio applies the account's saved pipeline defaults before account renders run, so agent renders follow the same project configuration and credit model as in-product renders.
- Do not invent alternate pricing, discounts, or token math. Use the quote response or the account render status.
Asset Handling
- When uploads need labels or purposes, add
assets[] entries in request_json.
- Each
assets[] entry should include:
filename
- optional
label
- optional
purpose
filename must match the basename of the uploaded file.
- Use uploads for image references, mood boards, soundtrack files, source video, PDFs, or other supporting documents.
- Confirm that local files are intended to be shared with Future Video Studio before uploading them.
- Use public HTTPS
upload_urls for remote MCP and paid quote mode.
- Use local
upload_files only when the MCP server runs where the files exist, or use the direct helper script in account mode.
Output Handling
After a submit or status check, inspect:
quote_id
claim_token
payment_url
status
current_stage
is_running
final_video_url
last_error
Treat the job as terminal when:
status is completed or failed, or
current_stage is halted_for_review, or
- the job is no longer running and there is no active queued/running state
When the response includes a finished final_video_url, give that URL back to the user with a short summary of what was rendered.
Safety And Recovery
- Treat HTTP 402 from
render-quotes as expected quote data, not a failure.
- Do not guess API keys, claim tokens, or payment credentials.
- Do not send
X-FVS-Agent-Key to arbitrary hosts. The bundled helper only permits https://app.future.video by default and rejects full status/cancel URLs outside the configured FVS Agent API origin.
- Use
project_id-derived status and cancel calls when possible. If using full status_url or cancel_url, use only URLs returned by Future Video Studio.
- For trusted local or staging FVS backends, the helper requires an explicit custom-host opt-in with
--allow-custom-host or FVS_ALLOW_CUSTOM_AGENT_HOST=1.
- Do not retry paid quote payment blindly if approval fails; ask the payment surface or user to resolve the approval.
- Save
status_url and claim_token from paid quote mode before payment so the result can be retrieved later.
- If a signed
final_video_url expires, re-check status with the MCP status tool to obtain a fresh result URL.
References
Read {baseDir}/references/api.md when you need:
- MCP endpoint and tool reminders
- the exact endpoint list
- payload field reminders
- example request bodies for
scene, music, or custom
- OpenClaw config examples for account mode and paid quote mode
External references:
https://mcp.future.video/server.json
https://mcp.future.video/.well-known/mcp-server.json
https://future.video/api-docs
1---2name: future-video-render3description: Create polished multi-shot videos with the Future Video Studio MCP, using either an account API key or no-account Link pay-per-render quotes. Use when an OpenClaw agent needs to submit a screenplay-driven render, quote and pay for a one-off render, attach public or local assets, poll until completion, cancel a running account job, download the final video, or return a finished signed video URL.4---56# Future Video Render78Use this skill to create Future Video Studio renders through the hosted MCP server at `https://mcp.future.video/mcp`.910The MCP supports two billing paths:1112- Account mode: send `X-FVS-Agent-Key` or configure `FVS_AGENT_API_KEY`; renders charge the owning Future Video Studio account wallet and require explicit user approval before submission.13- Pay-per-render mode: omit the API key, create a Link payment quote, pay the returned `payment_url`, then poll the claim-token status URL.1415Fallback to the direct Agent API at `https://app.future.video/api/agent` only when the MCP client is unavailable or when a local-file workflow needs the bundled helper script.1617## Best Fits1819- multi-shot scene renders from a screenplay or creative brief20- custom productions that combine uploaded references, PDFs, and brand assets21- soundtrack-led music videos built around an uploaded song22- no-account one-off renders paid through Link for agents23- agent workflows that need a final signed video URL instead of loose clip outputs2425## Before You Start26271. Connect to the MCP manifest at `https://mcp.future.video/server.json` or the remote endpoint at `https://mcp.future.video/mcp`.282. If `FVS_AGENT_API_KEY` is available, treat it as a wallet-backed credential, not blanket permission to render.293. Before account-mode submission, show the user the render summary, requested duration/resolution, any available estimate or budget cap, and ask for explicit approval to spend FVS wallet credits.304. If no key is available or the user wants a visible price before paying, use pay-per-render mode with `fvs_create_paid_render_quote`.315. Default the app origin to `https://app.future.video` unless a trusted local or staging FVS environment is explicitly configured.326. Never ask the user for raw card details. Link payment authorization must happen through the returned Link/MPP payment URL or an approved agent payment tool.3334## Quick Workflow35361. Build a render request object that matches the Future Video Studio payload.372. Choose the billing path:38 - use `fvs_submit_render` for account/API-key mode only after explicit user approval to spend wallet credits39 - use `fvs_create_paid_render_quote` for no-account pay-per-render mode403. For assets:41 - remote MCP clients should prefer public HTTPS `upload_urls`42 - local `upload_files` only work when the MCP server runs on the same machine as the agent43 - paid quote mode supports text-only requests and public HTTPS `upload_urls`, not local multipart file paths444. Poll with the MCP status tools until the job reaches a terminal or review state.455. Return `final_video_url` when available, or explain the blocking error if the render halts or fails.4647## Example Prompts4849- `Use $future-video-render to turn this 24-second product teaser brief and these brand reference files into a polished three-shot scene, then poll until the final video URL is ready.`50- `Use $future-video-render to create a moody four-shot music video from the uploaded track and lead character reference, keeping continuity consistent across the whole piece.`51- `Use $future-video-render without an FVS account key. Create a paid quote, let me approve the Link payment, then retrieve the final video.`52- `Use $future-video-render to submit a custom render that uses the uploaded style guide PDF, logo stills, and mood board images, then give me the finished signed video URL.`5354## Preferred MCP Tools5556Use the MCP tools first:5758- `fvs_submit_render`: submit an account/API-key render59- `fvs_create_paid_render_quote`: create a no-account Link quote60- `fvs_get_render_status`: check account render status by `project_id` or `status_url`61- `fvs_get_paid_render_status`: check paid quote/render status by `status_url` or `quote_id` plus `claim_token`62- `fvs_cancel_render`: cancel an account-owned running render63- `fvs_download_final_video`: save a completed signed video URL6465Account render:6667```json68{69 "tool": "fvs_submit_render",70 "arguments": {71 "request": {72 "name": "Archive corridor test",73 "project_mode": "scene",74 "screenplay": "Shot 1: A woman enters a glowing archive corridor. Shot 2: She reaches toward a moving photograph. Shot 3: She steps through into a sunlit memory chamber.",75 "instructions": "Create exactly three cinematic shots totaling about 24 seconds. Keep the subject visually consistent. No subtitles or text overlays.",76 "shot_count": 3,77 "scene_target_duration_seconds": 24,78 "visual_style_preset": "realistic_cinematic",79 "video_resolution": "720p"80 },81 "poll_until_complete": false82 }83}84```8586Paid quote render:8788```json89{90 "tool": "fvs_create_paid_render_quote",91 "arguments": {92 "request": {93 "name": "Paid quote test",94 "project_mode": "scene",95 "screenplay": "Shot 1: A glass airship drifts over a frozen city.",96 "shot_count": 1,97 "scene_target_duration_seconds": 4,98 "video_resolution": "720p"99 }100 }101}102```103104After a paid quote is created:1051061. Keep the returned `payment_url`, `status_url`, `quote_id`, and `claim_token`.1072. Ask the user's Link-capable payment surface to approve/pay `payment_url`.1083. Poll with `fvs_get_paid_render_status` using `status_url`, or `quote_id` plus `claim_token`.1094. Return `final_video_url` after the paid render completes.110111## Direct API Fallback112113Use the bundled helper script only when MCP is unavailable or when account mode needs local multipart upload from the same filesystem. It handles multipart upload, auth headers, polling, and cancel/status URLs.114115Submit and poll:116117```powershell118python "{baseDir}/scripts/future_video_render.py" submit `119 --request-file request.json `120 --file character.png `121 --file soundtrack.wav `122 --poll `123 --write-json result.json124```125126Check status later:127128```powershell129python "{baseDir}/scripts/future_video_render.py" status --project-id proj_api_123130```131132Cancel a running job:133134```powershell135python "{baseDir}/scripts/future_video_render.py" cancel --project-id proj_api_123136```137138If `python` is unavailable, read `{baseDir}/references/api.md` and use a direct HTTP request with the same endpoints and headers.139140## Request Design Rules141142- In account mode, always get explicit user approval before submitting a wallet-backed render, then send `X-FVS-Agent-Key` through the MCP secret header, local MCP environment, or direct API header.143- In paid quote mode, omit `X-FVS-Agent-Key` and use `fvs_create_paid_render_quote`.144- For direct account API fallback calls, send the render body as `multipart/form-data` with:145 - `request_json`: the JSON payload string146 - repeated `files`: optional uploaded files147- Use `project_mode` of `music`, `scene`, or `custom`.148- Prefer status polling over blocking waits. Use `wait_for_completion_seconds: 0` for direct API calls unless the user explicitly wants a short blocking wait.149- For uploaded soundtrack flows, set `music_workflow` to `uploaded_track` and upload at least one audio file.150- Keep `scene_target_duration_seconds` within `4` to `600`.151- Keep `shot_count` within `1` to `64`.152- Treat `final_video_url` as a signed URL that may expire. Return it promptly.153154## Billing Alignment155156- This skill does not introduce a separate API-only pricing model.157- Account API keys belong to a specific Future Video Studio account and charge that account's wallet balance.158- Do not submit account-mode renders merely because an API key is configured. Confirm the requested job and user-approved budget or spending intent first.159- Pay-per-render quotes use the same Future Video Studio credit estimate and return `amount_cents`, `currency`, and `credits_quoted` before payment.160- Future Video Studio applies the account's saved pipeline defaults before account renders run, so agent renders follow the same project configuration and credit model as in-product renders.161- Do not invent alternate pricing, discounts, or token math. Use the quote response or the account render status.162163## Asset Handling164165- When uploads need labels or purposes, add `assets[]` entries in `request_json`.166- Each `assets[]` entry should include:167 - `filename`168 - optional `label`169 - optional `purpose`170- `filename` must match the basename of the uploaded file.171- Use uploads for image references, mood boards, soundtrack files, source video, PDFs, or other supporting documents.172- Confirm that local files are intended to be shared with Future Video Studio before uploading them.173- Use public HTTPS `upload_urls` for remote MCP and paid quote mode.174- Use local `upload_files` only when the MCP server runs where the files exist, or use the direct helper script in account mode.175176## Output Handling177178After a submit or status check, inspect:179180- `quote_id`181- `claim_token`182- `payment_url`183- `status`184- `current_stage`185- `is_running`186- `final_video_url`187- `last_error`188189Treat the job as terminal when:190191- `status` is `completed` or `failed`, or192- `current_stage` is `halted_for_review`, or193- the job is no longer running and there is no active queued/running state194195When the response includes a finished `final_video_url`, give that URL back to the user with a short summary of what was rendered.196197## Safety And Recovery198199- Treat HTTP 402 from `render-quotes` as expected quote data, not a failure.200- Do not guess API keys, claim tokens, or payment credentials.201- Do not send `X-FVS-Agent-Key` to arbitrary hosts. The bundled helper only permits `https://app.future.video` by default and rejects full status/cancel URLs outside the configured FVS Agent API origin.202- Use `project_id`-derived status and cancel calls when possible. If using full `status_url` or `cancel_url`, use only URLs returned by Future Video Studio.203- For trusted local or staging FVS backends, the helper requires an explicit custom-host opt-in with `--allow-custom-host` or `FVS_ALLOW_CUSTOM_AGENT_HOST=1`.204- Do not retry paid quote payment blindly if approval fails; ask the payment surface or user to resolve the approval.205- Save `status_url` and `claim_token` from paid quote mode before payment so the result can be retrieved later.206- If a signed `final_video_url` expires, re-check status with the MCP status tool to obtain a fresh result URL.207208## References209210Read `{baseDir}/references/api.md` when you need:211212- MCP endpoint and tool reminders213- the exact endpoint list214- payload field reminders215- example request bodies for `scene`, `music`, or `custom`216- OpenClaw config examples for account mode and paid quote mode217218External references:219220- `https://mcp.future.video/server.json`221- `https://mcp.future.video/.well-known/mcp-server.json`222- `https://future.video/api-docs`