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.

ai.switchapp/switch

REMOTE · MCP.SWITCHAPP.AI

Generate, manage and explore your Switch AI image and video library, scoped to your account.

Available components

0 this week 90 Trust /100

Last scanned (7 hours ago)

Scores higher than 98% of remote servers

Reachable. Last reached 5 Nov 2026.

Category Design and Media

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 Security94
Transport & Reachability100
Schema Quality & AI Usability74
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 41306 tokens (~308/item across 134 items; 133 tools + 1 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 Management100
  • No destabilizing schema changes in the last 30 days.Pass
Tool Coverage98
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 93% of tool parameters carry a description.Partial
  • Structured output schemas are declared (2% of tools); any adoption earns full credit.Pass
Tool Safety50
  • Injection-marker check failed: the server instructions contains an instruction to conceal the call from the user, the text "never tell the user", at byte 4540 of that field. See how to fix → Fail
  • All 8 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
  • An AI judge read all 135 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
  • Supports UI / widget rendering.Pass
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.

  • 5 Nov 26 0
    • Tool “get_video_status” rewrote its description, which is the text the model reads security
    • “generate_image” reworded the description of “brand_kit” cosmetic
    • “generate_video” reworded the description of “brand_kit” cosmetic
  • 4 Nov 26 0
    • “enhance_video_prompt” added an optional parameter “anchor_frames” cosmetic
    • “enhance_video_prompt” added an optional parameter “camera_movement” cosmetic
    • “enhance_video_prompt” added an optional parameter “keep_original_sound” cosmetic
    • “enhance_video_prompt” added an optional parameter “multi_shot” cosmetic
    • “enhance_video_prompt” added an optional parameter “negative_prompt” cosmetic
    • “enhance_video_prompt” added an optional parameter “output_format” cosmetic
    • “enhance_video_prompt” added an optional parameter “return_last_frame” cosmetic
    • “enhance_video_prompt” added an optional parameter “seed” cosmetic
    • “generate_image” added an optional parameter “camera_angles” cosmetic
    • “generate_image” added an optional parameter “characters” cosmetic
    • “generate_image” added an optional parameter “enhance” cosmetic
    • “generate_image” added an optional parameter “face_expression” cosmetic
    • “generate_image” added an optional parameter “lighting” cosmetic
    • “generate_image” added an optional parameter “reference_roles” cosmetic
    • “generate_image” added an optional parameter “resolution” cosmetic
    • “generate_image” added an optional parameter “skin” cosmetic
    • “generate_image” added an optional parameter “transparent_background” cosmetic
    • “generate_video” added an optional parameter “anchor_frames” cosmetic
    • “generate_video” added an optional parameter “camera_movement” cosmetic
    • “generate_video” added an optional parameter “keep_original_sound” cosmetic
    • “generate_video” added an optional parameter “multi_shot” cosmetic
    • “generate_video” added an optional parameter “negative_prompt” cosmetic
    • “generate_video” added an optional parameter “output_format” cosmetic
    • “generate_video” added an optional parameter “return_last_frame” cosmetic
    • “generate_video” added an optional parameter “seed” cosmetic
    • “quote_video” added an optional parameter “anchor_frames” cosmetic
    • “quote_video” added an optional parameter “camera_movement” cosmetic
    • “quote_video” added an optional parameter “keep_original_sound” cosmetic
    • “quote_video” added an optional parameter “multi_shot” cosmetic
    • “quote_video” added an optional parameter “negative_prompt” cosmetic
    • “quote_video” added an optional parameter “output_format” cosmetic
    • “quote_video” added an optional parameter “return_last_frame” cosmetic
    • “quote_video” added an optional parameter “seed” cosmetic

    33 cosmetic changes on this day. Switch on “Show cosmetic changes” to see them.

  • 3 Nov 26 0
    • “generate_image” added an optional parameter “brand_kit” cosmetic
    • “generate_video” added an optional parameter “brand_kit” cosmetic

    2 cosmetic changes on this day. Switch on “Show cosmetic changes” to see them.

  • 1 Nov 26 0
    • The server rewrote its instructions, which are the text every model session reads security
    • Tool “generate_video” rewrote its description, which is the text the model reads security
  • 31 Oct 26 0
    • The server rewrote its instructions, which are the text every model session reads security
    • Tool “add_sound_to_video” rewrote its description, which is the text the model reads security
    • Tool “analyze_video” rewrote its description, which is the text the model reads security
    • Tool “list_styles” rewrote its description, which is the text the model reads security
    • New tool “find_epidemic_sound” functional
    • New tool “video_to_music” functional
    • “add_sound_to_video” added an optional parameter “cues” cosmetic
    • “analyze_video” added an optional parameter “fps” cosmetic
    • “analyze_video” added an optional parameter “timeline” cosmetic
    • “enhance_video_prompt” reworded the description of “reference_audio_urls” cosmetic
    • “generate_video” reworded the description of “reference_audio_urls” cosmetic
    • “quote_video” reworded the description of “reference_audio_urls” cosmetic
    • “talking_avatar_video” reworded the description of “image_url” cosmetic
  • 30 Oct 26 0
    • The server rewrote its instructions, which are the text every model session reads security
    • New tool “delete_my_folder”, which the server declares destructive security
    • New tool “rename_folder”, which the server declares destructive security
    • Tool “generate_image” rewrote its description, which is the text the model reads security
    • Tool “generate_sound_effect” rewrote its description, which is the text the model reads security
    • Tool “list_my_folders” rewrote its description, which is the text the model reads security
    • New tool “create_folder” functional
    • “enhance_video_prompt” added an optional parameter “person_named_resolution” cosmetic
    • “generate_sound_effect” added an optional parameter “model” cosmetic
    • “generate_sound_effect” added an optional parameter “output_format” cosmetic
    • “generate_video” added an optional parameter “person_named_resolution” cosmetic
    • “quote_video” added an optional parameter “person_named_resolution” cosmetic
    • “enhance_video_prompt” reworded the description of “model” cosmetic
    • “enhance_video_prompt” reworded the description of “reference_image_urls” cosmetic
    • “enhance_video_prompt” reworded the description of “reference_video_urls” cosmetic
    • “generate_image” reworded the description of “model” cosmetic
    • “generate_video” reworded the description of “model” cosmetic
    • “generate_video” reworded the description of “reference_image_urls” cosmetic
    • “generate_video” reworded the description of “reference_video_urls” cosmetic
    • “quote_video” reworded the description of “model” cosmetic
    • “quote_video” reworded the description of “reference_image_urls” cosmetic
    • “quote_video” reworded the description of “reference_video_urls” cosmetic
    • “talking_avatar_video” reworded the description of “audio_url” cosmetic
  • 29 Oct 26 0
    • Tool “generate_video” rewrote its description, which is the text the model reads security
    • “enhance_video_prompt” added an optional parameter “as_written” cosmetic
    • “generate_video” added an optional parameter “as_written” cosmetic
    • “quote_video” added an optional parameter “as_written” cosmetic
    • “generate_image” reworded the description of “aspect_ratio” cosmetic
  • 28 Oct 26 0
    • The server rewrote its instructions, which are the text every model session reads security
    • New tool “manage_voice”, which the server declares destructive security
    • Tool “extract_sound_effect” rewrote its description, which is the text the model reads security
    • Tool “list_my_audio” rewrote its description, which is the text the model reads security
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 5 Nov 2026 · Probed https://mcp.switchapp.ai/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=mcp.switchapp.ai CN=YR1,O=Let's Encrypt,C=US 11 Sept 2026 10 Dec 2026 RSA 2048 SHA256-RSA 64681e6fd9d3e28558b0df3c59ee8a208ca
SANs: mcp.switchapp.ai
CN=YR1,O=Let's Encrypt,C=US (CA) CN=Root YR,O=ISRG,C=US 3 Sept 2025 2 Sept 2028 RSA 2048 SHA256-RSA a20253f15f2691c05dc1ce13b9bcca4e
CN=Root YR,O=ISRG,C=US (CA) CN=ISRG Root X1,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 RSA 4096 SHA256-RSA f24b6d17f9d9ad7cb1c9fea78782699f

Background: What to check on a remote MCP endpoint →

DNSSEC insecure

Validation of mcp.switchapp.ai. — Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
ai. present 1814, 3799 8, 8 Verified
switchapp.ai. 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 realm="switch-mcp", error="invalid_token", resource_metadata="https://mcp.switchapp.ai/.well-known/oauth-protected-resource/mcp", scope="mcp:read"

Bearer realm="switch-mcp", error="invalid_token", resource_metadata="https://mcp.switchapp.ai/.well-known/oauth-protected-resource/mcp", scope="mcp:read"
Header Value
strict-transport-security max-age=63072000
x-content-type-options nosniff
referrer-policy strict-origin-when-cross-origin

Protected resource metadata

Document https://mcp.switchapp.ai/.well-known/oauth-protected-resource/mcp
Retrieved Yes
Resource https://mcp.switchapp.ai/mcp
Authorisation server https://mcp.switchapp.ai

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

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://mcp.switchapp.ai/mcp Verified 200
http (plaintext) http://mcp.switchapp.ai/mcp HTTPS enforced 308 https://mcp.switchapp.ai/mcp
MCP tools · 133 exposed · ~39,431 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
export_layer_set ~77

Prepare a private, short-lived download link for your own layers project: a ZIP holding every original transparent PNG plus a manifest of names, order, boxes and visibility, ready for Photoshop or Figma. Each call rebuilds the ZIP (one stored copy per project, overwritten).

NameTypeReqDescription
layer_set_idstringyesThe layers project id.

No output schema declared.

No examples provided.

export_shot_log ~136

Read or export the shot log of your Editor project (or one shared with you): format "json" (every field), "csv" (a sheet: shot number, timeline in/out, duration, source file, source in/out, description, shot size, angle, subjects, setting, action, objects, sound, suggested label, confidence, needs review, thumbnail), or "edl" (CMX 3600 for an NLE). Read only.

NameTypeReqDescription
formatstring–Default json.
project_idstring–The Editor project id (list_editor_projects). Omit for your latest project.

No output schema declared.

No examples provided.

extract_sound_effect ~443

Pull one described sound out of your video, like "keyboard clicks", "camera shutter" or "page turning", and split it into single effects to hear, trim and save. Use the video already in the chat: put its file id or name in video_url; when it was sent earlier, not with the latest words, find it first among what was sent before. Never ask the person to send it again. Give the sound in a few words, and start_seconds and end_seconds when the person says where it is (leave them out to search the whole video). Priced at 1 token for each 10 seconds searched. It answers with a job_id: the clips come into the chat by themselves when done (about a minute). For where a job is, or to stop it, use sound_extraction_status with the job_id. The same request again answers the job already made and charges nothing. Clips are split where the sound goes quiet, which is a suggestion: music or speech under the sound can leave traces. When separation keeps too little of the sound (more than 10 dB under that part of the video) or fails, the clips are cut straight from the video's own sound instead: the answer says from "cut from the video", tell the person that anything else playing at that moment is in them too. A cut holds every sound in that part, one clip per sound, whatever words were asked: never ask again for other sounds in the same part, and give each clip its own name from where it sits. A failed separation is not charged.

NameTypeReqDescription
againboolean–true only when the person asks to run the same extraction again (charged again).
end_secondsnumber–Optional, where it ends, in seconds.
soundstringyesThe sound to pull out in the person's own words, unchanged (they become the clip's name), e.g. "keyboard clicks".
start_secondsnumber–Optional, where the sound starts in the video, in seconds.
video_urlstringyesThe video in this chat by its file id or name, or an https link.

