Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, email [email protected] and we’ll put it right.

com.framesail/framesail

REMOTE · API.FRAMESAIL.COM · SCANNED AUG 3

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

+8 this week 81 Trust /100
Trust breakdown (6 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score →

Endpoint Security94
Transport & Reachability100
Schema Quality & AI Usability73
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 9752 tokens (~143/item across 68 items; 68 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management27
  • Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.

remote · api.framesail.com

# add to Claude Code
claude mcp add --transport http com-framesail-framesail https://api.framesail.com/mcp
# ~/.codex/config.toml
[mcp_servers.com-framesail-framesail]
url = "https://api.framesail.com/mcp"
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-framesail-framesail": {
      "type": "remote",
      "url": "https://api.framesail.com/mcp",
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add com-framesail-framesail --url https://api.framesail.com/mcp --transport streamable-http
# ~/.hermes/config.yaml
mcp_servers:
  com-framesail-framesail:
    url: "https://api.framesail.com/mcp"
// mcp.json
{
  "mcpServers": {
    "com-framesail-framesail": {
      "type": "http",
      "url": "https://api.framesail.com/mcp"
    }
  }
}

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 2 Aug 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 20 to 23. That category is still filling its 30-day observation window: 6 days of observed history at the previous scan, 7 at this one. The score rises as the window fills, whether or not the server changes.

  • 31 Jul 26 +5
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 29 Jul 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.

  • 28 Jul 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

  • 27 Jul 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 26 Jul 26 73

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 3 Aug 2026 · Probed https://api.framesail.com/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=api.framesail.com CN=YE2,O=Let's Encrypt,C=US 20 Jun 2026 18 Sept 2026 ECDSA 256 ECDSA-SHA384 5c6b1cef4a9c696c389c6d9edab9fff5d2e
SANs: api.framesail.com
CN=YE2,O=Let's Encrypt,C=US (CA) CN=Root YE,O=ISRG,C=US 3 Sept 2025 2 Sept 2028 ECDSA 384 ECDSA-SHA384 4df3b15dd6c0784c507cd37b58e6f115
CN=Root YE,O=ISRG,C=US (CA) CN=ISRG Root X2,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 ECDSA 384 ECDSA-SHA384 872165fc34b6e5fba8add5b3705fb53a
CN=ISRG Root X2,O=Internet Security Research Group,C=US (CA) CN=ISRG Root X1,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 ECDSA 384 SHA256-RSA 6c8f1dc727c7117f7baf853ac980f9cd
DNSSEC insecure

Validation of api.framesail.com. Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
com. present 19718 13 Verified
framesail.com. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication Enforced and verified

The endpoint asked for a token and published valid RFC 9728 metadata describing how to get one.

Result Enforced and verified
Enforced On tool calls
HTTP status 200

WWW-Authenticate challenge Bearer resource_metadata="https://api.framesail.com/.well-known/oauth-protected-resource/mcp"

Bearer resource_metadata="https://api.framesail.com/.well-known/oauth-protected-resource/mcp"
Header Value
strict-transport-security max-age=63072000; includeSubDomains; preload
content-security-policy default-src 'none'; frame-ancestors 'none'
x-content-type-options nosniff
x-frame-options DENY
referrer-policy no-referrer

Protected resource metadata

Document https://api.framesail.com/.well-known/oauth-protected-resource/mcp
Retrieved Yes
Resource https://api.framesail.com/mcp
Authorisation server https://api.framesail.com
Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://api.framesail.com/mcp Verified 200
http (plaintext) http://api.framesail.com/mcp HTTPS enforced 301 https://api.framesail.com/mcp
MCP tools — 68 exposed · ~8,116 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.

Tool Tokens
revise_script ~160

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 it to revise the whole script. Synchronous — returns {revised_text}, which is NOT saved: splice it over selected_text (or replace the full script) and call save_script to keep it.

NameTypeReqDescription
instructionstringyesNatural-language edit instruction, e.g. "make the intro punchier"
project_idstringyesProject ID, as returned by create_project or list_projects
selected_textstringExact passage to rewrite; must appear verbatim in the active script. Omit to revise the whole script

No output schema declared.

No examples provided.

save_script ~98

Save script text (your own draft, or an edited version of the generated one — saving creates a new version, old versions are kept). Run scan_script afterwards so assets and voice blocks reflect the new text.

NameTypeReqDescription
contentstringyesFull script text to save as a new version; plain prose narration, optionally with scene headings
project_idstringyesProject ID, as returned by create_project or list_projects

No output schema declared.

No examples provided.

scan_script ~141

Analyze 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). Async — returns {job_id}.

NameTypeReqDescription
editable_sectionsPer-call prompt section overrides, keyed by section name; see get_section_template("script_scan")
modelstringModel ID to scan with; empty uses the default (see list_models("script_scan"))
project_idstringyesProject ID, as returned by create_project or list_projects

No output schema declared.

No examples provided.

set_character_voice ~96

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 ids with list_voices.

NameTypeReqDescription
asset_idstringyesCharacter asset ID, from list_assets
voice_idstringyesTTS voice ID, from list_voices (use the provider matching the project's voice_tts_provider)

No output schema declared.

No examples provided.

set_narrator_voice ~102

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 separate: set_character_voice.)

NameTypeReqDescription
project_idstringyesProject ID, as returned by create_project or list_projects
voice_idstringyesTTS voice ID for the narrator, from list_voices (use the provider matching the project's voice_tts_provider)

No output schema declared.

No examples provided.

set_project_style ~98

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 to switch a project between channel styles.

NameTypeReqDescription
project_idstringyesProject ID, as returned by create_project or list_projects
style_idstringyesID of the style to make the project's default, from create_style or list_styles

No output schema declared.

No examples provided.

set_provider_key ~121

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, gemini, anthropic, fal, elevenlabs, minimax.

NameTypeReqDescription
keystringyesThe provider API key to register; stored encrypted at rest
providerstringyesProvider the key belongs to: "openai", "gemini", "anthropic", "fal", "elevenlabs", or "minimax"

No output schema declared.

No examples provided.

set_segment_continuation ~163

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). continues_from is that earlier segment's number; pass 0 to clear the link. Regenerate the segment's image afterwards — the reference is applied at generation time.

NameTypeReqDescription
continues_frominteger1-based number of the EARLIER segment whose frame this one continues; pass 0 to clear the link
project_idstringyesProject ID, as returned by create_project or list_projects
segment_numberintegeryes1-based number of the segment whose image should continue an earlier frame, as reported by get_segments

No output schema declared.

No examples provided.

split_segment ~160

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. Later segments renumber — re-check get_segments before further edits.

NameTypeReqDescription
inherit_indexinteger0-based index of the resulting part that keeps the original creative data (default: the first part)
offsets_msarrayyesCut points as millisecond offsets from the segment start, ascending; 1-3 cuts producing 2-4 parts
project_idstringyesProject ID, as returned by create_project or list_projects
segment_numberintegeryes1-based number of the segment to split, as reported by get_segments

No output schema declared.

No examples provided.

update_asset ~84

Rename an asset and/or rewrite its description. If the look changed, regenerate its reference image afterwards so renders match.

NameTypeReqDescription
asset_idstringyesAsset ID, as returned by list_assets or create_asset
descriptionstringNew generation-facing look description; empty leaves it unchanged
namestringNew asset name; empty leaves the name unchanged

No output schema declared.

No examples provided.

update_caption_config ~102

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 export — no rebuild needed.

NameTypeReqDescription
caption_configobjectyesPartial caption config to merge (keys like enabled, plus styling); read the current value from get_project's caption_config
project_idstringyesProject ID, as returned by create_project or list_projects

No output schema declared.

No examples provided.

update_music_track ~108

Tweak a music track. fields keys: name, volume (0-1), loop, start_frame, duration_frames, position, trim_start_frame, trim_end_frame.

NameTypeReqDescription
fieldsobjectyesPartial dict of track fields to patch; allowed keys: name, volume (0-1), loop, start_frame, duration_frames, position, trim_start_frame, trim_end_frame
track_idstringyesMusic track ID, from list_music_tracks or add_music_track

No output schema declared.

No examples provided.

update_project ~132

Patch project fields. Updatable: title, description, asset_mix, sfx_level, video_concept, voice_mix, voice_tts_provider, script_target_minutes, narrator_speed. (The narrator's TTS voice is NOT here — use set_narrator_voice.)

NameTypeReqDescription
fieldsobjectyesPartial dict of fields to patch; allowed keys: title, description, asset_mix, sfx_level, video_concept, voice_mix, voice_tts_provider, script_target_minutes, narrator_speed
project_idstringyesProject ID, as returned by create_project or list_projects

No output schema declared.

No examples provided.

update_segment_content ~174

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. The visual assets reset to not_started: re-render them afterwards (generate_segments or regenerate_segment_asset). For a precise prompt tweak with no rewrite, use regenerate_segment_asset with editable_sections instead.

NameTypeReqDescription
project_idstringyesProject ID, as returned by create_project or list_projects
segment_numberintegeryes1-based segment number, as reported by get_segments
user_inputstringyesNatural-language feedback describing the change to this shot, e.g. "make this a close-up" or "show the machine from above"

No output schema declared.

No examples provided.

update_style_fields ~156

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 the FULL flat dict to write: {key: {"value": str, "applies_to": [...]}} (fetch with get_style, modify, send back). Editing fields does NOT trigger re-analysis, so your edits stick.

NameTypeReqDescription
fieldsobjectyesFULL flat dict of analyzed fields to write, shaped {key: {"value": str, "applies_to": [...]}} — fetch with get_style, modify, send the whole dict back
style_idstringyesStyle ID, as returned by create_style or list_styles

No output schema declared.

No examples provided.

update_voice_block ~116

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 — existing audio is not regenerated automatically.

NameTypeReqDescription
voice_block_idstringyesVoice block ID, from list_voice_blocks
voice_idstringNew TTS voice ID for this block, from list_voices; empty leaves the voice unchanged
volumePlayback volume for this block, 0-1; omit to leave unchanged

No output schema declared.

No examples provided.

view_image ~106

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 Framesail media URLs are allowed.

NameTypeReqDescription
urlstringyesPublic Framesail media URL to fetch — a public_url from get_segment_assets, a file_path from list_assets, or a template/preset image URL from get_style / list_style_presets; other hosts are rejected

No output schema declared.

No examples provided.

whoami ~46

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 account; costs nothing.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.