← Registry

Content Tools

framesail.com

Manages channels and projects with reusable styles and voice configuration.

1 endpoint68 known toolsFirst detected July 25, 2026Last detected August 29, 2026

ENDPOINT 1

https://api.framesail.com/mcp

No auth detected

MCP server metadata

Name
framesail
Version
1.27.2
Capabilities
experimentalpromptsresourcestools
Server instructions

Framesail turns a script into a finished long-form video: script -> asset scan -> reference images -> voiceover -> storyboard -> segment assets (images/video/ overlays) -> scenes -> rendered MP4. Step order is ENFORCED server-side. A step called before its prerequisites are done fails with a 409 step_not_ready error whose next_action names the exact tool to run instead — do that, don't retry the same call. Double-submits are also handled server-side: single-run steps (generate_script, scan_script, generate_storyboard, export_video) refuse to start while already running (job_already_running — await_jobs and re-check), and batch steps (generate_asset_reference, generate_voiceover, generate_segments) skip items already generated or in flight, so re-calling them never duplicates work or double-bills. On a fresh connection, whoami confirms which account and plan you're on (free, instant). If ANY tool returns 401, the key is invalid or revoked — tell the user to reconnect (OAuth clients) or create a new key on the account page; don't retry. A 403 means the account's plan lacks API access. Typical end-to-end run: 1. list_channels (or create_channel), then create_project(channel_id, title, description=the video concept). Pass video_format="portrait" when the user wants a vertical video (Shorts / Reels / TikTok) — it is fixed once the storyboard exists. A brand-new channel has no style yet — create_style (+ await_jobs(style_id=...)) and set_project_style before generating anything. When asking the user what style they want, offer two real options — never invent style choices: (a) reference matching (best): YouTube URLs of their channel or any video whose look they like (create_style inputs) — analysis extracts the art/narrative/director style from the footage; (b) curated presets: list_style_presets and let the user pick one per axis (instant, no analysis). Creating a style has a second half: generate_style_template for BOTH "character" and "environment" — a style isn't finished until both template images are rendered (skip any it already has — get_style's `templates` shows the rendered ones). 2. generate_script (or save_script with your own), await_jobs, then get_script — review/iterate with your user (save_script / revise_script) before moving on. 3. scan_script — extracts characters/environments/objects + voice blocks. 4. Review assets: list_assets, fix descriptions (update_asset), then generate_asset_reference for EVERY character, environment, and object — reference images keep them visually identical across every shot, and voiceover won't start until each of these assets has one. References render AGAINST the style's template images — make sure both templates are done (step 1) before generating any. 5. Voices: set_narrator_voice binds the narrator (browse with list_voices), set_character_voice for any character with dialogue, then generate_voiceover (word-level timing drives captions). 6. BEFORE generate_storyboard, ask the user for the asset mix — what share of segments to plan as still images vs animated video clips (percents totaling 100, default {"image": 70, "video": 30}; set via update_project(fields={"asset_mix": {"image": ..., "video": ...}})). This is the biggest cost lever in the whole pipeline: video clips cost far more to render than stills, and the storyboard plans against the mix, so it must be set first. Then generate_storyboard — plans every segment + its assets, honoring the channel's director/art/narrative styles. Review with get_segments — note each segment's continues_from_segment, which chains a shot off an earlier segment's frame for visual continuity (carry the frame, change only the delta). Fix surgically via update_segment_content / split_segment / combine_segments / change_segment_type / set_segment_continuation. 7. generate_segments — the HARD checkpoint (see Pace & spending): dry_run first, show the estimate, and wait for a fresh go-ahead before running for real. Inspect renders with get_segment_assets + view_image; re-render one with regenerate_segment_asset. 8. Optional polish: add_music_track (find tracks via browse_audio_library), add_segment_sfx, update_caption_config. 9. build_scenes, then export_video; await_jobs until the video_export job completes, then get_video_url. Pace & spending: content-creating tools (generate_*, scan_script, rescan_voice_blocks, revise_script, create_style, analyze_style, update_segment_content, director notes) bill platform credits — or the user's own provider keys on the BYOK plan. Read-only tools (list_*/get_*, view_image, await_jobs) and export_video are free. DEFAULT to checkpoint pacing: run ONE pipeline step, show your user what it produced — with that step's web_url from get_pipeline_progress so they can open it in the app — and what the next step costs, then wait for their go-ahead. Run multiple steps unprompted only when the user explicitly asked for an end-to-end run ("do the whole thing"); even then, report progress after each step. generate_segments is the one HARD stop: it is by far the most expensive step (often hundreds to thousands of credits). ALWAYS dry_run it and show the estimate next to get_credit_balance, then STOP and wait for a fresh yes given after the user has seen that estimate. A prior "do the whole thing" does NOT cover this spend — do not reason your way to approval from earlier permission or from the balance looking sufficient. The only exception: the user explicitly pre-authorized the render cost in so many words ("render without asking me"). Never regenerate work that already exists (script, references, voiceover, renders) unless asked — retrying a step that ERRORED is fine, "just to be safe" re-runs waste the user's money. All generation tools return {job_id} immediately. Call await_jobs(project_id=...) after each step — it blocks server-side until the step's jobs finish (or ~50s passes; call it again while done=false). Long steps are NORMAL: a storyboard takes 3-5 minutes, a full segment render can take longer. Jobs flow pending -> running -> complete|error. Resuming or unsure what's next? get_pipeline_progress(project_id) returns every step's state + the exact next action — state lives server-side, so you can stop for hours, reconnect in a new session, and pick up where the project left off (list_channels -> list_projects -> get_pipeline_progress). Never re-run a step just because you don't remember running it. Generation runs on the channel's configured styles by default — override per-call via editable_sections (see get_section_template for what each job exposes) and model (see list_models for alternates + each model's settings schema). Style fields support @variable references resolved at generation time. New visual identities: create_style with YouTube/text reference inputs, await_jobs(style_id=...), then set_project_style to put it into effect. Pitfalls: scan_script DELETES and recreates assets on re-run — after editing the script once assets are curated, use rescan_voice_blocks instead (assets untouched); voiceover requires every speaker to resolve to a voice first; after editing segments, regenerating assets, or changing music/captions, re-run build_scenes before export_video. Billing: on the BYOK plan, jobs run on your own provider API keys (0 credits) when a key for that model's provider is registered via set_provider_key; otherwise they bill platform credits (get_credit_balance shows the balance).