No output schema declared.

No examples provided.

find_editor_scenes ~214

Find the scene changes in a video of your Editor project (or one shared with you): the seconds in the file where the picture cuts, read by ffmpeg. Use them with edit_editor_timeline split_scenes (cut a placed clip at those points) or auto_clip (lay chosen pieces in a row). Also returns stills: the spans where the picture holds still; when you cut a screen recording or trim a piece out of a longer clip, cut inside a still span, never mid swipe or mid scroll. Free; a long file takes up to a few minutes.

NameTypeReqDescription
media_idstring–The media item id (read_editor_timeline lists the media).
media_namestring–Or the media item by name.
project_idstringyesThe Editor project id.
thresholdnumber–How big a picture change counts as a cut, 0.1 (every small change) to 0.9 (only hard cuts). Default 0.4.

No output schema declared.

No examples provided.

find_epidemic_sound ~288

Find licensed music tracks and sound effects in the Epidemic Sound catalogue, open to every account at no token cost. Search first: kind "music" (default) or "sound_effect" plus plain words for the moment; it returns sound_id, title, seconds and, for music, artists, bpm, moods and genres. To use one, call again with save_id (that sound_id) and the same kind: the high quality file is saved to your audio library and comes back with a generation_id (for add_sound_to_video or as a reference sound) and an audio_url. Use it for real music and real recorded effects; find_library_sound stays first for the small Switch Motion effects on the owner's account.

NameTypeReqDescription
kindstring–music (default) or sound_effect.
limitinteger–How many results, best match first. Default 6.
save_idstring–A sound_id from a search. Saves that file to your audio library instead of searching.
searchstring–What the moment needs, in plain words, e.g. "upbeat summer pop", "calm piano bed", "car door slam".
secondsnumber–With save_id: the seconds the search gave.
titlestring–With save_id: the title the search gave, so the saved sound keeps its name.

No output schema declared.

No examples provided.

find_library_sound ~278

Find sound effects, music beds and ambience for your video in the Switch Motion Sound Library (952 level matched sounds: whooshes, swooshes, transitions, hits, chimes, UI clicks, typing, risers, glitches, logo stingers, ambient and music beds). Open on the Switch owner's account only for now (any other account is refused: make an effect with generate_sound_effect or a music bed with generate_music there). On the owner's account, use it before making any new sound effect: the library comes first and only a few effects go in a video, one per real moment. Returns the best matches with sound_id, description, length, seconds and an audio_url to use. Optional length: short (about 1 s), medium (1 to 2.5 s) or long; limit defaults to 5 (max 12).

NameTypeReqDescription
lengthstring–Optional. short is about 1 s or less, medium 1 to 2.5 s, long over 2.5 s.
limitinteger–How many sounds, best match first. Default 5, max 12.
searchstringyesWhat the moment needs, in plain words, e.g. "soft photo flip swoosh", "slow thoughtful typing", "calm piano music bed".

No output schema declared.

No examples provided.

flatten_layer_set ~60

