com.framesail/framesail

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

Endpointhttps://api.framesail.com/mcp (streamable-http)
Registry version1.0.0
Now28 tools · grade D (60) · pin ts_9923651f1a659ffe4eb9eb82ecb8e67c · protocol 2025-06-18
First / last listed2026-10-24 21:34 UTC / 2026-10-24 21:34 UTC
Grade over time2026-10-24: D (60), 28 tools

Is this your server? Own a server? ToolFit hosted watch re-checks it every 24 h ($0.25 per 30 days) or 6 h ($0.60) and sends you an HMAC-signed webhook when its tools or grade change: POST https://api.youraitools.co/toolfit/v1/watch. To opt out, see About & opt-out.

Timeline

First listing · 2026-10-24 21:34 UTC
28 tools, grade D (60)

Tools: get_status view_image get_generation_options account_edit delete projects_read projects_edit style_read style_edit style_generate script_read script_edit script_generate assets_read assets_edit assets_generate voiceover_read voiceover_edit voiceover_generate storyboard_read storyboard_edit storyboard_generate segment_edit segment_restructure render editor_read editor_edit export_video

Current tools (28)

get_statusWhere things stand and what to do next; start and resume here. Always reports the account: plan, credits, credits held by running jobs, and credits_available to spend. project_id adds the project's settings, each step's state and web link, jobs with readable errors, export_url, next_step and, when something failed, failures: the last failed jobs and the failed segments grouped by kind and error.
params: project_id, channel_id, wait
view_imageShow a Framesail image inline: a segment image, reference image, style template or preset preview.
params: url*
get_generation_optionsWhat a generate call can be told to use. models: the allowed models with credit estimates and settings_schema (the valid settings keys); is_default marks the default (the account's saved choice, else Framesail's). Voice and clip models come in families, each with its own default: pass provider or talking_head for one family. prompt_sections: sections with entity_backed=false can be overridden wi
params: generation*, action*, provider, talking_head
account_editThe account's default model and settings for one kind of generation, used when neither the call nor the item's prompt editor names one. voice_block needs provider and segment_video needs talking_head: each family keeps its own default.
params: action*, generation*, model, settings, provider, talking_head
deletePermanently delete; irreversible, so confirm with the user first. project: it and everything in it. asset: a character, environment or object. music_track: a background music track. segment_extra: a segment's sound effect or overlay, with its scene layers. A segment's image, clip and voiceover can't be deleted.
params: type*, project_id, id, segment_number
projects_readYour channels, or the projects in one channel.
params: action*, channel_id
projects_editCreate a channel or a project, or change a project's title, brief or video format. A new project takes its channel's style; a channel with no style needs one (style_edit action=create) before anything is generated. Share the returned web_url so the user can follow along.
params: action*, name, channel_id, project_id, title, description, video_format
style_readget: the channel style: its references, its fields (art_style, narrative_style, director_style, text_style, any added; script_prompt on request), the summary analysis wrote for each, and templates, the character and environment template images (null: not rendered; a URL: it exists, so view_image it rather than render it again). inputs_stale: the references changed since the last analysis (offer st
params: action*, channel_id, project_id, include_script_prompt
style_editCreate or change the channel style (one per channel, used by all its projects). create: offer the user two real options, never invented ones. (a) References (best): YouTube links of their channel or of videos whose look they like, or a written description. Analysis starts at once and writes the fields: wait with get_status channel_id wait=true, then render both template images (style_generate act
params: action*, channel_id*, name, references, presets, fields
style_generateanalyze: read the references again and rewrite art_style, narrative_style, director_style and text_style, replacing hand edits. template: render one of the style's two template images. Reference images render on them (characters on the character template, environments and objects on the environment one) and segment images fall back on them, so finish both before any reference image. An existing o
params: action*, channel_id*, template_type, replace, model, settings, editable_sections
script_readThe active script, its versions, and the script settings (script_target_minutes, voice_mix, visual concept). Show the script to the user before Analyze Script.
params: project_id*
script_editChange the script or its settings; only revise spends credits. save: replace the active version's text (the old text is lost: show the user the current script first), then run Analyze Script. Notation, never read aloud: `[SCENE: <visual direction>]` as its own paragraph directs the storyboard for the narration after it, until the next one, over the director style. `<break time="1.5s" />` is the o
params: action*, project_id*, content, script_id, instruction, selected_text, script_target_minutes, voice_mix, visual_concept
script_generategenerate: write the script from the brief and the narrative style; each run is a new version (review it with script_read). analyze (Analyze Script): find the script's characters, environments and objects (including any named only in `[SCENE: ...]` directions) and split it into voice blocks. Existing assets are kept as they are (description, reference image, voice) and new ones added; assets the s
params: action*, project_id*, model, settings, editable_sections
assets_readThe project's characters, environments and objects, each with its description (what every render follows), reference_image (null: not rendered; view_image it) and, for characters, voice_id. Each needs a reference image before the voiceover.
params: project_id*, asset_type
assets_editAdd a character, environment or object that Analyze Script missed, or rename one or rewrite its description. After a description change, render its reference image again (assets_generate asset_ids).
params: action*, project_id, asset_id, asset_type, name, description
assets_generateRender reference images, which keep each character, environment and object looking the same in every segment. Needs both style template images. Without asset_ids it renders every asset with none, skipping ones already rendering, so a repeat never bills twice. Afterwards, view_image them to check likeness.
params: project_id*, asset_ids, dry_run, model, settings, editable_sections
voiceover_readvoices: one engine's voice ids, labels and preview audio, as {groups, voices}. blocks: the voice blocks (narration and dialogue) with their speaker, voice_id (the speaker's voice), audio and any `[SCENE: ...]` direction over them (never spoken), as {blocks, total_duration_ms, all_complete}.
params: action*, project_id, provider, group, include_subtitle_data
voiceover_editVoices and voice blocks; free. set_voice: the narrator's or a character's voice; every speaker needs one before the voiceover. rescan_blocks: split the active script into voice blocks again after an edit, assets untouched; blocks whose words are unchanged keep their audio. settings: the voice engine, narrator speed and language.
params: action*, project_id*, speaker, voice_id, voice_tts_provider, narrator_speed, language
voiceover_generateGenerate voice block audio. Every speaker needs a voice first, and every asset a reference image. Without voice_block_ids it fills every block with no audio, skipping ones already generating. A model must match the project's voice engine. An existing storyboard retimes to the new audio on its own.
params: project_id*, voice_block_ids, dry_run, model, settings, editable_sections
storyboard_readsegments: {total, offset, returned, segments}. Each segment has its segment_number (the handle segment tools take), kind (image, clip, talking head, real photo, B-roll or overlay segment), narration, duration, direction, image_prompt, video_prompt (the motion when animated), media_queries (searches for a real photo or B-roll), the characters, environments and objects it shows, continues_from_segme
params: action*, project_id*, segment_number, offset, limit
storyboard_editStoryboard settings, used by the next storyboard run.
params: action*, project_id*, sfx_level*
storyboard_generatePlan the storyboard: every segment, its timing, image and motion prompts, overlays and continuations, following the channel style and any `[SCENE: ...]` directions. Needs the finished voiceover (its timing drives the cuts). It plans images, plus real photos and B-roll when the director style has the `@real-media` tag; clips come later, by animating rendered images. Running it again replaces the wh
params: project_id*, model, settings, editable_sections
segment_editChange one segment without losing renders; only split spends credits. Returns the changed segments. set_prompts: write prompts verbatim, no AI rewrite. The renders stay as they are: render the segment again to apply the new prompts. set_continuation: make this segment's image continue an earlier one's (same composition, only the change); render the image again. rollback: restore one of the last 5
params: action*, project_id*, segment_number*, image_prompt, video_prompt, media_queries, continues_from, what, index, offsets_ms, inherit_index
segment_restructureChange what a segment is. Every call previews first: when no rendered image or clip would be lost it runs; otherwise it changes nothing and returns what would be lost. Show the user, then call again with confirm=true. combine: merge with a neighboring segment. The kept segment's renders stay, retimed to the combined length, but go stale: its prompts are rewritten for the combined narration, so re
params: action*, project_id*, segment_number*, with_segment_number, keep, to, keep_image, feedback, confirm
renderRender segment images and clips, the biggest spend in the video: always run it with dry_run=true first and get the user's yes on the estimate. generate: without segment_numbers, everything not yet rendered (items rendering are skipped); with them, those segments, finished renders included, e.g. the first minute before the whole video. Overrides need segment_numbers and what=images or what=clips.
params: action*, project_id*, segment_numbers, what, dry_run, segment_number, talking_head, model, settings, editable_sections
editor_readscenes: the editor timeline, one scene per segment, as {total, offset, returned, scenes}; scenes build on their own from the storyboard. music: {tracks}, timed in seconds. audio_library: tracks to add with editor_edit; when nothing matches, it lists the library's moods and genres.
params: action*, project_id, include_composition, offset, limit, category, search, mood, genre
editor_editPolish the video in the editor; changes show in the next export. scene_note: edit one scene with a note (move, restyle, add or remove layers and overlays, change the text of a lower third, title card or callout, change motion); spends credits. Returns the changes and skipped_mutations: edits that didn't land (applied=false) or landed differently than asked (applied=true), each with a reason; chec
params: action*, project_id, segment_number, message, caption_config, library_track_id, track_id, name, volume, loop, start_seconds, trim_start_seconds, trim_end_seconds
export_videoRender the finished video from the editor timeline; free. When the export job completes, get_status carries export_url.
params: project_id*

Entries describe changes in tool definitions. They are not statements about a server, its quality or its author. The grade measures how the tool definitions fit model providers (token cost, schema compatibility, confusable names) as scored by the ToolFit engine at the time of the listing. JSON: append .json. Opt-out: how or hello@youraitools.co.