MuseDirectory
All connectors / Marketing & Ads
Marketing & Ads

Framesail

Generate YouTube videos from concept to final MP4 with AI script, storyboard, voiceover and animation.

Framesail automates long-form video production: write scripts from your concept, generate storyboards with AI-planned shots, create voiceovers with character voices, render images and video segments, and export finished MP4s. Supports landscape and portrait formats.

Try asking Muse: "Create a 10-minute YouTube video about sustainable fashion by describing the topic and letting Framesail generate the script, visuals, and narration."

Working now?
Working
Worked last 7 days
100% of checks
How to get it
Extra setup
Account
No account needed
Price
Not stated

Source: Found in the official MCP Registry (com.framesail/framesail) · First listed September 24, 2026

Last 24 hours

Each bar is one check, every 15 minutes. Green means it answered. Last checked 21 min ago.

Is it safe to connect?

What Muse can see: It does not ask you to sign in, so it cannot see your accounts. It only sees what Muse sends it from your request.

Before it acts: Read what Muse plans to do before you approve it, and remove the app from Muse when you stop using it.

musedirectory.ai is not part of Meta. More about how Muse handles your information

How to add it to Muse

Not in Muse's Connectors list yet, but Muse can still use it. Copy the request below and paste it into Muse. Muse asks before it shares anything with the app's site. Meta does not review apps used this way, so only use ones you trust. We tested this in the Muse app on September 24, 2026: Muse used an app's link directly this way and returned a live answer.

Open Muse
https://api.framesail.com/mcp

Not in Muse's Connectors list yet. Muse can still use it: its page gives you a request to paste into Muse.

Technical details: safety screening, tools, response time and recent checks

Response time at the last check: 1401ms. Worked in 100% of checks over 30 days.

Screening · September 24, 2026

Screened, no issues found

MCP handshake
Pass
Answered in 811ms
Domain against threat feeds (Cloudflare security DNS)
Pass
api.framesail.com, framesail.com not flagged
Published packages against the OSV malicious-package database
n/a
No npm or PyPI package published
Hidden instructions or invisible characters in tool text
Pass
72 tools read, nothing found
Inputs asking for passwords, card numbers or seed phrases
Pass
None found
Domain and redirects
Pass
No redirects off the domain
AI review of purpose and tool behavior
Pass
No concerns

Screening looks for known threats and hidden instructions at the time of the check, and runs again weekly and whenever the tool list changes. It cannot see the server's code, so only connect what you need and review what Muse asks to do. How screening works.

Tools · 40

