mcpserver.lol
registry/framesail
Connection check verified live · 20h ago

framesail

Create long-form YouTube videos end to end: script, storyboard, voiceover, final MP4.

Tools 72
GitHub stars
Installs / wk
Licence
Transport streamable-http
Last checked 20h ago

Tools & capabilities

72 tools

Read from the running server on 20h ago.

activate_script_version script_id*
Switch the project's active script to another saved version (ids come from get_script's version list — each generate_script run creates one; save_script edits the active ve…
add_music_track loopnamevolumeproject_id*start_framelibrary_track_id*
Add background music to the project from the audio library (find track ids with browse_audio_library, category="music"). Defaults loop the track under the whole video at be…
add_segment_sfx project_id*segment_number*library_track_id*
Attach a sound effect from the audio library to a segment (find track ids via browse_audio_library with category="sfx"). Re-run build_scenes to get it onto the timeline.
analyze_style can modify data style_id*
Re-run style analysis (after changing a style's inputs). Async — await_jobs(style_id=...) until the style_analysis job completes.
animate_segment voiceproject_id*segment_number*
Animate one segment in a single call: flip it to a generated video shot (keeping its rendered image as the clip's first frame) and START the clip render immediately. BILLS…
await_jobs read-only style_idproject_idtimeout_seconds
Block (server-side) until the scope has no pending/running jobs, or the timeout passes — use this instead of polling get_workflow_status yourself. Returns {done, jobs}. If…
browse_audio_library read-only moodgenresearchcategory
Browse the audio library for background music and sound effects. category: "music" | "sfx". Returns {tracks} — track ids feed add_music_track / add_segment_sfx. Zero matche…
build_scenes can modify data project_id*
Compile segments + assets + voiceover into the editor/render timeline (scenes). Run after segment assets are complete, before export. Returns a receipt — {scene_count, scen…
change_segment_type can modify data dry_runproject_id*carry_framemedia_sourcesegment_type*segment_number*
Change what a segment's base visual IS: a generated still ("image"), fetched real media (media_source="real" — a real photo for "image", stock b-roll footage for "video"),…
combine_segments can modify data keepdry_runproject_id*segment_number*with_segment_number*
Merge a segment with an adjacent one (segment numbers must be neighbors). keep: "this" | "other" — whose creative data survives: its assets are kept (rendered frame/clip ma…
create_asset name*asset_type*project_id*description
Manually add a character/environment/object the scan missed. asset_type: "character" | "environment" | "object". The description is the generation-facing spec of its look —…
create_channel name*description
Create a new channel — the container for projects and their reusable styles. Use when the user wants a fresh creative identity rather than adding to an existing channel.
create_project title*channel_id*descriptionvideo_format
Create a project. The description (the video concept/topic) seeds script generation, so write a meaningful one. Pass video_format='portrait' for a vertical video — every sh…
create_style name*inputspresetschannel_id*
Create a style. Two mutually exclusive paths: References (best): inputs=[{"input_type": "youtube" | "text", "value": "<url or description>"}] — YouTube videos are watched…
delete_asset can modify data asset_id*
Delete a project asset (e.g. one the scan over-extracted).
delete_project can modify data project_id*
Permanently delete a project and everything in it (script versions, assets, voiceover, segments, renders). Irreversible — confirm with your user first.
delete_style can modify data style_id*
Delete a style (e.g. a failed analysis experiment). Don't delete a style that projects still use as their default — rebind them first with set_project_style.
director_note message*scene_idproject_idsegment_numberconversation_history
Edit ONE scene with a natural-language note (the same director chat the editor UI uses): move/restyle/add/remove layers and overlays, retime, etc. Synchronous — returns the…
export_video project_id*
Render the final MP4 (Remotion). Fetches the current timeline and queues the render. Async — poll get_workflow_status for the video_export job, then call get_video_url.
generate_asset_reference modelasset_id*settingseditable_sections
Render an asset's reference image in the channel's art style — the visual anchor that keeps a character/environment looking identical across every shot. EVERY character, en…
generate_script modelsettingsproject_id*editable_sections
Generate the project's script from its description/concept and the channel's narrative style. Async — returns {job_id}; poll get_workflow_status.
generate_segments dry_runproject_id*asset_scopesegment_numbers
Render every actionable segment asset (images, video clips, overlays) across the project, in dependency order. THE most expensive call in the pipeline: ALWAYS dry_run=true…
generate_storyboard can modify data modelsettingsproject_id*editable_sections
Plan the full visual storyboard: segments, shot pacing, image/video prompts, overlays, continuation chains — driven by the channel's director and art styles. Requires voice…
generate_style_template modelreplacestyle_id*template_type*editable_sections
Render one of a style's two template images — a REAL step of style setup, not an optional extra: a style isn't finished until both its character and environment templates a…
generate_voiceover modelsettingsproject_id*voice_block_idseditable_sections
Generate TTS audio for the project's voice blocks. Without voice_block_ids it fills gaps: only blocks with no audio yet run, so re-calling it is always safe (already-genera…
get_credit_balance read-only
Current credit balance + plan info. Check before expensive steps (a full segment render can cost hundreds of credits — generate_segments dry_run gives the estimate). Jobs c…
get_pipeline_progress read-only project_id*
THE resume/orientation tool: one call returns every pipeline step's state (script -> scan -> reference_images -> voices -> voiceover -> style_templates -> storyboard -> seg…
get_project read-only project_id*
Fetch a project row — settings, voice config, default style, export URL.
get_script read-only project_id*
Read the active script's full text + the version list. Use this to show the script to your user for review/feedback before scan_script — the review-edit-resave loop (get_sc…
get_section_template read-only job*
Inspect the prompt sections a generation job exposes for per-call override via editable_sections (jobs: script, script_scan, storyboard, segment_image, segment_video, voice…
get_segment_assets read-only project_id*segment_number*
List one segment's assets (images/video/overlays) including their status, config (prompts, model), and public URLs of rendered files — pass an image's public_url to view_im…
get_segments read-only limitoffsetproject_id*
List the storyboard's segments (narration span, type, duration, creative direction). The 1-based segment_number is the handle every segment tool takes (update/split/combine…
get_style read-only style_id*
Fetch one style row — its inputs (reference material), analyzed fields (art_style, narrative_style, director_style, script_prompt, ...), and `templates`: {"character": url|…
get_video_url read-only project_id*
Download URL for the most recent completed export.
get_workflow_status read-only style_idproject_id
Poll this between steps: returns active + recently-finished AI jobs (scope by project_id, or style_id for style analysis), plus per-segment- asset render statuses for proje…
list_assets read-only asset_typeproject_id*
List the project's assets extracted by scan_script — characters, environments, objects. Each has a description (the spec every shot uses to render it — surfaced top-level h…
list_channels read-only
List your channels. Every project lives in a channel, which owns the reusable styles (art/narrative/director) that drive generation.
list_models read-only job*
List the models allowed for a generation job, with display names, credit estimates, and each model's settings_schema — the valid keys for that tool's `settings` param (e.g.…
list_music_tracks read-only project_id*
List the project's background music tracks (volume, loop, timing).
list_projects read-only channel_id*
List projects in a channel.
list_provider_keys read-only
List registered BYOK providers (masked — only the last 4 characters). Returns {keys: [...]}; an empty list means no keys are registered (every job bills platform credits).
list_scenes read-only limitoffsetproject_id*include_composition
List the project's scenes in timeline order. Default rows are light summaries ({scene_id, segment_number, duration_frames, status, layer_count}) — enough to address a scene…
list_style_presets read-only
The curated preset catalog for the no-AI style creation path, grouped by axis (art_style / narrative_style / director_style). Show the user the labels + descriptions and le…
list_styles read-only channel_id*
List the channel's style rows (variable groups). Styles hold the art_style / narrative_style / director_style / script_prompt fields that drive every generation step, plus…
list_voice_blocks read-only project_id*include_subtitle_data
List the project's voice blocks (per-speaker narration chunks) with their audio status and assigned voices. A block's `scene_direction` is the script's `[SCENE: ...]` direc…
list_voices read-only groupprovider
List available TTS voices (id, label, preview audio URL) for a provider: "minimax" (default engine) or "elevenlabs". Match the project's voice_tts_provider (see get_project…
project_director_note message*project_id*
Apply a project-WIDE director note ("make the intro punchier", "all captions bigger", "tighten pacing in the back half"). A routing pass picks only the scenes the note appl…
regenerate_segment_asset modelsettingsasset_type*project_id*segment_number*editable_sections
Regenerate a segment's primary image or video with optional overrides — the API equivalent of the editor's expert drawer. asset_type: "image" | "video" (for a video segment…
remove_music_track can modify data track_id*
Remove a music track from the project.
remove_segment_sfx can modify data sfx_nameproject_id*segment_number*
Remove a sound effect from a segment. With one SFX attached, no name needed; with several, pass sfx_name (the asset name shown by get_segment_assets).
rescan_voice_blocks can modify data project_id*
Re-extract voice blocks from the active script WITHOUT touching assets or their reference images — the non-destructive alternative to scan_script after a script edit. Block…
revise_script project_id*instruction*selected_text
AI-rewrite a passage of the active script in the project's narrative voice (the same in-editor revise the UI offers). selected_text must appear verbatim in the script; omit…
rollback_segment_asset indexasset_type*project_id*segment_number*
Restore a previously rendered version of a segment's image or video — every regeneration archives the render it replaces (last 5), so a regen that came out worse is reversi…
save_script content*project_id*
Save script text (your own draft, or an edited version of the generated one). Saving UPDATES the active version in place — the previous text is not kept, so show the user t…
scan_script can modify data modelproject_id*editable_sections
Analyze the active script: extracts character/environment/object assets and splits narration into voice blocks. DESTRUCTIVE on re-run (assets are recreated, not merged — cu…
set_character_voice asset_id*voice_id*
Bind a TTS voice to a character asset — required before generate_voiceover for every character with dialogue (the narrator's voice is separate: set_narrator_voice). Browse…
set_narrator_voice voice_id*project_id*
Set the project's narrator TTS voice — required before generate_voiceover whenever the script has narration. Browse ids with list_voices. (Character dialogue voices are sep…
set_project_style style_id*project_id*
Set the project's default style — the style whose art/narrative/director fields drive its generations. Use after create_style to put a new visual identity into effect, or t…
set_provider_key key*provider*
Register a BYOK provider API key (encrypted at rest, BYOK plan only). Jobs whose model belongs to this provider then run on YOUR key and charge 0 credits. Providers: openai…
set_segment_continuation project_id*continues_fromsegment_number*
Make a segment's image render as a continuation of an EARLIER segment's frame (same composition evolving — the storyboard's continues_from_segment, settable after the fact)…
split_segment can modify data dry_runoffsets_ms*project_id*inherit_indexsegment_number*
Split a segment at the given time offsets (ms, 1-3 cuts → 2-4 parts). inherit_index picks which resulting part keeps the original creative data — that part keeps its render…
update_asset nameasset_id*description
Rename an asset and/or rewrite its description. If the look changed, regenerate its reference image afterwards so renders match.
update_caption_config project_id*caption_config*
Merge a patch into the project's burned-in caption config (keys like enabled, plus styling). Read the current value from get_project (caption_config). Applies at the next e…
update_music_track fields*track_id*
Tweak a music track. fields keys: name, volume (0-1), loop, start_frame, duration_frames, position, trim_start_frame, trim_end_frame.
update_project fields*project_id*
Patch project fields. Updatable: title, description, sfx_level, video_concept, voice_mix, voice_tts_provider, script_target_minutes, narrator_speed, video_format. (The narr…
update_segment_content can modify data dry_runproject_id*user_input*segment_number*
Rewrite one segment's creative direction from feedback ("make this shot a close-up", "show the machine from above") — an LLM rewrites the shot's prompts; continuation links…
update_segment_prompts project_id*image_promptvideo_promptmedia_queriessegment_number*start_frame_prompt
Set one segment's final prompts VERBATIM — no LLM rewrite. The direct counterpart to update_segment_content: your text is written as-is to the segment's creative direction…
update_style_fields can modify data fields*style_id*
Hand-edit a style's analyzed fields after reviewing them — e.g. tighten the art_style wording or adjust the director_style pacing rules. `fields` is a PATCH, merged over w…
update_style_references can modify data inputs*style_id*
Replace a style's reference set — add or remove references without touching the analyzed fields. FULL REPLACE: read the current list with get_style first and send every…
update_voice_block volumevoice_idvoice_block_id*
Override one voice block's voice or playback volume (block ids from list_voice_blocks). Re-run generate_voiceover for the block afterwards if you changed its voice — existi…
view_image read-only url*
Fetch a rendered Framesail image so you (and your user) can SEE it — pass a URL from get_segment_assets, get_style, or asset endpoints. Returns the image inline. Only Frame…
whoami read-only
Verify the connection: the account email and plan behind the current credential. Call once after connecting — before creating anything — to confirm you're on the right acco…