Save the current arrangement of your own layers project as a finished picture in your library, composited at full quality from the original layer files. The project stays editable and you can flatten again.

NameTypeReqDescription
layer_set_idstringyesThe layers project id.

No output schema declared.

No examples provided.

frame_at ~146

See your finished Editor render at the seconds you name: one still per second comes back as a picture, in the order asked (20 per answer; any more come back named in still_to_look_at for the next call). Look at every moment its renderChecks flagged before you say anything about it. Free; nothing changes.

NameTypeReqDescription
project_idstringyesThe Editor project id (list_editor_projects).
render_idstring–Which render: an export_id from export_editor_project or a render id or job id from the project's Renders. Leave out for the newest finished render.
secondsarrayyesThe moments to look at, in seconds from the start.

No output schema declared.

No examples provided.

generate_audio ~947

Generate spoken audio from text: narration, a voiceover, a read-aloud script, or a multi-voice dialogue. Pass text (up to 3000 chars) — the words to be spoken. To speak in one of YOUR saved voices, pass voice with the voice NAME (or id): users speak plain language and never know ids, so resolve the name yourself (the voice tool, action "list", shows every saved voice) and never ask the user for an id. Reference voices, trained clones and preset voices are all routed correctly by kind. To match a voice instantly from a clip instead, pass reference_audio_url (a short clip) or up to 3 reference_audio_urls and address them as @Audio1, @Audio2, @Audio3 in the text for dialogue. Alternatively pass image_url to voice a scene from a picture (cannot combine with reference audio). Pass delivery to direct HOW it should sound in plain English — the voice (gender, age, accent, emotion, tone, speed), the mic and room, and any background sound or music — e.g. "soft, warm and a little flirty, unhurried, close clear mic, no echo"; it works with any saved voice (trained clones included), with clips, or with no voice. To fix the length of a sentence, put a time window in front of it inside text, e.g. [5.5s:8.0s] before the sentence. Optional speech_rate (-50..100), pitch (-12..12), loudness (-50..100). Before writing a delivery line, a multi-voice scene or timed lines, call load_workflow_playbook with id playbook/audio-prompting: it holds the prompt order, the voice description fields, the @Audio tagging rules, timing control and the limits. Returns a playable audio_url, duration_seconds, and generation_id (also saved to your library). A longer line (roughly 20 seconds of speech or more) may instead return status "rendering" with a request_id: the take is still being made and is not lost — call get_audio_status with that request_id every 15 seconds until audio_url comes back, and never re-run the same line. To find an earlier take, call list_my_audio.

