MCP servercom.framesail/framesail
Create long-form YouTube videos end to end: script, storyboard, voiceover, final MP4.
Overview
Score?
UNRATED 0.681
of what a free look can see, on 32 looks
Looks
36
last 4 hr ago
Tools
28
changed 2 days ago
More info
URL
api.framesail.com/mcp
streamable-http
Says it is
framesail 1.27.2
protocol 2025-06-18
In the record since
32 days ago
Among servers18,413 with a card
0median 0.606 · this server 0.681 · highest on record 0.8561
Toolsfrom sha256:60a6147bad…f331cd · +26 −70 2 days ago
| Tool | Schema |
|---|---|
| account_edit added The 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 |
input · no output |
| assets_edit added Add 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_ge |
input · no output |
| assets_generate added Render 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 a |
input · no output |
| assets_read added The 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, |
input · no output |
| delete added Permanently 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 |
input · no output |
| editor_edit added Polish 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 low |
input · no output |
| editor_read added scenes: 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_li |
input · no output |
| export_video Render the finished video from the editor timeline; free. When the
export job completes, get_status carries export_url. |
input · no output |
| get_generation_options added What 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' |
input · no output |
| get_status added Where 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 |
input · no output |
| projects_edit added Create 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=cre |
input · no output |
| projects_read added Your channels, or the projects in one channel. |
input · no output |
| render added Render 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, e |
input · no output |
| script_edit added Change 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 Ana |
input · no output |
| script_generate added generate: 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, |
input · no output |
| script_read added The active script, its versions, and the script settings
(script_target_minutes, voice_mix, visual concept). Show the script to
the user before Analyze Script. |
input · no output |
| segment_edit added Change 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 ar |
input · no output |
| segment_restructure added Change 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 use |
input · no output |
| storyboard_edit added Storyboard settings, used by the next storyboard run. |
input · no output |
| storyboard_generate added Plan the storyboard: every segment, its timing, image and motion
prompts, overlays and continuations, following the channel style and
any `[SCENE: ...]` directions. Needs the finis |
input · no output |
| storyboard_read added segments: {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 s |
input · no output |
| style_edit added Create 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 |
input · no output |
| style_generate added analyze: 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 im |
input · no output |
| style_read added get: 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 eac |
input · no output |
| view_image Show a Framesail image inline: a segment image, reference image,
style template or preset preview. |
input · no output |
| voiceover_edit added Voices 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 blo |
input · no output |
| voiceover_generate added Generate 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 |
input · no output |
| voiceover_read added voices: 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), |
input · no output |
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 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 |
— |
Attach a sound effect from the audio library to a segment (find track
ids via browse_audio_library with category="sfx"). It lands on the
segment's scene immediately — no bu |
— |
Re-run style analysis (after changing a style's inputs). Async —
await_jobs(style_id=...) until the style_analysis job completes. |
— |
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 |
— |
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 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 |
— |
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 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"), |
— |
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 |
— |
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 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 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 a style. Two mutually exclusive paths:
References (best): inputs=[{"input_type": "youtube" | "text", "value":
"<url or description>"}] — YouTube videos are watched |
— |
Delete a project asset (e.g. one the scan over-extracted). |
— |
Permanently delete a project and everything in it (script versions,
assets, voiceover, segments, renders). Irreversible — confirm with your
user first. |
— |
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. |
— |
Edit ONE scene with a natural-language note (the same director chat the
editor UI uses): move/restyle/add/remove layers and overlays, change
motion, etc. Storyboard image, |
— |
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 the project's script from its description/concept and the
channel's narrative style. Async — returns {job_id}; poll get_workflow_status. |
— |
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 |
— |
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 |
— |
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 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 |
— |
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 |
— |
THE resume/orientation tool: one call returns every pipeline step's
state (script -> scan -> reference_images -> voices -> voiceover ->
style_templates -> storyboard -> seg |
— |
Fetch a project row — settings, voice config, default style, export URL. |
— |
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 |
— |
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 |
— |
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 |
— |
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 |
— |
Fetch one style row — its inputs (reference material), analyzed fields
(art_style, narrative_style, director_style, script_prompt, ...), and
`templates`: {"character": url| |
— |
Download URL for the most recent completed export. |
— |
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 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 your channels. Every project lives in a channel, which owns the
reusable styles (art/narrative/director) that drive generation. |
— |
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 the project's background music tracks (volume, loop, timing). |
— |
List projects in a channel. |
— |
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 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 |
— |
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 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 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 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 |
— |
Apply a project-WIDE director note ("make the intro punchier", "all
captions bigger"). A routing pass picks the scenes the note applies to
and edits each — at most 10 scene |
— |
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 a music track from the project. |
— |
Delete a segment's sound effect or overlay (lower third, title card,
callout) — the asset and every scene layer built from it, immediately.
These are the only removable ass |
— |
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 |
— |
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 |
— |
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 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 |
— |
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 |
— |
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 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 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 |
— |
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 |
— |
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 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 |
— |
Rename an asset and/or rewrite its description. If the look changed,
regenerate its reference image afterwards so renders match. |
— |
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 |
— |
Tweak a music track. fields keys: name, volume (0-1), loop, start_frame,
duration_frames, position, trim_start_frame, trim_end_frame. |
— |
Patch project fields. Updatable: title, description,
sfx_level, video_concept, voice_mix, voice_tts_provider,
script_target_minutes, narrator_speed, video_format. (The narr |
— |
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 |
— |
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 |
— |
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 |
— |
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
|
— |
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 |
— |
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 |
— |
Verify it yourself
npx teppi-check https://api.framesail.com/mcpcurl -s https://api.teppi.xyz/v1/trust/mcp/mcs_01M1FZ26F5GFAVYDSAJBP1WEK1