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

Squall Studio

REMOTE · SQUALLSTUDIO.COM · SCANNED SEP 26

Read, edit and generate AI microdrama scripts, shots, characters and video in Squall Studio

Available components

+4 this week 74 Trust /100
Trust breakdown (7 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 → Why this is hard to score →

Endpoint Security57
Transport & Reachability100
Schema Quality & AI Usability78
  • AI-judged instruction clarity (excellent).Pass
  • Tool/resource definitions use about 2789 tokens (~92/item across 30 items; 30 tools + 0 resources), lean.Pass
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management63
  • Stability observed for 19 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage98
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 95% of tool parameters carry a description.Partial
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • All 3 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
  • An AI judge read all 30 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

How do I install the Squall Studio MCP server?

Squall Studio is a hosted endpoint at https://squallstudio.com/api/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · squallstudio.com

# add to Claude Code
claude mcp add --transport http com-squallstudio-squall-studio 'https://squallstudio.com/api/mcp'
// .cursor/mcp.json
{
  "mcpServers": {
    "com-squallstudio-squall-studio": {
      "url": "https://squallstudio.com/api/mcp"
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "com-squallstudio-squall-studio": {
      "type": "http",
      "url": "https://squallstudio.com/api/mcp"
    }
  }
}
# ~/.codex/config.toml
[mcp_servers.com-squallstudio-squall-studio]
url = "https://squallstudio.com/api/mcp"
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-squallstudio-squall-studio": {
      "type": "remote",
      "url": "https://squallstudio.com/api/mcp",
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add com-squallstudio-squall-studio --url 'https://squallstudio.com/api/mcp' --transport streamable-http
# ~/.hermes/config.yaml
mcp_servers:
  com-squallstudio-squall-studio:
    url: "https://squallstudio.com/api/mcp"
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "com-squallstudio-squall-studio": {
      "Transport": "http",
      "Url": "https://squallstudio.com/api/mcp"
    }
  }
}
# add to Vellum
assistant mcp add com-squallstudio-squall-studio -t streamable-http -u 'https://squallstudio.com/api/mcp'
// mcp.json
{
  "mcpServers": {
    "com-squallstudio-squall-studio": {
      "type": "http",
      "url": "https://squallstudio.com/api/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.

  • 26 Sept 26 +1

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

  • 25 Sept 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
  • 24 Sept 26 +1

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

  • 22 Sept 26 +1

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

  • 20 Sept 26 +1

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

  • 18 Sept 26 +1

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

  • 16 Sept 26 +1

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

  • 15 Sept 26 0
    • Tool “list_shot_continuity_references” rewrote its description, which is the text the model reads security
    • Schema quality: 2531 → 2789 ▼ functional
    • New tool “update_shot_continuity_reference” functional
    • “attach_shot_continuity_reference” added an optional parameter “guidance” cosmetic
    • “upload_shot_continuity_reference” added an optional parameter “guidance” cosmetic
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 26 Sept 2026 · Probed https://squallstudio.com/api/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=squallstudio.com CN=WR3,O=Google Trust Services,C=US 30 Aug 2026 28 Nov 2026 RSA 2048 SHA256-RSA f077ab361cf577ff0a8c495c147c55d9
SANs: squallstudio.com
CN=WR3,O=Google Trust Services,C=US (CA) CN=GTS Root R1,O=Google Trust Services LLC,C=US 13 Dec 2023 20 Feb 2029 RSA 2048 SHA256-RSA 7ff005a91568d63abc22861684aa4b5a
CN=GTS Root R1,O=Google Trust Services LLC,C=US (CA) CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE 19 Jun 2020 28 Jan 2028 RSA 4096 SHA256-RSA 77bd0d6cdb36f91aea210fc4f058d30d

Background: What to check on a remote MCP endpoint →

DNSSEC insecure

Validation of squallstudio.com. — Not signed

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

The endpoint answered without asking for a token. Anyone who knows the URL can reach it.

Result No authorisation required
HTTP status 200

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://squallstudio.com/api/mcp Verified 200
http (plaintext) http://squallstudio.com/api/mcp HTTPS enforced 302 https://squallstudio.com/api/mcp
MCP tools · 30 exposed · ~2,789 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. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
attach_shot_continuity_reference ~219

Attach an image that already exists in this project to a shot as a continuity reference. A continuity reference is fed into this shot's next clip generation as a layout, prop, wardrobe and screen-direction guide — it is NOT used as the shot's opening frame or exact composition. Attaching one changes nothing until the clip is generated again. Find asset ids with get_asset_library. A shot's own thumbnail is its clip's last frame, so attaching the previous scene's thumbnail is the cheapest way to carry continuity forward. To use an image that is not yet an asset here, use upload_shot_continuity_reference instead.

NameTypeReqDescription
asset_idstringyesId of an existing image asset in this project.
guidancestring–How the video model should use this reference, e.g. which positions or props to match and what to ignore. Saved on the reference and sent with every later generation of the shot.
shot_idstringyesShot id (episode_shots row) to attach the reference to.

No output schema declared.

No examples provided.

generate_character_image ~141

Generate a reference image for a character. Spends credits. Returns a job id — poll it with get_job.

NameTypeReqDescription
character_idstringyesCharacter id.
character_look_idstring–Specific look; defaults to the base look.
idempotency_keystringyesStable key identifying this generation request. Reuse the SAME key when retrying the same request — the original job is returned and no second charge is made. Use a NEW key when you deliberately want…
reference_image_asset_idsarray–Existing asset ids to use as references.
user_notesstring–Extra direction for the image.

No output schema declared.

No examples provided.

generate_episode_music ~104

Generate a background music track for an episode. Requires the episode to already have an assembled video. Spends credits. Returns a job id — poll it with get_job.

NameTypeReqDescription
episode_idstringyesEpisode id.
idempotency_keystringyesStable key identifying this generation request. Reuse the SAME key when retrying the same request — the original job is returned and no second charge is made. Use a NEW key when you deliberately want…

No output schema declared.

No examples provided.

generate_location_image ~111

Generate a reference image for a location. Spends credits. Returns a job id — poll it with get_job.

NameTypeReqDescription
idempotency_keystringyesStable key identifying this generation request. Reuse the SAME key when retrying the same request — the original job is returned and no second charge is made. Use a NEW key when you deliberately want…
location_idstringyesLocation id.
reference_image_asset_idsarray––
user_notesstring––

No output schema declared.

No examples provided.

generate_script ~258

Write a full multi-episode script from a story premise. This CREATES A NEW PROJECT — it does not edit an existing one, and it takes no project_id. While the job runs, job.output carries live progress (phase, completedEpisodes, totalEpisodes). On success the new project also has its characters, locations, episodes, shots and segments seeded, ready for the other tools. Spends credits. Returns a job id — poll it with get_job.

NameTypeReqDescription
episode_countinteger–How many episodes to write.
episode_length_secondsintegeryesTarget length of each episode, in seconds.
genrestring–Genre label.
idempotency_keystringyesStable key identifying this generation request. Reuse the SAME key when retrying the same request — the original job is returned and no second charge is made. Use a NEW key when you deliberately want…
languagestring–Language to write in.
screen_ratiostring–Aspect ratio.
story_ideastringyesThe story premise to write from.
target_platformstring–Platform the episodes are cut for.
visual_stylestring–Visual style. Defaults to Realistic TV Drama.

No output schema declared.

No examples provided.

generate_shot_background_image ~305

Generate an empty background plate for one short shot. Both reference inputs steer what the plate itself looks like — layout, prop identity, materials and lighting — and are unrelated to upload_shot_continuity_reference, which guides clip generation instead. Use reference_image_asset_ids for images already in this project (find them with get_asset_library) and reference_images_base64 to send bytes you produced locally, for example a frame lifted from an earlier scene so a prop matches what is already on screen. Uploaded bytes are used for this one generation and are not kept as project assets. The location's own reference images are always included on top of both. Spends credits. Returns a job id — poll it with get_job.

NameTypeReqDescription
idempotency_keystringyesStable key identifying this generation request. Reuse the SAME key when retrying the same request — the original job is returned and no second charge is made. Use a NEW key when you deliberately want…
reference_image_asset_idsarray––
reference_images_base64array–Images to send as bytes. PNG, JPEG and WebP only; the bytes are sniffed, so the filename extension alone will not get a non-image through. Keep them small — a 720x1280 JPEG is roughly 40-130KB of bas…
short_shot_numberintegeryesShort shot number within the shot.
shot_idstringyesShot id.

No output schema declared.

No examples provided.

generate_shot_clip ~125

Generate a video clip for a single shot (episode_shots row). Spends credits. Returns a job id — poll it with get_job.

NameTypeReqDescription
idempotency_keystringyesStable key identifying this generation request. Reuse the SAME key when retrying the same request — the original job is returned and no second charge is made. Use a NEW key when you deliberately want…
modelstring–Video model override.
short_shot_numberinteger–Target a specific short shot.
shot_idstringyesShot id.

No output schema declared.

No examples provided.

get_asset_library ~27

List generated assets available to a project.

NameTypeReqDescription
project_idstringyesProject id.

No output schema declared.

No examples provided.

get_character ~23

Get one character record.

NameTypeReqDescription
character_idstringyesCharacter id.

No output schema declared.

No examples provided.

get_character_looks ~26

List a character's looks.

NameTypeReqDescription
character_idstringyesCharacter id.

No output schema declared.

No examples provided.

get_episode ~23

Get one episode record.

NameTypeReqDescription
episode_idstringyesEpisode id.

No output schema declared.

No examples provided.

get_episode_editor ~65

Get the full episode tree in one call: project, episode, outline, script, segments, shots, characters, looks, locations and jobs. Prefer this over several narrower calls.

NameTypeReqDescription
episode_idstringyesEpisode id.
project_idstringyesProject id.

No output schema declared.

No examples provided.

get_episode_shots ~27

List the shots in an episode.

NameTypeReqDescription
episode_idstringyesEpisode id.

No output schema declared.

No examples provided.

get_job ~40

Get one generation job's status and output. Use this to poll a job returned by a generate_* tool.

NameTypeReqDescription
job_idstringyesJob id.

No output schema declared.

No examples provided.

get_location ~23

Get one location record.

NameTypeReqDescription
location_idstringyesLocation id.

No output schema declared.

No examples provided.

get_project ~27

Get one project's summary and current workflow step.

NameTypeReqDescription
project_idstringyesProject id.

No output schema declared.

No examples provided.

get_project_characters ~25

List a project's characters.

NameTypeReqDescription
project_idstringyesProject id.

No output schema declared.

No examples provided.

get_project_episodes ~27

List the episodes in a project.

NameTypeReqDescription
project_idstringyesProject id.

No output schema declared.

No examples provided.

get_project_locations ~24

List a project's locations.

NameTypeReqDescription
project_idstringyesProject id.

No output schema declared.

No examples provided.

get_project_script ~26

Get a project's full script package.

NameTypeReqDescription
project_idstringyesProject id.

No output schema declared.

No examples provided.

get_scene_assets ~53

Get one scene with its shots, characters, locations and continuity references.

NameTypeReqDescription
episode_idstringyesEpisode id.
project_idstringyesProject id.
scene_numberintegeryesScene number.

No output schema declared.

No examples provided.

list_episode_segments ~27

List the video segments in an episode.

NameTypeReqDescription
episode_idstringyesEpisode id.

No output schema declared.

No examples provided.

list_project_jobs ~29

List generation jobs for a project, newest first.

NameTypeReqDescription
project_idstringyesProject id.

No output schema declared.

No examples provided.

list_projects ~17

List all projects owned by the authenticated user.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_shot_continuity_references ~86

List the continuity reference images attached to one shot. get_scene_assets also returns these, but only for a whole scene — use this when you need the asset ids, for example to remove one or update its guidance. Each reference's saved guidance is in metadata.continuityGuidance.

NameTypeReqDescription
shot_idstringyesShot id (episode_shots row).

No output schema declared.

No examples provided.

remove_shot_continuity_reference ~97

Detach one continuity reference from a shot. List them first with list_shot_continuity_references to get the asset id. This deletes the reference asset permanently and cannot be undone.

NameTypeReqDescription
asset_idstringyesId of the continuity reference to remove, from list_shot_continuity_references.
shot_idstringyesShot id (episode_shots row) the reference is attached to.

No output schema declared.

No examples provided.

update_location ~266

Overwrite fields on one location. Read it first (get_project_locations or get_location), then send ONLY the fields you changed — omitted fields are left untouched. IMPORTANT: a location is usually shared by several scenes across episodes, so this edit changes every scene that uses it. Check where it is used first; if the change is meant for one scene only, it needs a NEW location rather than an edit to this one. Editing name, short_description, visual_prompt, user_prompt, visual_style, aspect_ratio or spatial_layout marks the location stale, because its existing generated image no longer matches the description — regenerate the image if you want them back in sync. Editing mood, location_type, recurring or appears_in_episodes does not affect the image and leaves the stale flag alone. spatial_layout is the set bible: the named zones of the set and the fixed zone and height of each prop. Scenes must draw their spatial_geometry zones from it instead of inventing labels, so correcting it here fixes prop placement for every scene at once. Keep descriptions consistent with the owning character's status and the project's tone. This writes immediately and cannot be undone.

NameTypeReqDescription
location_idstringyesLocation id to update.
patchobjectyesFields to change. Send only what you are changing.

No output schema declared.

No examples provided.

update_shot ~146

Overwrite fields on one shot. Read the shot first (get_episode_shots or get_episode_editor), decide the change yourself, then send ONLY the fields you changed — omitted fields are left untouched. To change dialogue, edit camera_setup.short_shots[].dialogue_covered; never send the deprecated `dialogue` field, which can duplicate or resurrect lines. This writes immediately and cannot be undone.

NameTypeReqDescription
patchobjectyesFields to change. Send only what you are changing. Edit dialogue via camera_setup.short_shots[].dialogue_covered, not the deprecated `dialogue`.
shot_idstringyesShot id (episode_shots row) to update.

No output schema declared.

No examples provided.

update_shot_continuity_reference ~154

Set or clear the guidance on one continuity reference already attached to a shot — the note telling the video model how to use that image. List references first with list_shot_continuity_references to get the asset id. Like attaching, this changes nothing until the clip is generated again.

NameTypeReqDescription
asset_idstringyesId of the continuity reference to update, from list_shot_continuity_references.
guidance–yesHow the video model should use this reference, e.g. which positions or props to match and what to ignore. Send null or an empty string to clear it.
shot_idstringyesShot id (episode_shots row) the reference is attached to.

No output schema declared.

No examples provided.

upload_shot_continuity_reference ~268

Attach an image you produced locally to a shot as a continuity reference. A continuity reference is fed into this shot's next clip generation as a layout, prop, wardrobe and screen-direction guide — it is NOT used as the shot's opening frame or exact composition. Attaching one changes nothing until the clip is generated again. Send the image as base64 — keep it small (a 720x1280 JPEG is roughly 40-130KB of base64). PNG, JPEG and WebP only; the bytes are sniffed, so the filename extension alone will not get a non-image through. If the image is already an asset in this project, use attach_shot_continuity_reference instead and send no bytes.

NameTypeReqDescription
filenamestringyesFile name to store it under, e.g. scene-1-last-frame.jpg.
guidancestring–How the video model should use this reference, e.g. which positions or props to match and what to ignore. Saved on the reference and sent with every later generation of the shot.
image_base64stringyesThe image bytes, base64-encoded. No data: URI prefix.
shot_idstringyesShot id (episode_shots row) to attach the reference to.

No output schema declared.

No examples provided.

Common questions

What is the Squall Studio MCP server?

Squall Studio is an MCP server listed in the public MCP registry as com.squallstudio/squall-studio. Read, edit and generate AI microdrama scripts, shots, characters and video in Squall Studio. This page covers its hosted endpoint (https://squallstudio.com/api/mcp).

Is the Squall Studio MCP server safe to use?

Squall Studio scores 74 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the Squall Studio MCP server expose?

Squall Studio exposes 30 tools: list_projects, get_project, get_project_episodes, get_episode, get_episode_editor, and 25 more. Their descriptions and schemas cost roughly 2,789 tokens of context every time the server is loaded.

Does the Squall Studio MCP server require authentication?

No. We connected to Squall Studio without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

Is the Squall Studio MCP server still maintained?

Squall Studio is still listed as active in the MCP registry. We last reached this channel on 26 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.