Known tools 68

list_channels

List your channels.

Inferred read-only
create_channel

Create a new channel — the container for projects and their reusable styles.

Potential side effects
list_projects

List projects in a channel.

Inferred read-only
create_project

Create a project.

Potential side effects
get_project

Fetch a project row — settings, voice config, default style, export URL.

Inferred read-only
update_project

Patch project fields.

Inferred read-only
delete_project

Permanently delete a project and everything in it (script versions, assets, voiceover, segments, renders).

Potential side effects
set_project_style

Set the project's default style — the style whose art/narrative/director fields drive its generations.

Inferred read-only
update_caption_config

Merge a patch into the project's burned-in caption config (keys like enabled, plus styling).

Inferred read-only
get_pipeline_progress

THE resume/orientation tool: one call returns every pipeline step's state (script -> scan -> reference_images -> voices -> voiceover -> style_templates -> storyboard -> segment_assets -> scenes -> export), any running jobs, and a next_action telling you exactly what to do next.

Inferred read-only
get_workflow_status

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 projects.

Inferred read-only
await_jobs

Block (server-side) until the scope has no pending/running jobs, or the timeout passes — use this instead of polling get_workflow_status yourself.

Inferred read-only
get_section_template

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_block, .

Inferred read-only
list_models

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.

Inferred read-only
generate_script

Generate the project's script from its description/concept and the channel's narrative style.

Inferred read-only
get_script

Read the active script's full text + the version list.

Inferred read-only
save_script

Save script text (your own draft, or an edited version of the generated one — saving creates a new version, old versions are kept).

Inferred read-only
revise_script

AI-rewrite a passage of the active script in the project's narrative voice (the same in-editor revise the UI offers).

Inferred read-only
activate_script_version

Switch the project's active script to another saved version (ids come from get_script's version list — every save_script creates one).

Inferred read-only
scan_script

Analyze the active script: extracts character/environment/object assets and splits narration into voice blocks.

Inferred read-only
list_assets

List the project's assets extracted by scan_script — characters, environments, objects.

Inferred read-only
create_asset

Manually add a character/environment/object the scan missed.

Inferred read-only
update_asset

Rename an asset and/or rewrite its description.

Inferred read-only
delete_asset

Delete a project asset (e.

Potential side effects
generate_asset_reference

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.

Inferred read-only
set_character_voice

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).

Inferred read-only
list_voices

List available TTS voices (id, label, preview audio URL) for a provider: "minimax" (default engine) or "elevenlabs".

Inferred read-only
set_narrator_voice

Set the project's narrator TTS voice — required before generate_voiceover whenever the script has narration.

Inferred read-only
list_voice_blocks

List the project's voice blocks (per-speaker narration chunks) with their audio status and assigned voices.

Inferred read-only
update_voice_block

Override one voice block's voice or playback volume (block ids from list_voice_blocks).

Inferred read-only
rescan_voice_blocks

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.

Potential side effects
generate_voiceover

Generate TTS audio for the project's voice blocks.

Inferred read-only
generate_storyboard

Plan the full visual storyboard: segments, shot pacing, image/video prompts, overlays, continuation chains — driven by the channel's director and art styles.

Inferred read-only
get_segments