list_channelsList your channels. Every project lives in a channel, which owns the reusable styles (art/narrative/director) that drive generation.
create_channelCreate 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.
list_projectsList projects in a channel.
create_projectCreate 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 shot, overlay, and the export are then composed for a 9:16 frame. The response's web_url is the project's page
get_projectFetch a project row — settings, voice config, default style, export URL.
update_projectPatch project fields. Updatable: title, description, sfx_level, video_concept, voice_mix, voice_tts_provider, script_target_minutes, narrator_speed, video_format. (The narrator's TTS voice is NOT here — use set_narrator_voice.) narrator_speed is the narration rate (0.5-2.0, defau
delete_projectPermanently delete a project and everything in it (script versions, assets, voiceover, segments, renders). Irreversible — confirm with your user first.
set_project_styleSet 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 to switch a project between channel styles.
update_caption_configMerge 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 export — no rebuild needed.
get_pipeline_progressTHE 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. C
get_workflow_statusPoll 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. A step is done when its jobs reach status=complete (or error, with a user-readable message). NOTE: fini
await_jobsBlock (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 done=false the work is still running: just call await_jobs again (a 3-5 minute storyboard takes a few consec
get_section_templateInspect 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, ...). Sections marked locked cannot be overridden.
list_modelsList 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. image quality/orientation, video duration). When model is omitted the server picks: the account's saved exp
generate_scriptGenerate the project's script from its description/concept and the channel's narrative style. Async — returns {job_id}; poll get_workflow_status.
get_scriptRead 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_script -> discuss -> save_script) is the expected workflow when the user wants input.
save_scriptSave 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 the current script (get_script) before overwriting it. New versions are created by generate_script runs, and
revise_scriptAI-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 it to revise the whole script. `[SCENE: ...]` directions in range are preserved exactly, in place, unless t
activate_script_versionSwitch 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 version in place). Re-run scan_script / rescan_voice_blocks afterwards if the text differs, since downstream a
scan_scriptAnalyze the active script: extracts character/environment/object assets and splits narration into voice blocks. DESTRUCTIVE on re-run (assets are recreated, not merged — curated descriptions, reference images, and voices are lost; prefer rescan_voice_blocks after script edits). E
list_assetsList 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 here; the raw row nests it at ai_output.description), an optional reference image (file_path is a public URL
create_assetManually add a character/environment/object the scan missed. asset_type: "character" | "environment" | "object". The description is the generation-facing spec of its look — be specific. The scan reads narration and `[SCENE: ...]` directions, so the common miss is anyone NEITHER e
update_assetRename an asset and/or rewrite its description. If the look changed, regenerate its reference image afterwards so renders match.
delete_assetDelete a project asset (e.g. one the scan over-extracted).
generate_asset_referenceRender 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, environment, and object asset needs one before generate_voiceover (the server enforces this; fire the jobs for
set_character_voiceBind 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 ids with list_voices.
list_voicesList 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) so picked ids work with its engine. Returns {groups: {name: count}, voices}; the ElevenLabs catalogue is 1
set_narrator_voiceSet the project's narrator TTS voice — required before generate_voiceover whenever the script has narration. Browse ids with list_voices. (Character dialogue voices are separate: set_character_voice.)
list_voice_blocksList 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: ...]` direction governing it (never spoken; null when the span carries none). Word-level subtitle timings are stripped
update_voice_blockOverride 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 — existing audio is not regenerated automatically.
rescan_voice_blocksRe-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. Blocks whose spoken text is unchanged keep their audio; only edited blocks come back empty, so a follow-up genera
generate_voiceoverGenerate 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-generated and currently-generating blocks are skipped, never re-billed). Pass voice_block_ids to explicitly REgene
generate_storyboardPlan the full visual storyboard: segments, shot pacing, image/video prompts, overlays, continuation chains — driven by the channel's director and art styles. Requires voiceover to exist (timing comes from it). Plans generated stills + real media only (real media requires the styl
get_segmentsList 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/continuation/regenerate) — you never need a UUID. Returns {total, offset, returned, segments}; on big proje
get_segment_assetsList 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.
regenerate_segment_assetRegenerate 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, "image" targets its start frame). Use a different model, override prompt sections (see get_section_templat
rollback_segment_assetRestore 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 reversible for free. The current render is archived in its place, making the rollback itself reversible. The frame/
change_segment_typeChange 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"), or an overlay scene. Generated video is NOT set here — it's the state a rendered still reaches through anima
animate_segmentAnimate 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 video credits on this call — the segment's image must already be rendered (400 otherwise). A refused generat
update_segment_contentRewrite 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. The visual assets reset to not_started: re-render them afterwards (genera

Recent checks

2026-09-28 08:46:00live · HTTP 2001401ms
2026-09-28 06:30:52live · HTTP 200244ms
2026-09-28 04:01:05live · HTTP 200669ms
2026-09-28 01:45:57live · HTTP 200686ms
2026-09-27 23:30:51live · HTTP 200426ms
2026-09-27 21:01:13live · HTTP 2001735ms
2026-09-27 18:46:03live · HTTP 200621ms
2026-09-27 16:31:10live · HTTP 2003536ms
2026-09-27 14:31:07live · HTTP 2002956ms
2026-09-27 12:01:30live · HTTP 2001259ms
2026-09-27 09:46:12live · HTTP 200335ms
2026-09-27 07:30:51live · HTTP 2001937ms

Link

https://api.framesail.com/mcp

Questions about Framesail in Muse

How do I connect Framesail to Muse?

Not in Muse's Connectors list yet, but Muse can still use it. Paste this into Muse: "Use Framesail to help me. It is a free service with an MCP server at https://api.framesail.com/mcp. It does not need an API key. Ask me before you share anything with it." Muse asks before it shares anything with the app's site. Meta does not review apps used this way, so only use ones you trust. We tested this in the Muse app on September 24, 2026: Muse used an app's link directly this way and returned a live answer.

Is Framesail working right now?

At the last check (September 28, 2026, 08:45 UTC) the endpoint was working, answering in 1401ms. Over the last 7 days it answered 100% of health checks. It is checked every 15 minutes.

Is Framesail safe to connect to Muse?

It was screened on September 24, 2026 with the result "screened, no issues found". Screening checks the domain against threat feeds and reads the tools for hidden instructions and requests for passwords or card numbers. It cannot see the server's code, so grant only the access you need.

What can Framesail do in Muse?

It exposes 40 tools, including list_channels, create_channel, list_projects, create_project. For example, you could ask Muse: "Create a 10-minute YouTube video about sustainable fashion by describing the topic and letting Framesail generate the script, visuals, and narration."

Follow Framesail

Tell me if Framesail goes down, comes back, or changes its tools
One email per change. You confirm first, and every email has a link to stop.
Made this app? Claim it or get a status badge

Is this yours?

This listing was added from public sources (Found in the official MCP Registry (com.framesail/framesail)). If you build Framesail, claim it to correct the details and get your badge.

Claim this listing

Framesail status badge

Paste this on your site or README. It always shows the latest check.

<a href="https://musedirectory.ai/connector/framesail"><img src="https://musedirectory.ai/badge/framesail.svg" alt="Framesail on musedirectory.ai" width="236" height="40"></a>

More for app makers