NameTypeReqDescription
deliverystring–Optional. How it should SOUND, in plain English: the voice (gender, age, accent, emotion, tone, speed), mic and room, background sound or music — e.g. "young woman, warm Latin accent, soft, a little…
formatstring–Optional output format. Default mp3.
image_urlstring–Optional. Voice a scene from a picture. Cannot be combined with reference audio.
loudnessnumber–Optional. Loudness, -50 (quieter) to 100 (louder). 0 is normal.
pitchnumber–Optional. Pitch, -12 to 12. 0 is normal.
reference_audio_urlstring–Optional. A short clip URL to instantly match that voice.
reference_audio_urlsarray–Optional. Up to 3 reference clip URLs for multi-voice dialogue.
speech_ratenumber–Optional. Speaking speed, -50 (slower) to 100 (faster). 0 is normal.
textstringyesThe words to speak / narrate / perform. Max 3000 chars. For dialogue, address voices as @Audio1, @Audio2, @Audio3. Optional per-sentence timing: put [start:end] seconds in front of a sentence, e.g. […
timestampsboolean–Optional. true returns sentences: [{start, end, text, words: [{start, end, text}]}] in seconds. For a two-voice scene the on-camera person's lines become speak_spans for sync3_lip_sync_video: when yo…
voicestring–Optional. A saved voice — pass its NAME (or id); it is resolved and routed by kind automatically. Omit for a natural default voice.

No output schema declared.

No examples provided.

generate_dialogue ~451

Make ONE audio file, saved to your library, of two or more people talking to each other, spoken by ElevenLabs v3 (or v4, with model). Give it lines in order, each with the voice who says it (a voice name or a voice id from list_voices) and the words. The speakers react to each other the way people in one room do, which is why this beats making each line on its own and stitching them. Inside any line's text you can write performance tags in square brackets and the model acts them instead of reading them out: [laughs], [laughs harder], [starts laughing], [wheezing], [whispers], [sighs], [exhales], [sarcastic], [curious], [excited], [crying], [snorts], [mischievously]. There are also sound tags such as [gunshot], [applause], [clapping] and [explosion], and experimental ones such as [sings] and [strong French accent]. Use ellipses and ordinary punctuation for pauses; there is no pause tag. As many lines as you like, up to 10 different voices, and up to 2000 characters of speech in total. Billed per 250 characters of everything said. For one person speaking use generate_speech.

NameTypeReqDescription
languagestring–Optional two-letter language code, for example "es", when the conversation is not in English.
linesarrayyesThe conversation in order, as many lines as it takes. Example: [{ "voice": "Rachel", "text": "[whispers] Did you hear that?" }, { "voice": "Adam", "text": "[sighs] It is just the wind." }]
modelstring–Optional. Always "v4" (Eleven v4); leave it out.
similaritynumber–Optional, 0 to 1. How closely each read sticks to its own voice.
stabilitynumber–Optional, 0 to 1. Lower is more expressive and the tags land harder, higher is steadier and calmer.

No output schema declared.

No examples provided.

generate_image ~1,565

Generate Switch images with one of seven models: GPT Image 2.5, Switch Pro, Switch Ultra, Nano Banana 2.1 (Google's newest, up to 14 reference pictures), Nano Banana 2, Nano Banana Pro or Switch Vintage. Nothing older is offered or accepted. When model is omitted it auto-routes by subject: GPT Image 2.5 by default and for typography, screens and storyboards, Switch Pro for swimwear/beach, Switch Ultra for sexier content or face-fidelity work. The Nano Bananas and Switch Vintage are only used when named. Switch Vintage is a film look that works from a character taught beforehand, not from reference pictures. Counts <= 8 render inline in chat; counts > 8 queue to your Switch Studio with progress polling. All images persist to your Studio library and folder. Optional `style` (e.g. "wellness/warm_amber_tropical", "movie_scene/neon_noir_action") applies a curated photographic stack from the apply_* skill tools.

NameTypeReqDescription
aspect_ratiostring–Image aspect ratio. auto (Nano Banana with a reference picture only): the new picture keeps the reference picture's own shape. Default 9:16 (vertical, social-friendly), or the shape a chosen style na…
brand_kitstring–Optional. Only for work made for a brand when the person wants their brand kit used: the kit by name or id, or "settings" for the kit chosen in Switch Agent settings. Leave out otherwise: no brand ki…
camera_anglesarray–Optional camera angle ids from the Studio angles panel, e.g. birds-eye, high-drone, low-drone, orbit-drone, reveal-drone, top-down-flat.
charactersarray–Optional. Names of the person's characters from the Models page. Their saved pictures go with the picture by role, like @Name in the Studio.
countinteger–How many images to generate. Default 4. <= 8 returns inline, > 8 queues to Studio. Beta limit: max 50 per request — larger asks are capped at 50 and the response says so.
enhancearray–Optional enhance ids from the Studio angles panel: lens-85mm, lens-50mm, lens-35mm, lens-24mm, lens-135mm, lens-200mm, lens-macro, lens-tilt, lens-fisheye, lens-vintage, dof-shallow, dof-medium, dof-…
face_expressionboolean–Optional. Keeps the same person and only varies the facial expression (the Studio face expression switch).
face_reference_idsarray–Optional, kept for apps that already use it: asset ids from upload_reference_asset to use as the face to keep. Not needed to send a picture of a person; reference_image_urls takes those as they are.…
folder_namestring–Optional Switch Studio folder name. Auto-created if missing. Defaults to the chat-derived title.
lightingarray–Optional lighting preset ids: natural-window, golden-hour, morning, overcast, overhead-noon, shadow-mode, cinematic, twilight, candlelight, neon-night, studio-soft, rim-light, hard-flash, available-l…
modelstring–Optional explicit model: GPT Image 2.5, Switch Pro, Switch Ultra, Nano Banana 2.1, Nano Banana 2, Nano Banana Pro or Switch Vintage. Nothing else is accepted. Switch Vintage works from a character ta…
real_photo_lookboolean–Optional. Adds the casual real-photo texture (film grain, amateur iPhone feel). OFF by default — only set true when the user asks for the realistic, unpolished look.
reference_image_urlsarray–Optional GENERIC references (products, scenery, outfits, style). Each entry accepts EITHER a Switch asset id (from upload_reference_asset / upload_media / list_my_assets) OR a public https url; asset…
reference_rolesarray–Optional, one per reference_image_urls entry, in the same order: what that picture is for, as on the Studio strip (reference, face, body, product, clothes, location, style, typography). Left out = re…
resolutionstring–Optional picture size, the same choices as the Studio size picker: 0.5K, 1K, 2K or 4K. Default 2K. Charged at the size picked. The picture shown in chat is a small preview; the saved one (images[].ur…
skinarray–Optional skin preset ids: iphone-quality, amateur-framing, film-grain, pores-skin, subsurface, skin-variation, discoloration, freckles, peach-fuzz, oily-sheen, under-eye, sun-damage, flush, acne-scar…
stylestring–Optional curated style stack from the apply_* skill tools. Format "<skill>/<style_key>", e.g. "wellness/warm_amber_tropical" or "high_fashion_editorial/painterly_renaissance".
subjectstringyesPlain-English description of what to generate. E.g. "a woman walking through a hotel lobby" or "morning coffee on the balcony, model wearing a robe". Name the creator's staged Studio references as @I…
transparent_backgroundboolean–Optional. See-through background. GPT Image models only, as in the Studio.
NameTypeReqDescription
_widgetobject––
assetobject––
imagesarray––

No examples provided.

generate_music ~512

Make a music track with ElevenLabs Music: a song, a score, a background bed. Either describe the whole track in prompt (genre, mood, instruments, tempo, era, how it builds) or pass a plan you got from plan_music, edited however you like. seconds sets the length, 3 to 600 (default 30). For music under a video pass project_id (or video_seconds): the track is asked at the video's length, and if it comes back shorter the answer says how to loop it on a musical boundary; tell the creator and never leave the end silent. One take per ask: a second track minutes after the first needs another_take_reason with the creator's own words. instrumental true keeps every voice out. HOUSE RULE: only put music on a job when the customer actually asked for music; never add a bed because it feels empty, and when music is asked for keep it to what they named. This tool is NOT for sound effects: whooshes, impacts, chimes, risers, foley and ambiences are generate_sound_effect. Billed per 10 seconds (a token quote applies) and the file is saved to your library. Returns audio_url, duration_seconds and generation_id.

NameTypeReqDescription
another_take_reasonstring–Only for a second track minutes after the first: the creator's own words asking for another or a different one.
instrumentalboolean–Optional. true makes a track with no singing and no voices at all.
part_onlyboolean–Optional. true only when the creator asked for music on part of the video, so a shorter track is right.
planobject–Optional. The composition plan object plan_music returned, edited however you like. When this is sent the plan decides the structure and the length.
project_idstring–Optional. The Editor project this music is for; its video length sets the track length.
promptstring–The whole track in plain words, for example "driving hard rock instrumental, live drums, dirty guitars, 140 bpm, builds to a big last chorus". Leave out when you are passing an edited plan.
secondsnumber–Optional length in seconds, 3 to 600. Default 30. Ignored when a plan is sent, because the plan carries its own section lengths.
video_secondsnumber–Optional. The length of the video this music sits under, when there is no project.

No output schema declared.

No examples provided.

generate_sound ~274

Make a music bed or one short sound hit for an edit (the beat-and-hits editor workflow), with no voice and no words. kind "bed" gives an instrumental bed of about `seconds` (4 to 60, default 15) to run under the piece; kind "hit" gives one sub-second sound to place on every cut. Pass description in plain words: the feel, tempo, instruments, texture. It is charged through the same audio generation as generate_audio (a token quote applies per second) and the file is saved to your library. Returns audio_url, duration_seconds and generation_id.

NameTypeReqDescription
another_take_reasonstring–Only for a second bed minutes after a music track or bed: the creator's own words asking for another.
descriptionstringyesThe feel in plain words. For example "warm lo-fi beat, 90 bpm, soft kick, no melody" or "short airy whoosh with a soft thump".
formatstring–Optional output format. Default mp3.
kindstringyes"bed" for a music bed under the piece, "hit" for one short sound on a cut.
secondsnumber–Bed length in seconds, 4 to 60. Default 15. Ignored for a hit.

No output schema declared.

No examples provided.

generate_sound_effect ~494

Make one sound effect from plain words with ElevenLabs SFX v3 (it follows several instructions in one prompt, for example "crowd cheering, then a ball drops, then booing", and handles vocal and musical sounds): whooshes, impacts, chimes, clicks, risers, ambiences, foley, anything that is not music and not a voice. Describe the sound (what it is, its attack and tail, its material, its feel), optionally fix its length in seconds (0.5 to 30; leave it out to let the model pick), set loop true for a seamless ambience, prompt_influence 0 to 1 for how literally to follow the words, model "v3" (default) or "v2" (ElevenLabs suggests comparing both on your own prompts), and output_format (mp3 at 32 to 192 kbps, opus, wav or pcm at 8 to 48 kHz, or ulaw/alaw 8 kHz for phone audio; default mp3_44100_128). For a music bed use generate_sound. Billed 1 token per 7 seconds of sound, rounded up (a token quote applies) and the file is saved to your library. Returns audio_url, duration_seconds and generation_id.

NameTypeReqDescription
descriptionstringyesThe sound in plain words, as long as you like. For example "a glassy futuristic visor powering up, quick rising shimmer into a soft bright chime, clean, no music".
loopboolean–Optional. true makes a sound that loops seamlessly (ambiences, textures).
modelstring–Optional. v3 (default, SFX v3: several instructions in one prompt, vocal and musical sounds) or v2.
output_formatstring–Optional file format, default mp3_44100_128. wav_48000 or pcm_48000 for editing, mp3_44100_192 for top mp3 quality, ulaw_8000 or alaw_8000 for phone systems.
prompt_influencenumber–Optional, 0 to 1. Higher follows the words more literally with less variety. Default 0.3.
secondsnumber–Optional length, 0.5 to 30 seconds. Leave out to let the sound maker choose from the words.

No output schema declared.

No examples provided.

generate_speech ~558

Speak written words out loud in an ElevenLabs voice and save the audio to your library. Give it the words and the voice (a voice name, or a voice id from list_voices). Every take speaks on Eleven v4 or Eleven v4 Turbo. Choose with quality: "fast" (the default, v4 Turbo, quick and cheap) or "best" (v4, the richest, most emotional read), or name one with model: v4 or turbo. v4 holds 10,000 letters a take and turbo has no stated limit. Both take stability and similarity (0 to 1) only. The price is checked before generation and the result includes its billing receipt. The answer carries the time in seconds that every single word starts and ends, which is what you use to cut on the beat, place captions or time a picture to a word. For a sound effect use generate_sound_effect; for two or more people talking in one file use generate_dialogue.

NameTypeReqDescription
languagestring–Optional two-letter language code, for example "es" or "fr", when the words are not in English.
modelstring–Optional. v4 (richest) or turbo (quick, the default). Leave it out and quality decides.
qualitystring–Optional. "best" picks the richest model, "fast" the quick one. Default fast.
request_idstring–Only reuse a request_id explicitly returned by an enabled durable recovery workflow; an attempt_id or saved-file recovery receipt does not authorize this replay.
similaritynumber–Optional, 0 to 1. How closely the read sticks to the original voice.
speaker_boostboolean–Not used: Eleven v4 has no speaker boost, so this is ignored.
speednumber–Not used: Eleven v4 has no speed dial, so this is ignored.
stabilitynumber–Optional, 0 to 1. Lower is more expressive and varied, higher is steadier and more even.
stylenumber–Not used: Eleven v4 has no style dial, so this is ignored.
textstringyesThe words to speak, exactly as they should be said. How long one take can be is set by the model you pick. Write numbers and dates the way you want them read out.
timestampsboolean–Optional, default true. Word-by-word times come back with the audio. Set false if you do not need them.
voicestringyesWhich voice speaks: a voice name such as "Rachel", or a voice id. Call list_voices to see the voices on this account.

No output schema declared.

No examples provided.

generate_video ~3,202

Generate video with the configured provider lineup (Kling, BytePlus Seedance, Switch Video/WAN 2.7, Switch Video Edit, Higgsfield Genjutsu, Topaz upscale) and modes (text-to-video, image-to-video, frame-to-frame, motion, omni, reference-to-video, video-edit, upscale). Load load_video_workflow once per conversation when needed. Keep the user-selected model; use list_video_models only when the selection or its inputs are unknown. SwitchApp Video Enhanced runs automatically before submission, except on a prompt the person wrote themselves (as_written) or one that is word for word a proven prompt from the owner's library: those go exactly as written, never enhanced; call enhance_video_prompt first to inspect it and reuse its signed enhancement_receipt. Use quote_video only to turn a draft into Full HD, passing its quote_fingerprint and quoted_credits; any other video runs without a quote and is charged what it really costs. Before submission, map every actual image, video, and audio chip to its role and preserve its thumbnail, type, order, and role exactly; never silently drop, merge, reorder, convert, or repurpose references. Pass one shot, or shots:[...] for a storyboard (max 4 by default, hard max 10) where EACH shot is DIFFERENT — never repeat one prompt to get copies. Renders async (~30-90s); a background job delivers each clip to your library. Returns a task_id per shot — poll get_video_status or list_my_videos. Higgsfield Genjutsu (switch-cinema-480p / switch-cinema-720p; Templates in the menu) remakes the clip in reference_video_urls with the person in 1 to 8 reference_image_urls and keeps the clip's motion; no duration, priced per second of that clip, subject optional and sent as typed.

NameTypeReqDescription
anchor_framesboolean–Optional, Seedance 2.5: use the opening picture as the exact first frame instead of one more reference; the video comes back in that picture's shape. An end picture turns it on by itself.
as_writtenboolean–True when the person wrote this prompt themselves and is using it as their prompt ("I'm doing the prompt"): it goes exactly as written, never enhanced. Leave it off when you write the prompt, or when…
aspect_ratiostring–e.g. 9:16, 16:9, 1:1. Must be allowed for the model (see list_video_models).
audioboolean–Generate sound. ON by default on every video maker that can make sound (Seedance 2.5 and 2.0 in every mode, Kling Omni and Turbo, every WAN 3.0 option, MiniMax H3 Max). Set false for a silent clip. M…
brand_kitstring–Optional. Only for work made for a brand when the person wants their brand kit used: the kit by name or id, or "settings" for the kit chosen in Switch Agent settings. Leave out otherwise: no brand ki…
camera_movementstring–Optional. One of the Video page camera movements; it leads the words, as on the page.
character_orientationstring–Motion mode only: follow the character image (default) or the reference video.
durationstring–Clip length in seconds, or "auto" to let the model choose. Seedance 2.5 does 4-30s (auto bills the 30s cap up front and refunds the unused seconds); Seedance 2.0 does 4-15s; Switch Video (WAN 2.7) do…
end_image_urlstring–End frame for frame-to-frame mode.
enhancement_receiptstring–Receipt from enhance_video_prompt. Pass its enhanced_prompt as subject with the same model, settings and references. Prevents duplicate enhancement. Changed/expired receipts fail before generation.
face_reference_idsarray–Optional, kept for apps that already use it: asset ids from upload_reference_asset. Not needed for faces; put every picture in reference_image_urls and Switch handles faces itself. Each id here runs…
image_urlstring–Required for image-to-video / frame-to-frame / motion. Accepts EITHER a Switch asset id (from show_media / list_my_assets / upload_media) OR a public https url. An asset id is resolved server-side, s…
keep_original_soundboolean–Optional. Keep the attached clip's own sound (motion control, Kling Omni clips), as the Video page switch.
modestring–Video mode. Must be supported by the chosen model (see list_video_models).
modelstring–HeyGen Video ids: heygen-video-t2v, heygen-video-i2v, heygen-video-r2v (option ids heygen-text / heygen-image / heygen-reference; 5-15 s, 480p/768p/2K, sound on every clip). Model id from list_video_…
multi_shotarray–Optional Kling multi-shot storyboard: each shot's words and seconds, in order. The video is as long as the shots added up, as on the Video page.
negative_promptstring–Optional. What to leave out, as the Video page negative prompt.
option_idstring–Catalog id from list_video_models. Native Seedance Draft: seedance-25-draft-text, seedance-25-draft-image, seedance-25-draft-reference (480p with audio). Make Full HD: seedance-25-draft-final with th…
output_formatstring–Optional, Seedance 2.5: mp4 plays everywhere; mov keeps full colour and real sound.
person_named_resolutionboolean–Switch Agent: true only when the person named this video's resolution themselves ("make it in 1080p"); a Seedance 2.5 video then starts at that resolution instead of its Draft. Leave it off otherwise…
person_rights_confirmedboolean–Optional and not needed; kept so older apps that send it still work.
quote_fingerprintstring–From quote_video. Pass with quoted_credits to reject a changed quote before charging.
quoted_creditsnumber–Exact quoted_credits returned by quote_video; used with quote_fingerprint.
reference_audio_urlsarray–Seedance reference/omni only: up to 3 reference audio files to drive synthesized audio. Requires at least one reference image or video. MiniMax H3 Max reference (h3max-reference) also takes up to 3 a…
reference_image_urlsarray–GENERIC reference images (products, scenery, outfits, style). Each entry accepts EITHER a Switch asset id (from show_media / list_my_assets / upload_media / get_my_active_references) OR a public http…
reference_video_urlsarray–Seedance reference/omni and WAN 3.0 reference. WAN 3.0 (wan30-reference): up to 5 clips, 15 seconds combined, each at least 16 fps, addressed in the prompt as "Video 1", "Video 2"; the audio inside t…
resolutionstring–HeyGen Video offers 480p, 768p and 2k (2k in 16:9 or 9:16 only, three times the 768p price). Output resolution. Defaults to 1080p where the model supports it. 720p is cheaper and faster. 480p is the…
return_last_frameboolean–Optional, Seedance 2.5: hand back the closing frame so the next clip can start where this one stopped.
seedinteger–Optional. The repeat number: the same one with the same words gives the same take.
shotsarray–A storyboard of 1-10 DISTINCT shots. Each item takes the same fields as a single shot (subject, model, mode, image_url, etc.).
subjectstring–The shot: subject + motion + scene (video needs motion language, e.g. "slow push-in"). Name the creator's staged Studio references as @Image1, @Video1 (the Video tab strip, then the image strip; see…
takeinteger–When the person asks for several of the same video ("4 of them"), number each call 1, 2, 3 ... so every take is made; the same take number twice in ten minutes is the same request and makes one video…
task_typestring–Seedance 2.5 reference mode only: declare what you are doing with the reference clip so the size and length rules are checked immediately instead of failing a minute in. auto = a new take from the re…
video_people_declarationstring–Optional and not needed: every video maker takes clips with real people; Seedance asks for a verified account, every other model takes them as its own API allows.
video_urlstring–Required for video-edit and upscale (the source clip). Accepts one of YOUR Switch videos — a job id from list_my_videos / get_video_status, or its download_url / view_url — or any publicly downloadab…

No output schema declared.

No examples provided.

get_audio_status ~130

Collect one of your finished audio takes. When generate_audio answers status "rendering" with a request_id (a longer line), call this with that request_id every 15 seconds until it returns status "done" with a playable audio_url, duration_seconds and generation_id. Also fetches any earlier take by its generation_id. Never re-run the line while it is rendering.

NameTypeReqDescription
generation_idstring–Or: the generation_id of a finished take (from generate_audio or list_my_audio).
request_idstring–The request_id from a "rendering" generate_audio answer.

No output schema declared.

No examples provided.

get_brand_kit ~152

Read your brand kit before you design, animate or write anything for your brand: its colors with their roles, its fonts (with a link to the font file when one was uploaded), light or dark as the usual look, how the brand sounds, and links to its logos and pictures ready to use. With no name it reads your default kit. When you have no kit it says so and how to make one; then keep the work brand neutral. Free and read only.

NameTypeReqDescription
kit_idstring–Optional. The id of one of your kits, from list_brand_kits.
namestring–Optional. The name of one of your kits. Omit for your default kit.

No output schema declared.

No examples provided.

get_depth_map_status ~103

Check one of your depth map renders started with create_depth_map. Pass the task_id it returned. While rendering it reports processing; when finished it returns depth_video_url, a download link for the grayscale motion reference video. If the render failed, it says so and confirms your tokens were returned. An id that was never started answers not_found; one that is still starting answers processing.

NameTypeReqDescription
task_idstringyesThe task_id returned by create_depth_map.

No output schema declared.

No examples provided.

get_editor_export ~143

Where your export_editor_project export is: queued, rendering, complete (with the MP4 link and renderChecks: the finished file checked for black gaps, blank screens, frozen stretches, missing layers, dropped sound and the wrong length, each with its seconds) or failed (with the reason in plain words). Never hand over a complete export with open renderChecks without saying so. Free. Not only a read: when one render pass of a long export has finished and more remain, this call starts the next pass of the export you already started (no new charge).

NameTypeReqDescription
export_idstringyesFrom export_editor_project.
project_idstringyes–

No output schema declared.

No examples provided.

get_editor_project ~90

Inspect one of your persistent Switch Editor projects. Omit project_id for your latest project; include_payload=true returns its full editable state.

NameTypeReqDescription
include_payloadboolean–true returns the full editable state (media, timeline tracks and clips, studio); false (default) returns counts only.
project_idstring–The Editor project id from list_editor_projects. Omit for your latest project.

No output schema declared.

No examples provided.

get_editor_run ~78

Read progress, checks, exact approval quote, revision, and render result for one of your Switch Editor agent runs. A finished render carries renderChecks (black gaps, blank screens, frozen stretches, missing layers, dropped sound, each with its seconds); never hand it over with open findings without saying so.

NameTypeReqDescription
run_idstringyes–

No output schema declared.

No examples provided.

get_layer_set ~70

Open one of your own layers projects: every layer with its name, description, stacking order, whether it is showing, and where it sits on the picture. Use this before arranging layers so you know their ids.

NameTypeReqDescription
layer_set_idstringyesThe layers project id from split_image_into_layers.

No output schema declared.

No examples provided.

get_my_active_references ~210

Read your staged references in Switch Studio. Returns TWO groups: (1) the image-generation reference strip (typed face/body/outfit/scenery/product slots) under `refs`, and (2) the VIDEO-tab references the user staged in the Omni/Image video tabs (the @Image1/@Image2 strip) under `videoReferences`, with usable signed URLs. Call this before generate_image or generate_video whenever the user says "use my refs" or refers to images they staged in Studio (including "the images in my video tab"). To make a video from the video-tab refs, pass videoReferences.imageUrls into generate_video reference_image_urls (and videoUrls into reference_video_urls) in reference-to-video / omni mode. Refs marked alive:false are dead (stored file gone) and are already excluded from the usable url lists. NOTE: a photo the user just attached in THIS chat is in neither group — for that, call upload_media and use its returned url/asset id directly.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_video_status ~138

Check the status of one of your video jobs by task_id (from generate_video) or job_id. Returns status, a viewable view_url when finished, or the error if it failed, plus the whole prompt (prompt_full) and every reference the video was made with (references: pictures, clips and sounds in their original order, each with its @tag, folder, file and a fresh url), so it can be made again exactly. Poll this every ~20s — do not loop rapidly.

NameTypeReqDescription
job_idstring–Alternatively, the job_id.
task_idstring–Task id returned by generate_video.

No output schema declared.

No examples provided.

get_vision_report ~116

Fetch one of your finished Video Analysis reports by report_id (from analyze_video_report or list_vision_reports). Returns the complete structured report: overview scores and takeaways, the timeline of scenes, audio, visual, story, speech, the recreation section with every master prompt, and metadata, plus recreation_prompt (the ready to run prompt) at the top level. While an analysis is still running this reports processing; poll it every 20 to 30 seconds.

NameTypeReqDescription
report_idstringyesThe report id to fetch.

No output schema declared.

No examples provided.

isolate_voice ~161

Pull the voice out of a noisy recording with the ElevenLabs voice isolator. Traffic, room echo, air conditioning, crowd, hiss and any music behind the speaker all come off and the speech stays, so a phone recording or a noisy location take can be used as clean dialogue. Pass the recording as source: an id from your library or a public https link. Nothing is added back, so the answer has no room and no music at all. Billed per 10 seconds of audio (a token quote applies) and the clean file is saved to your library. Returns audio_url, duration_seconds and generation_id.

NameTypeReqDescription
sourcestringyesThe recording to clean up: an id from your library, or a public https link to an audio file.

No output schema declared.

No examples provided.

lip_sync_video ~674

Lip-sync audio onto one of your videos. For action="create" without engine, session_id, or face_id, the default is Sync Labs Sync 3: video_url + sound_file (base64 data URI) processes the whole clip without a face-identification step or manual timing. engine="best" explicitly selects Sync 3. Kling provides manual timing control with engine="kling", or with session_id/face_id when engine is omitted: (1) action="identify-face" with video_url (MP4/MOV, 2-60s, <=100MB, 720p/1080p); (2) action="create" with session_id + face_id + audio + timing IN MILLISECONDS (sound_start_time, sound_end_time, sound_insert_time) + optional speech_volume/original_audio_volume (0-100); (3) action="status" with the task_id to poll — returns a branded SwitchApp view_url when done. Charges credits on create; failed jobs are refunded. PRICE: One price per lip sync job, charged when the job is created; returned if it fails. Checking status is free. Pass quote_only: true first to get the exact price; nothing is made and nothing is charged. To run it (not for a quote) send action.

NameTypeReqDescription
actionstring–Which step to run.
audio_idstring–create: alternative to sound_file — an existing audio id.
enginestring–create: optional. "best" selects Sync Labs Sync 3 for whole-clip lip sync using video_url + sound_file. When engine is omitted, Sync 3 is used unless session_id or face_id is supplied. "kling" select…
face_idstring–create: a face_id from identify-face (one face supported).
keep_backgroundboolean–create, Sync 3 engine: keep the clip's own music and room under the new speech (default true); false gives the new speech alone.
original_audio_volumenumber–create: how loud the clip's own sound stays, as a percent 0-100 (default 100, the clip keeps its sound).
quote_onlyboolean–true answers the price only: nothing is made and nothing is charged.
session_idstring–create: from identify-face.
sound_end_timeinteger–create: audio end, in MILLISECONDS.
sound_filestring–create: base64 data URI of the audio (e.g. data:audio/mpeg;base64,...).
sound_insert_timeinteger–create: where in the video to place the audio, in MILLISECONDS.
sound_start_timeinteger–create: audio start, in MILLISECONDS.
speech_volumenumber–create: how loud the new speech is, as a percent 0-100 (default 100).
task_idstring–status: the task_id from create.
video_urlstring–identify-face: the source video (MP4/MOV, 2-60s, <=100MB, 720p/1080p). Use a SwitchApp/public URL.

No output schema declared.

No examples provided.

list_brand_kits ~59

List your brand kits: each one with its name, whether it is your default, light or dark, its colors and fonts, and how many logos and pictures it holds. Use get_brand_kit to open one. Free and read only.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_editor_projects ~89

List your persistent Switch Editor projects, newest first, with media, scene, composition and render counts. Optional search matches the project name. Each project carries its own media and its saved chat history for every brain; the same project opens in the /editor page.

NameTypeReqDescription
limitinteger–Default 25, max 100.
searchstring–Optional. Part of a project name.

No output schema declared.

No examples provided.

list_editor_workflows ~94

List the named editor workflows your Switch Editor agent can run by id: for each, the one sentence a person types, what it needs, whether it quotes first, and how to run it on your project through run_editor_agent. Pass id to read one workflow in full with its steps, tools and gate. Free and read-only.

NameTypeReqDescription
idstring–Optional workflow id; returns that one workflow in full.

No output schema declared.

No examples provided.

list_generations ~118

List your recent and active picture generations: queued batches and the pictures generate_image made right in the chat. Returns counts per status (pending / running / completed / failed) plus an array with id, status, prompts, model, ref counts, scheduledAt, finishedAt. Videos are in list_my_videos and audio takes in list_my_audio.

NameTypeReqDescription
limitinteger–Default 10. Max 50.
status––"all" for everything, or an array like ["pending","running"]. Default: active + recent.

No output schema declared.

No examples provided.

list_my_assets ~115

Return your asset METADATA only (id, truncated prompt, model, created date), newest first. This does NOT display images and must NOT be used to show pictures — if the user says "show me / display my last image(s)", call show_media instead (it renders them; pass count=N for several). Use list_my_assets only when you need ids/metadata for another tool (e.g. add_editor_library_assets) or a plain text list.

NameTypeReqDescription
countinteger–Default 20. Max 50.

No output schema declared.

No examples provided.

list_my_audio ~149

List your recent audio takes (voice lines, narration, dialogue) newest first, each with a playable audio_url, duration_seconds, the words spoken, its generation_id and made_with: the voice that spoke it (voice_name, voice_id), the model and the prompt. Use it to find "the take from earlier" or "the newest line" without asking the user for ids. Optional search matches the words spoken; limit defaults to 5 (max 20).

NameTypeReqDescription
limitinteger–How many takes, newest first. Default 5, max 20.
searchstring–Optional. Words that appear in the take, e.g. a phrase from the script.

No output schema declared.

No examples provided.

list_my_folders ~58

List the folders in your Switch library (id, name, parent, and when each was made, so the newest can be found). Use this to find an existing folder and its id; search_my_library looks inside your library by words.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_my_videos ~102

List your recent Switch videos, newest first: id, status, prompt, model, and a viewable view_url for finished clips. Use this when someone asks to see their last or recent videos, to check whether videos finished, and to let them choose one.

NameTypeReqDescription
countinteger–How many to return. Default 10. Max 50.
statusstring–Optional filter: submitted, processing, succeed, failed, or all.

No output schema declared.

No examples provided.

list_styles ~196

List the Switch Styles you can use for your edits, the short codes for editing a talking video (O Openers, W Words, F Frames, R Receipts, B Beats, U App Moments, K Kicks, M Motion Graphics, S Web, P Pace, A Audio, G Grade): each code with its group, name, one line, when to use it, the prompt line to paste and its demo clip links, plus the link to the style browser. Your own styles learned from your reels (codes like Y1) come first. Filter by group, by who is on camera, or by words. Free, read-only.

NameTypeReqDescription
groupstring–A group letter, for example O for Openers or G for Grade.
querystring–Words to search the names, lines and uses.
talentstring–Who is on camera in the demo, for example Sonia or Milo.

No output schema declared.

No examples provided.

list_upscalers ~54

List the video upscalers you can run on your videos, their provider routes, supported controls, and release availability. Uses the same catalog as Video on desktop and mobile. Does not start a job or spend tokens.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_video_models ~83

List the video providers, models, and modes available to your Switch account, with each model's required inputs, allowed aspect ratios and durations, and a rough per-second cost. Use this when the selected model or its required inputs are unknown. Keep a known selected model; do not run model searches for an ideas question. Use quote_video for a current exact token quote.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_vision_reports ~74

List your Video Analysis history, newest first: report_id, date, status, source kind, duration, engine, tokens charged, and each report's headline. Use it to find a past analysis, then pass its report_id to get_vision_report (full report) or video_to_prompt (just the recreation prompt).

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_voices ~217

List the voices available to speak with: the ready-made library voices plus every voice this account has cloned or designed. Each one comes back with its voice_id (pass that to the speaking tools), its name, whether it is ready-made or one of your own, labels saying who it sounds like (gender, age, accent, what it suits) and a preview_url that plays a short sample. Optional search matches a name or a description, for example "warm female narrator" or "deep british male". Set mine_only true to see only the voices you made yourself, your reference voices (matched from a clip) included. count defaults to 30 (max 100). Free and read only.

NameTypeReqDescription
countinteger–How many voices to list. Default 30, max 100.
mine_onlyboolean–Optional. true shows only the voices you cloned or designed yourself.
searchstring–Optional. Words to match in the name or the description, e.g. "calm female documentary".

No output schema declared.

No examples provided.

load_video_workflow ~116

Load once when starting production on your video and the workflow is not already known. Not needed for an ideas question. Loads the current MCP-only production rules, BytePlus Seedance routing policy, exact reference-chip preservation rules, simple-remix rules, conditional analysis and Depth Maps, enhancement, exact token quote, audio preservation, KYC behavior, and completion standard. Free and read-only.

NameTypeReqDescription
modelstring–Selected Studio model id or list_video_models option id. Include after a model change to load its prompt skill automatically.

No output schema declared.

No examples provided.

load_workflow_playbook ~115

Load one shared production playbook by id (ids come from load_video_workflow) and apply it to your production. A playbook is an anonymized record of how a real Switch production went: the shot list that worked, the reference rules, and the corrections that had to be made. Free, read-only.

NameTypeReqDescription
idstringyesPlaybook id, for example playbook/reference-discipline.
resourcestring–Optional supporting resource name from a loaded playbook. Loads that exact source document.

No output schema declared.

No examples provided.

log_shots ~185

Log the shots of your Editor project (or one shared with you) after the customer said go to the quoted price: numbers every clip on the video track (SH001 …) with timeline and source in/out, then Gemini watches each shot (charged per shot: 3 tokens a second, 90 at least) and writes its description, shot size, angle, subjects, setting, action, objects, sound and a suggested label onto the Storyboard card. Works through the list within one call; when done is false, call again to carry on.

NameTypeReqDescription
project_idstring–The Editor project id (list_editor_projects). Omit for your latest project.
relogboolean–true = read every shot again (charged again), e.g. after the footage changed.
trackstring–The video track to log, default V1.

No output schema declared.

No examples provided.

manage_voice ~213

Clean up and share your own saved voices (Seed Audio voices from a clip and trained voices), the same as the voice list in Audio Studio. action "delete" removes a voice for good (audio already made with it keeps its name); "turn_off" keeps it on the account but takes it out of every voice picker so it cannot speak; "turn_on" brings it back; "share" publishes it to the person's team so every teammate can see it and speak with it; "unshare" takes it back. Pass voice as the NAME you say (or its id); see your voices and which are on, off or shared with list_voices (mine_only true). Only the voice's owner can change it. Delete cannot be undone: say which voice will go and get a clear yes first. Free.

NameTypeReqDescription
actionstringyesdelete, turn_off, turn_on, share or unshare.
voicestringyesThe voice's name as the person says it, or its id.

No output schema declared.

No examples provided.

open_questions ~286

Keep your list of the questions you asked the creator and are still waiting on. Free. action "ask": record every question you are about to ask (questions: a list of { question, topic, choices? }; topic is one of music, voice, sound, shape, picture, video, style, choice); then ask them all at once. While a question is open, the paid steps it depends on are refused (music for music, voices for voice, sound effects for sound, pictures, clips and renders for shape, picture and video, everything that makes something for style and choice). action "answer": when the creator answers, pass question_id and creator_words, copied from their own message; you can never answer for them, and a reply that answers only part leaves the rest open, so ask again in one line. action "list": what is still open.

NameTypeReqDescription
actionstring–ask, answer or list. Default list.
creator_wordsstring–For answer: the creator's own words that answer it, copied from their message.
project_idstring–For ask: the Editor project the questions are about, when there is one.
question_idstring–For answer: the id ask or list gave.
questionsarray–For ask: the questions, each { question, topic, choices? }.

No output schema declared.

No examples provided.

place_on_editor_timeline ~127

Put a finished video on your Switch Editor project's timeline from its https link (an InVideo export, a Switch render, any video you own). It lands at the end of the timeline and in the project's media, ready to play and export. Spends no tokens.

NameTypeReqDescription
namestring–A short name for the clip on the timeline.
project_idstringyesThe Editor project id (list_editor_projects).
secondsnumber–Its length in seconds, if you know it.
urlstringyesThe https link to the video file.

No output schema declared.

No examples provided.

plan_music ~228

Draft the plan for a music track before any of it is made, and before anything is charged. Describe the track you want for your edit and this returns the structure the music maker intends to build: a list of parts in order (chunks on the newest music model, sections on the older one), each with its words or name, a length in milliseconds and its own styles to keep in and keep out. Edit whatever you like in that plan, then pass the whole thing to generate_music as plan to hear it. Use this for longer or structured pieces (intro, verse, chorus, drop, outro) where a single sentence will not get the shape right. Free: this call does not make audio and does not cost tokens.

NameTypeReqDescription
promptstringyesThe track in plain words, for example "60 second EDM build for a product reveal, cold intro, filtered riser, hard drop at 30 seconds, no vocals".
secondsnumber–Optional target length in seconds, 3 to 600. Default 30. The plan lays its sections out to fill it.

No output schema declared.

No examples provided.

premiere_cancel_edit ~72

Cancel a pending Premiere edit. An Adobe transaction already running may finish. Read its final status. First call premiere_list_connections to get the deviceId of your connected Premiere panel.

NameTypeReqDescription
deviceIdstringyesThe id of your connected Premiere panel, from premiere_list_connections.
requestIdstringyes–

No output schema declared.

No examples provided.

premiere_edit_status ~74

Read an edit outcome. Only done means Premiere reported verified readback; cancelled requests already running may finish. First call premiere_list_connections to get the deviceId of your connected Premiere panel.

NameTypeReqDescription
deviceIdstringyesThe id of your connected Premiere panel, from premiere_list_connections.
requestIdstringyes–

No output schema declared.

No examples provided.

Install

How do I install the ai.switchapp/switch MCP server?

ai.switchapp/switch is a hosted endpoint at https://mcp.switchapp.ai/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 · mcp.switchapp.ai

# add to Claude Code
claude mcp add --transport http ai-switchapp-switch 'https://mcp.switchapp.ai/mcp'
Common questions

What is the ai.switchapp/switch MCP server?

ai.switchapp/switch is an MCP server listed in the public MCP registry as ai.switchapp/switch. Generate, manage and explore your Switch AI image and video library, scoped to your account. This page covers its hosted endpoint (https://mcp.switchapp.ai/mcp).

Is the ai.switchapp/switch MCP server safe to use?

ai.switchapp/switch scores 90 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 ai.switchapp/switch MCP server expose?

ai.switchapp/switch exposes 133 tools: premiere_list_connections, premiere_read_timeline, premiere_request_edit, premiere_shot_log, premiere_edit_status, and 128 more. Their descriptions and schemas cost roughly 39,431 tokens of context every time the server is loaded.

Does the ai.switchapp/switch MCP server require authentication?

Yes. ai.switchapp/switch asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.

Is the ai.switchapp/switch MCP server still maintained?

ai.switchapp/switch is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.