List the storyboard's segments (narration span, type, duration, creative direction).

Inferred read-only
get_segment_assets

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_image to actually look at it.

Inferred read-only
regenerate_segment_asset

Regenerate a segment's primary image or video with optional overrides — the API equivalent of the editor's expert drawer.

Inferred read-only
change_segment_type

Change a segment's visual type: "image" | "video" | "overlay_scene".

Inferred read-only
update_segment_content

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, SFX, and overlays are preserved.

Inferred read-only
split_segment

Split a segment at the given time offsets (ms, 1-3 cuts → 2-4 parts).

Inferred read-only
combine_segments

Merge a segment with an adjacent one (segment numbers must be neighbors).

Inferred read-only
set_segment_continuation

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).

Inferred read-only
add_segment_sfx

Attach a sound effect from the audio library to a segment (find track ids via browse_audio_library with category="sfx").

Inferred read-only
remove_segment_sfx

Remove a sound effect from a segment.

Potential side effects
generate_segments

Render every actionable segment asset (images, video clips, overlays) across the project, in dependency order.

Inferred read-only
build_scenes

Compile segments + assets + voiceover into the editor/render timeline (scenes).

Inferred read-only
list_scenes

List the project's scenes (composition layers, durations, layout).

Inferred read-only
director_note

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.

Potential side effects
project_director_note

Apply a project-WIDE director note ("make the intro punchier", "all captions bigger", "tighten pacing in the back half").

Inferred read-only
export_video

Render the final MP4 (Remotion).

Inferred read-only
get_video_url

Download URL for the most recent completed export.

Inferred read-only
list_styles

List the channel's style rows (variable groups).

Inferred read-only
get_style

Fetch one style row — its inputs (reference material), analyzed fields (art_style, narrative_style, director_style, script_prompt, .

Inferred read-only
update_style_fields

Hand-edit a style's analyzed fields after reviewing them — e.

Potential side effects
list_style_presets

The curated preset catalog for the no-AI style creation path, grouped by axis (art_style / narrative_style / director_style).

Inferred read-only
create_style

Create a style.

Potential side effects
analyze_style

Re-run style analysis (after changing a style's inputs).

Inferred read-only
generate_style_template

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 are rendered (the app shows them on the style card).

Inferred read-only
delete_style

Delete a style (e.

Potential side effects
set_provider_key

Register a BYOK provider API key (encrypted at rest, BYOK plan only).

Inferred read-only
list_provider_keys

List registered BYOK providers (masked — only the last 4 characters).

Inferred read-only
whoami

Verify the connection: the account email and plan behind the current credential.

Potential side effects
get_credit_balance

Current credit balance + plan info.

Inferred read-only
browse_audio_library

Browse the audio library for background music and sound effects.

Inferred read-only
list_music_tracks

List the project's background music tracks (volume, loop, timing).

Inferred read-only
add_music_track

Add background music to the project from the audio library (find track ids with browse_audio_library, category="music").

Inferred read-only
update_music_track

Tweak a music track.

Inferred read-only
remove_music_track

Remove a music track from the project.

Potential side effects
view_image

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.

Inferred read-only

CONNECT WITH APPROVAL

Client installation

Review this server and its permissions before adding it. Secret placeholders must be set locally.

Codex

~/.codex/config.toml

[mcp_servers.framesail]
url = "https://api.framesail.com/mcp"
enabled = true
Claude Code

.mcp.json

{
  "mcpServers": {
    "framesail": {
      "type": "http",
      "url": "https://api.framesail.com/mcp"
    }
  }
}
Claude Desktop

Settings → Connectors → Add custom connector

Name: framesail
Remote MCP URL: https://api.framesail.com/mcp

Add this remote URL as a custom connector in Claude Desktop. Availability depends on the user plan and workspace policy.

Cursor

.cursor/mcp.json

{
  "mcpServers": {
    "framesail": {
      "url": "https://api.framesail.com/mcp"
    }
  }
}
Visual Studio Code

.vscode/mcp.json

Add to Visual Studio Code
{
  "servers": {
    "framesail": {
      "type": "http",
      "url": "https://api.framesail.com/mcp"
    }
  }
}
Generic MCP

Client-specific MCP configuration

{
  "name": "framesail",
  "transport": "streamable-http",
  "url": "https://api.framesail.com/mcp"
}
MCP Inspector

Run the official MCP Inspector locally and enter the indexed Streamable HTTP endpoint.

TRUST AND VERIFICATION EVIDENCE

Trust Data Available

BuiltWith Trust API v2 evidence for framesail.com was fetched 2026-07-28T07:06:34.003Z and is being refreshed.

Trust status Trusted

framesail.com is assessed as Trusted: Domain runs a meaningful technology spend, consistent with a real business.

Indexed

Evidence is source-attributed and does not guarantee that a third-party server is safe. Risk labels are conservative metadata heuristics.