ai.switchapp/switch
REMOTE · MCP.SWITCHAPP.AI · SCANNED SEP 20
Generate, manage and explore your Switch AI image and video library, scoped to your account.
Available components
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
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation is enforced on tool calls, advertised via RFC 9728 protected-resource metadata. Discovery is public, which costs nothing: no tool can be invoked without a token. View diagnostics → Pass
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- The HSTS (Strict-Transport-Security) header is present. View diagnostics → Pass
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
- The authorisation server offers only Dynamic Client Registration (RFC 7591), which MCP 2026-07-28 deprecated in favour of Client ID Metadata Documents. View diagnostics → Partial
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability76
- 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 15348 tokens (~247/item across 62 items; 61 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 Coverage97
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 90% of tool parameters carry a description.Partial
- Structured output schemas are declared (3% 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 2422 of that field. See how to fix → Fail
- We read all 61 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 63 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
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
claude mcp add --transport http ai-switchapp-switch 'https://mcp.switchapp.ai/mcp'
{
"mcpServers": {
"ai-switchapp-switch": {
"url": "https://mcp.switchapp.ai/mcp"
}
}
} {
"servers": {
"ai-switchapp-switch": {
"type": "http",
"url": "https://mcp.switchapp.ai/mcp"
}
}
} [mcp_servers.ai-switchapp-switch] url = "https://mcp.switchapp.ai/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"ai-switchapp-switch": {
"type": "remote",
"url": "https://mcp.switchapp.ai/mcp",
"enabled": true
}
}
} openclaw mcp add ai-switchapp-switch --url 'https://mcp.switchapp.ai/mcp' --transport streamable-http
mcp_servers:
ai-switchapp-switch:
url: "https://mcp.switchapp.ai/mcp" {
"McpServers": {
"ai-switchapp-switch": {
"Transport": "http",
"Url": "https://mcp.switchapp.ai/mcp"
}
}
} assistant mcp add ai-switchapp-switch -t streamable-http -u 'https://mcp.switchapp.ai/mcp'
{
"mcpServers": {
"ai-switchapp-switch": {
"type": "http",
"url": "https://mcp.switchapp.ai/mcp"
}
}
} The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.
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.
- 17 Sept 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
- Tool “list_video_models” rewrote its description, which is the text the model reads security
- Tool “load_video_workflow” rewrote its description, which is the text the model reads security
- Schema quality: 192 → 247 ▼ functional
- New tool “enhance_video_prompt” functional
- New tool “quote_video” functional
- “generate_video” added an optional parameter “enhancement_receipt” cosmetic
- “generate_video” added an optional parameter “quote_fingerprint” cosmetic
- “generate_video” added an optional parameter “quoted_credits” cosmetic
- 13 Sept 26 0
- New tool “sync3_lip_sync_video” functional
- 6 Sept 26 0
- Tool “upload_reference_asset” rewrote its description, which is the text the model reads security
- “upload_reference_asset” reworded the description of “activate” cosmetic
- “upload_reference_asset” reworded the description of “confirm_path” cosmetic
- 5 Sept 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
- Tool “upload_reference_asset” rewrote its description, which is the text the model reads security
- Server version: 0.1.0 → 0.2.0 functional
- New tool “load_video_workflow” functional
- 3 Sept 26 −1
- Tool “lip_sync_video” rewrote its description, which is the text the model reads security
- New tool “suggest_speech_seconds” functional
- “generate_video” reworded the description of “audio” cosmetic
- “generate_video” reworded the description of “duration” cosmetic
- “generate_video” reworded the description of “model” cosmetic
- “generate_video” reworded the description of “reference_audio_urls” cosmetic
- “generate_video” reworded the description of “reference_image_urls” cosmetic
- “generate_video” reworded the description of “reference_video_urls” cosmetic
- “generate_video” reworded the description of “resolution” cosmetic
- “generate_video” reworded the description of “subject” cosmetic
- “lip_sync_video” reworded the description of “engine” cosmetic
- 26 Aug 26 −2
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 25 Aug 26 0
- Stability: 0.97 → pass security
- 24 Aug 26 +7
- Schema quality: unverified → excellent ▲ functional
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 20 Sept 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 | 3799 | 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 |
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 →
add_editor_library_assets Add Library Assets to Editor ~77
Add images you own in your Switch library to your real Editor project. Resolve the asset ids with search_my_library or list_my_assets; Switch copies only owner-scoped durable files into the Editor workspace.
| Name | Type | Req | Description |
|---|---|---|---|
| asset_ids | array | yes | Up to 12 owned image ids from your Switch library. |
| project_id | string | yes | – |
No output schema declared.
No examples provided.
analyze_video Analyze Video ~236
Switch Vision — watch and understand a video (or image) like a human and answer a question about it: scenes, subjects, actions, on-screen text, pacing, mood and sentiment. Pass video_url (a public https video URL, including YouTube) OR one of your own Switch videos (a video/asset id from list_my_videos / list_my_assets / upload_media). Add an optional question to focus the analysis (e.g. "what is the tone and energy?", "list the cuts and what each shot shows"). Use this whenever the user gives you a reference video and wants its style, energy, structure or content understood — for example before making a new video that matches it.
| Name | Type | Req | Description |
|---|---|---|---|
| question | string | – | Optional. What to find out about the video — tone, structure, on-screen text, sentiment, etc. |
| video_url | string | yes | A public https video URL (YouTube ok), OR one of your own Switch videos — a video/asset id, or the download_url / view_url from list_my_videos or get_video_status. Switch resolves its own links to th… |
No output schema declared.
No examples provided.
analyze_video_report Full Video Analysis ~320
Run the FULL Switch Vision analysis on a video, the same premium report the Video Analysis page produces: it watches AND listens in three forensic passes and returns a structured report with every category: overview (scores and takeaways), a second by second timeline, audio, visual craft, story and retention, speech transcript, ready to run recreation prompts, and metadata. Pass video_url (a public https video URL, YouTube included) OR one of your own Switch video ids. For an external file also pass duration_seconds (YouTube and your own videos are measured automatically) because the analysis is billed per second of the file, 3 tokens per second with a 30 second minimum. Re-running the same video and question returns the existing report without charging again. Optional question focuses the analysis. Returns a report_id right away; poll get_vision_report until status is succeeded (a few minutes). If it cannot finish, your tokens are returned automatically. For one quick question about a video use analyze_video instead; this tool is the full paid report.
| Name | Type | Req | Description |
|---|---|---|---|
| duration_seconds | number | – | Length in seconds. Required for external files; YouTube and your own Switch videos are measured automatically. |
| force | boolean | – | Optional. Re-running the same video and question returns the existing report without charging again; pass true to force a fresh, freshly billed analysis. |
| question | string | – | Optional. Something to pay special attention to. |
| video_url | string | yes | A public https video URL (YouTube ok), OR one of your own Switch video ids. |
No output schema declared.
No examples provided.
apply_cinematic_anamorphic Apply Cinematic Anamorphic ~120
ARRI Alexa anamorphic widescreen film look. Choose grade: warm golden, cool noir, or moody desaturated. Returns the styled prompt stack for your shot — pair it with generate_image.
| Name | Type | Req | Description |
|---|---|---|---|
| style | string | yes | warm_golden = late-afternoon honey. cool_noir = neon-fill desaturated. moody_desaturated = soft window low-contrast. |
| subject | string | – | What you want to shoot. E.g. "a woman walking through a hotel lobby" or "morning coffee on the balcony". |
No output schema declared.
No examples provided.
apply_graphic_editorial_portrait Apply Graphic Editorial Portrait ~107
Sharp graphic editorial portrait — premium fashion-magazine grade, hard graphic composition. Classic studio or golden-hour outdoor. Returns the styled prompt stack for your shot — pair it with generate_image.
| Name | Type | Req | Description |
|---|---|---|---|
| style | string | yes | classic = Hasselblad H6D studio. golden_hour = Canon R5 outdoor. |
| subject | string | – | What you want to shoot. E.g. "a woman walking through a hotel lobby" or "morning coffee on the balcony". |
No output schema declared.
No examples provided.
apply_high_fashion_editorial Apply High Fashion Editorial ~137
High-fashion magazine cover/editorial energy. Choose a photographer mood: Mario Testino glossy, Steven Klein dark cinematic, Inez & Vinoodh hard-flash, Annie Leibovitz painterly, Tim Walker dreamlike, Peter Lindbergh black-and-white natural, or Cass Bird off-duty. Returns the styled prompt stack for your shot — pair it with generate_image.
| Name | Type | Req | Description |
|---|---|---|---|
| style | string | yes | Photographer attribution drives the lighting + camera + grade stack. |
| subject | string | – | What you want to shoot. E.g. "a woman walking through a hotel lobby" or "morning coffee on the balcony". |
No output schema declared.
No examples provided.
apply_iphone_realism Apply Iphone Realism ~162
Phone-shot amateur look — looks like a real person snapped it on their phone. Casual, candid, pore-level real, no professional gloss. Three flavors: digital phone, 35mm film point-and-shoot, or off-duty intimate. Returns the styled prompt stack for your shot — pair it with generate_image.
| Name | Type | Req | Description |
|---|---|---|---|
| style | string | yes | digital_phone = Sony A7IV + 50mm f/1.4 GM phone-style realism. film_pointshoot = Contax T2 35mm Portra 400. off_duty_intimate = Cass Bird natural-window editorial. |
| subject | string | – | What you want to shoot. E.g. "a woman walking through a hotel lobby" or "morning coffee on the balcony". |
No output schema declared.
No examples provided.
apply_magic_hour_portrait Apply Magic Hour Portrait ~121
Golden-hour rim-light editorial portrait. Choose camera: Canon R5 + 85mm f/1.2 or Hasselblad H6D + 80mm. Returns the styled prompt stack for your shot — pair it with generate_image.
| Name | Type | Req | Description |
|---|---|---|---|
| style | string | yes | canon_85mm = Canon R5 portrait standard. hasselblad_80mm = medium-format luxury. |
| subject | string | – | What you want to shoot. E.g. "a woman walking through a hotel lobby" or "morning coffee on the balcony". |
No output schema declared.
No examples provided.
apply_movie_scene Apply Movie Scene ~165
Put me in a movie — full cinematic film look matching specific film genres. Choose: neon-noir action thriller, 80s finance excess, comic-book superhero blockbuster, video-game key art, or generic action thriller. Returns the styled prompt stack for your shot — pair it with generate_image.
| Name | Type | Req | Description |
|---|---|---|---|
| style | string | yes | neon_noir_action = wet streets + neon + anamorphic. glamour_finance_excess = 1980s Wall Street mahogany / gold. superhero_blockbuster = comic-book key art. video_game_character = Unreal-Engine charac… |
| subject | string | – | What you want to shoot. E.g. "a woman walking through a hotel lobby" or "morning coffee on the balcony". |
No output schema declared.
No examples provided.
apply_product Apply Product ~116
Product photography. Choose: clean studio hero shot, real-world lifestyle, extreme macro detail, or top-down flat lay. Returns the styled prompt stack for your shot — pair it with generate_image.
| Name | Type | Req | Description |
|---|---|---|---|
| style | string | yes | clean_studio = seamless backdrop hero. lifestyle = product in use. macro_detail = extreme close-up texture. flat_lay = top-down catalog. |
| subject | string | – | What you want to shoot. E.g. "a woman walking through a hotel lobby" or "morning coffee on the balcony". |
No output schema declared.
No examples provided.
apply_travel Apply Travel ~165
Luxury travel + hotel editorial. Real architecture is preserved exactly (no inventing buildings). Choose subject: hotel hero, rural property, scenic view, drone aerial, lifestyle moment, or interior. If you attach a reference image of a real property, the architecture lock kicks in automatically. Returns the styled prompt stack for your shot — pair it with generate_image.
| Name | Type | Req | Description |
|---|---|---|---|
| style | string | yes | hotel_hero = property is the star. rural_property = country estate. scenic_view = pure landscape. drone_aerial = top-down or 45° from above. lifestyle = model + destination. interior = inside the pro… |
| subject | string | – | What you want to shoot. E.g. "a woman walking through a hotel lobby" or "morning coffee on the balcony". |
No output schema declared.
No examples provided.
apply_ugc Apply Ugc ~132
User-generated content — looks like a real person captured it casually. Choose: phone shot, film point-and-shoot, mirror selfie, or car selfie. Returns the styled prompt stack for your shot — pair it with generate_image.
| Name | Type | Req | Description |
|---|---|---|---|
| style | string | yes | phone_shot = iPhone-style snap. film_pointshoot = Contax T2 grain. mirror_selfie = bathroom/bedroom mirror. car_selfie = inside-the-car phone. |
| subject | string | – | What you want to shoot. E.g. "a woman walking through a hotel lobby" or "morning coffee on the balcony". |
No output schema declared.
No examples provided.
apply_wellness Apply Wellness ~127
Wellness / yoga / fitness / lifestyle campaign — warm amber tropical, tropical paradise cinematic, or high-key cyan beach. Returns the styled prompt stack for your shot — pair it with generate_image.
| Name | Type | Req | Description |
|---|---|---|---|
| style | string | yes | warm_amber_tropical = warm honey grade with golden haze. hanalei_cinematic = soft golden mist + infinity pool reflection. high_key_cyan_beach = bright daylit cyan ocean. |
| subject | string | – | What you want to shoot. E.g. "a woman walking through a hotel lobby" or "morning coffee on the balcony". |
No output schema declared.
No examples provided.
approve_editor_run Approve Editor Run ~64
Explicitly approve the exact paid quote currently waiting on one of your Editor runs. Requires approved=true and the matching quote_id; stale or changed projects fail closed.
| Name | Type | Req | Description |
|---|---|---|---|
| approved | boolean | yes | – |
| quote_id | string | yes | – |
| run_id | string | yes | – |
No output schema declared.
No examples provided.
cancel_editor_run Cancel Editor Run ~41
Safely cancel one of your queued, running, or approval-waiting Switch Editor runs without applying a pending revision.
| Name | Type | Req | Description |
|---|---|---|---|
| run_id | string | yes | – |
No output schema declared.
No examples provided.
cancel_my_task Cancel Task ~71
Stop one of your generation tasks by task id — works on queued AND running tasks. Already-saved images stay in your library; nothing is deleted or refunded. Returns how many images were saved out of how many you requested.
| Name | Type | Req | Description |
|---|---|---|---|
| taskId | string | yes | Task id from generate_image or list_my_tasks. |
No output schema declared.
No examples provided.
capture_editor_assets Capture Editor Assets ~189
Capture a fixed state of the real current production Switch Editor into your Editor project. The default state is an honest baseline capture of the full Editor, its sections, scroll pages, and rendered controls; it has no fabricated click transition. States with a configured interaction add a before PNG, real button-transition WebM, and after PNG. Each manifest records the state owner lane and known unavailable or hidden surfaces so missing features are never presented as captured. Populated states require a real library image or video already attached. It uses the live Editor DOM in an isolated read-only browser, not generated or recreated UI, and charges no generation credits.
| Name | Type | Req | Description |
|---|---|---|---|
| include_controls | boolean | – | Default true. Also capture every rendered interactive control, including controls reached by scrolling, as a named asset. |
| project_id | string | yes | – |
| state | string | yes | The real Editor panel or menu state to open before capture. |
No output schema declared.
No examples provided.
check_balance Check Balance ~66
Check your daily Switch spending — what you have spent today, your daily limit, and what is remaining. Optionally pass an `estimatedCost` (USD) to also get whether you can afford it.
| Name | Type | Req | Description |
|---|---|---|---|
| estimatedCost | number | – | Optional dollar amount to test against your daily limit. |
No output schema declared.
No examples provided.
check_job_status Check Job Status ~60
Polling-friendly status check for one of your tasks. Returns a slim shape with `status`, `progressPct`, and `eta` so you can poll without refetching the full payload.
| Name | Type | Req | Description |
|---|---|---|---|
| taskId | string | yes | Task id to check. |
No output schema declared.
No examples provided.
create_depth_map Create Depth Map ~186
Turn a video into a DEPTH MAP: a grayscale video where brightness encodes distance, used as a motion reference so a new generated subject moves exactly like your source clip. Pass video_url (a public https video URL) OR one of your own Switch video ids (from list_my_videos or list_my_assets). For an external URL also pass duration_seconds (the clip length; your own Switch videos carry it automatically) because the render is billed per second of video. Returns a task_id right away; poll get_depth_map_status until the download URL is ready (usually a few minutes). If the render fails, your tokens are returned automatically.
| Name | Type | Req | Description |
|---|---|---|---|
| duration_seconds | number | – | Clip length in seconds. Required for external URLs; your own Switch videos are measured automatically. |
| video_url | string | yes | A public https video URL, OR one of your own Switch video ids. |
No output schema declared.
No examples provided.
create_editor_project Create Editor Project ~51
Create a clean, persistent project in your real Switch Editor. The same project opens in the /editor UI and is used by the Editor agent and HyperFrames renderer.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | – | Project name. |
No output schema declared.
No examples provided.
enhance_video_prompt SwitchApp Video Enhanced ~1,787
SwitchApp Video Enhanced. Prepare a video prompt using SwitchApp enhancement while keeping your selected model, references, exact quoted words and requested changes. Pass the same shot fields as generate_video. Returns original_prompt, enhanced_prompt and an enhancement_receipt. Inspect the prompt and reference assignments, then pass enhanced_prompt as subject with the receipt and unchanged shot settings to generate_video. Reuses existing spending authorization; this tool performs enhancement only and never starts video generation. Private enhancement instructions stay on the server. generate_video also applies enhancement automatically when no receipt is supplied.
| Name | Type | Req | Description |
|---|---|---|---|
| aspect_ratio | string | – | e.g. 9:16, 16:9, 1:1. Must be allowed for the model (see list_video_models). |
| audio | boolean | – | Generate audio. ON by default on Seedance 2.5 (text, image and reference), on Omni, and on every WAN 3.0 lane (text, image, reference); set false for a silent clip. Models without audio ignore this.… |
| character_orientation | string | – | Motion mode only: follow the character image (default) or the reference video. |
| duration | string | – | 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_url | string | – | End frame for frame-to-frame mode. |
| enhancement_receipt | string | – | 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_ids | array | – | Face reference asset ids from upload_reference_asset (frame_type "face") — the ONLY way to use a face/likeness reference in video. Each id is verified server-side (your own untouched original + ident… |
| image_url | string | – | 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… |
| mode | string | – | Video mode. Must be supported by the chosen model (see list_video_models). |
| model | string | – | Model id from list_video_models (e.g. kling-v3, seedance-2.0-t2v, wan-3.0-t2v, h3-max-t2v, topaz). Or prefer option_id from list_video_models. MiniMax H3 Max ids: h3-max-t2v, h3-max-i2v, h3-max-r2v (… |
| option_id | string | – | Optional catalog id from list_video_models (e.g. "kling-image"); use instead of model+mode. |
| quote_fingerprint | string | – | From quote_video. Pass with quoted_credits to reject a changed quote before charging. |
| quoted_credits | number | – | Exact quoted_credits returned by quote_video; used with quote_fingerprint. |
| reference_audio_urls | array | – | 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_urls | array | – | 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_urls | array | – | 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… |
| resolution | string | – | Output resolution. Defaults to 1080p where the model supports it. 720p is cheaper and faster. 480p is the cheapest. Seedance 2.5 offers 480p, 720p and 1080p on every mode (no 2K/4K). 4K is only on Kl… |
| subject | string | – | The shot: subject + motion + scene (video needs motion language, e.g. "slow push-in"). WAN 3.0: refer to references by their place ("Image 1", "Video 1"), not by @tags; there is no negative-prompt fi… |
| task_type | string | – | 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_url | string | – | 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.
explore_models Explore Models ~42
Browse the image-generation models available to your Switch account. Returns model id, display name, brand, and credits-per-image so you can pick one before calling generate_image.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
export_layer_set Download the layer files ~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).
| Name | Type | Req | Description |
|---|---|---|---|
| layer_set_id | string | yes | The layers project id. |
No output schema declared.
No examples provided.
flatten_layer_set Save the layers as one picture ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| layer_set_id | string | yes | The layers project id. |
No output schema declared.
No examples provided.
generate_audio Generate Audio ~464
Generate spoken audio from text: narration, a voiceover, a read-aloud script, or a multi-voice dialogue. Pass text (up to 2048 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). Optional speech_rate (-50..100), pitch (-12..12), loudness (-50..100). Returns a playable audio_url, duration_seconds, and generation_id (also saved to your library).
| Name | Type | Req | Description |
|---|---|---|---|
| format | string | – | Optional output format. Default mp3. |
| image_url | string | – | Optional. Voice a scene from a picture. Cannot be combined with reference audio. |
| loudness | number | – | Optional. Loudness, -50 (quieter) to 100 (louder). 0 is normal. |
| pitch | number | – | Optional. Pitch, -12 to 12. 0 is normal. |
| reference_audio_url | string | – | Optional. A short clip URL to instantly match that voice. |
| reference_audio_urls | array | – | Optional. Up to 3 reference clip URLs for multi-voice dialogue. |
| speech_rate | number | – | Optional. Speaking speed, -50 (slower) to 100 (faster). 0 is normal. |
| text | string | yes | The words to speak / narrate / perform. Max 2048 chars. For dialogue, address voices as @Audio1, @Audio2, @Audio3. |
| voice | string | – | 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_image Generate Image ~518
Generate one or more Switch images. Auto-routes to the right model based on subject (Nano Banana 2 default, GPT Image 2 for swimwear/beach, Switch Model/Ultra/Pro for sexier content, Nano Banana Pro for typography-heavy). 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. Pass an optional `style` (e.g. "wellness/warm_amber_tropical", "high_fashion_editorial/testino_glossy", "movie_scene/neon_noir_action") to apply a curated photographic stack from the apply_* skill tools.
| Name | Type | Req | Description |
|---|---|---|---|
| aspect_ratio | string | – | Image aspect ratio. Default 9:16 (vertical, social-friendly). |
| count | integer | – | 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. |
| face_reference_ids | array | – | Face reference asset ids from upload_reference_asset (frame_type "face"). The ONLY way to use a face/likeness reference. Each id is verified server-side (your own untouched original + identity verifi… |
| folder_name | string | – | Optional Switch Studio folder name. Auto-created if missing. Defaults to the chat-derived title. |
| model | string | – | Optional explicit model. If omitted, auto-routed based on subject content (see tool description). |
| real_photo_look | boolean | – | 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_urls | array | – | Optional public image URLs used as GENERIC references (products, scenery, outfits, style). These are never treated as face references — for a person's face/likeness use face_reference_ids. |
| style | string | – | Optional curated style stack from the apply_* skill tools. Format "<skill>/<style_key>", e.g. "wellness/warm_amber_tropical" or "high_fashion_editorial/leibovitz_painterly". |
| subject | string | yes | Plain-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 | Type | Req | Description |
|---|---|---|---|
| _widget | object | – | – |
| asset | object | – | – |
| images | array | – | – |
No examples provided.
generate_video Generate Video ~2,117
Generate Switch video across the real provider lineup (Kling, BytePlus Seedance, Switch Video/WAN 2.7, Switch Video Edit, 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; call enhance_video_prompt first to inspect it and reuse its signed enhancement_receipt. Use quote_video for the exact current token price and pass quote_fingerprint plus quoted_credits to enforce it. Use Switch MCP directly; never open the website, browser, or desktop unless the user explicitly asked. For realistic reference-driven video, evaluate BytePlus Seedance 2.5 first unless the user chose another provider or model. 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.
| Name | Type | Req | Description |
|---|---|---|---|
| aspect_ratio | string | – | e.g. 9:16, 16:9, 1:1. Must be allowed for the model (see list_video_models). |
| audio | boolean | – | Generate audio. ON by default on Seedance 2.5 (text, image and reference), on Omni, and on every WAN 3.0 lane (text, image, reference); set false for a silent clip. Models without audio ignore this.… |
| character_orientation | string | – | Motion mode only: follow the character image (default) or the reference video. |
| duration | string | – | 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_url | string | – | End frame for frame-to-frame mode. |
| enhancement_receipt | string | – | 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_ids | array | – | Face reference asset ids from upload_reference_asset (frame_type "face") — the ONLY way to use a face/likeness reference in video. Each id is verified server-side (your own untouched original + ident… |
| image_url | string | – | 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… |
| mode | string | – | Video mode. Must be supported by the chosen model (see list_video_models). |
| model | string | – | Model id from list_video_models (e.g. kling-v3, seedance-2.0-t2v, wan-3.0-t2v, h3-max-t2v, topaz). Or prefer option_id from list_video_models. MiniMax H3 Max ids: h3-max-t2v, h3-max-i2v, h3-max-r2v (… |
| option_id | string | – | Optional catalog id from list_video_models (e.g. "kling-image"); use instead of model+mode. |
| person_rights_confirmed | boolean | – | Required with video_people_declaration "person": confirms you own or are authorized to use the person's likeness in the reference video. |
| quote_fingerprint | string | – | From quote_video. Pass with quoted_credits to reject a changed quote before charging. |
| quoted_credits | number | – | Exact quoted_credits returned by quote_video; used with quote_fingerprint. |
| reference_audio_urls | array | – | 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_urls | array | – | 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_urls | array | – | 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… |
| resolution | string | – | Output resolution. Defaults to 1080p where the model supports it. 720p is cheaper and faster. 480p is the cheapest. Seedance 2.5 offers 480p, 720p and 1080p on every mode (no 2K/4K). 4K is only on Kl… |
| shots | array | – | A storyboard of 1-10 DISTINCT shots. Each item takes the same fields as a single shot (subject, model, mode, image_url, etc.). |
| subject | string | – | The shot: subject + motion + scene (video needs motion language, e.g. "slow push-in"). WAN 3.0: refer to references by their place ("Image 1", "Video 1"), not by @tags; there is no negative-prompt fi… |
| task_type | string | – | 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_declaration | string | – | Required with reference_video_urls: "none" confirms no real person appears; "person" runs the protected pipeline (verified account, your own stored upload, Seedance 2.5/Mini lane, provider asset regi… |
| video_url | string | – | 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_depth_map_status Get Depth Map Status ~85
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.
| Name | Type | Req | Description |
|---|---|---|---|
| task_id | string | yes | The task_id returned by create_depth_map. |
No output schema declared.
No examples provided.
get_editor_project Get Editor Project ~52
Inspect one of your persistent Switch Editor projects. Omit project_id for your latest project; include_payload=true returns its full editable state.
| Name | Type | Req | Description |
|---|---|---|---|
| include_payload | boolean | – | – |
| project_id | string | – | – |
No output schema declared.
No examples provided.
get_editor_run Get Editor Run ~40
Read progress, checks, exact approval quote, revision, and render result for one of your Switch Editor agent runs.
| Name | Type | Req | Description |
|---|---|---|---|
| run_id | string | yes | – |
No output schema declared.
No examples provided.
get_layer_set Open a layers project ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| layer_set_id | string | yes | The layers project id from split_image_into_layers. |
No output schema declared.
No examples provided.
get_my_active_references Get Active References ~211
Read the user's 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 Get Video Status ~87
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. Poll this every ~20s — do not loop rapidly.
| Name | Type | Req | Description |
|---|---|---|---|
| job_id | string | – | Alternatively, the job_id. |
| task_id | string | – | Task id returned by generate_video. |
No output schema declared.
No examples provided.
get_vision_report Get Analysis 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.
| Name | Type | Req | Description |
|---|---|---|---|
| report_id | string | yes | The report id to fetch. |
No output schema declared.
No examples provided.
lip_sync_video Lip Sync Video ~537
Lip-sync audio onto one of your videos. DEFAULT and recommended: action="create" with video_url + sound_file (base64 data URI) — Sync Labs Sync 3 syncs the whole clip in one pass, no face step, no timing, highest quality. You do not need to pass engine at all. Kling flow, only when a line must land on an exact frame (manual timing control): (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.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | Which step to run. |
| audio_id | string | – | create: alternative to sound_file — an existing audio id. |
| engine | string | – | create: OPTIONAL. Leave it out — the default is "best", Sync Labs Sync 3, whole-clip and highest quality, needing only video_url + sound_file. Pass "kling" only for the timeline flow where you place… |
| face_id | string | – | create: a face_id from identify-face (one face supported). |
| original_audio_volume | number | – | create: how loud the clip's own sound stays, as a percent 0-100 (default 0). |
| session_id | string | – | create: from identify-face. |
| sound_end_time | integer | – | create: audio end, in MILLISECONDS. |
| sound_file | string | – | create: base64 data URI of the audio (e.g. data:audio/mpeg;base64,...). |
| sound_insert_time | integer | – | create: where in the video to place the audio, in MILLISECONDS. |
| sound_start_time | integer | – | create: audio start, in MILLISECONDS. |
| speech_volume | number | – | create: how loud the new speech is, as a percent 0-100 (default 100). |
| task_id | string | – | status: the task_id from create. |
| video_url | string | – | 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_generations List Generations ~92
List your recent and active generation tasks. Returns counts per status (pending / running / completed / failed) plus an array of your tasks with id, status, prompts, model, ref counts, scheduledAt, finishedAt.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Default 10. Max 50. |
| status | – | – | "all" for everything, or array like ["pending","running"]. Default: active + recent. |
No output schema declared.
No examples provided.
list_my_assets List Assets ~112
Return 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. move_asset) or a plain text list.
| Name | Type | Req | Description |
|---|---|---|---|
| count | integer | – | Default 20. Max 50. |
No output schema declared.
No examples provided.
list_my_folders List Folders ~38
List the folders in your Switch library (id, name, parent). Use this to find an existing folder before move_asset or create_folder.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
list_my_videos List Videos ~94
List your recent Switch videos, newest first — id, status, prompt, model, and a viewable view_url for finished clips. Use this to check whether videos finished and to let the user choose which one they want.
| Name | Type | Req | Description |
|---|---|---|---|
| count | integer | – | How many to return. Default 10. Max 50. |
| status | string | – | Optional filter: submitted, processing, succeed, failed, or all. |
No output schema declared.
No examples provided.
list_video_models 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 List Analysis 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.
load_video_workflow Load Video Workflow ~84
Load once when starting production 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.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
quote_video Get Video Price ~1,778
Get the current server price in Switch tokens before video generation. Uses the same billing calculator as submission and measures stored reference clips. Pass one shot using the same model, mode, duration, resolution and references as generate_video. No creative prompt is required for a quote. Does not enhance, generate, or deduct tokens. Upload external video/audio references first. Returns quote_fingerprint for generate_video; a changed price is rejected before charging. Some routes may return QUOTE_ROUTE_UNAVAILABLE instead of inventing a price.
| Name | Type | Req | Description |
|---|---|---|---|
| aspect_ratio | string | – | e.g. 9:16, 16:9, 1:1. Must be allowed for the model (see list_video_models). |
| audio | boolean | – | Generate audio. ON by default on Seedance 2.5 (text, image and reference), on Omni, and on every WAN 3.0 lane (text, image, reference); set false for a silent clip. Models without audio ignore this.… |
| character_orientation | string | – | Motion mode only: follow the character image (default) or the reference video. |
| duration | string | – | 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_url | string | – | End frame for frame-to-frame mode. |
| enhancement_receipt | string | – | 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_ids | array | – | Face reference asset ids from upload_reference_asset (frame_type "face") — the ONLY way to use a face/likeness reference in video. Each id is verified server-side (your own untouched original + ident… |
| image_url | string | – | 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… |
| mode | string | – | Video mode. Must be supported by the chosen model (see list_video_models). |
| model | string | – | Model id from list_video_models (e.g. kling-v3, seedance-2.0-t2v, wan-3.0-t2v, h3-max-t2v, topaz). Or prefer option_id from list_video_models. MiniMax H3 Max ids: h3-max-t2v, h3-max-i2v, h3-max-r2v (… |
| option_id | string | – | Optional catalog id from list_video_models (e.g. "kling-image"); use instead of model+mode. |
| quote_fingerprint | string | – | From quote_video. Pass with quoted_credits to reject a changed quote before charging. |
| quoted_credits | number | – | Exact quoted_credits returned by quote_video; used with quote_fingerprint. |
| reference_audio_urls | array | – | 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_urls | array | – | 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_urls | array | – | 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… |
| resolution | string | – | Output resolution. Defaults to 1080p where the model supports it. 720p is cheaper and faster. 480p is the cheapest. Seedance 2.5 offers 480p, 720p and 1080p on every mode (no 2K/4K). 4K is only on Kl… |
| subject | string | – | The shot: subject + motion + scene (video needs motion language, e.g. "slow push-in"). WAN 3.0: refer to references by their place ("Image 1", "Video 1"), not by @tags; there is no negative-prompt fi… |
| task_type | string | – | 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_url | string | – | 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.
render_editor_project Render Editor Project ~48
Render your current persistent Switch Editor project as an MP4 through the real HyperFrames render worker. Use get_editor_run to follow it to playback and download.
| Name | Type | Req | Description |
|---|---|---|---|
| project_id | string | yes | – |
No output schema declared.
No examples provided.
run_editor_agent Run Editor Agent ~62
Tell your Switch Editor agent to build or revise the persistent editable project. It can author scenes, layers, variables, files, motion, and narration plans through the real HyperFrames project workspace.
| Name | Type | Req | Description |
|---|---|---|---|
| project_id | string | yes | – |
| prompt | string | yes | – |
No output schema declared.
No examples provided.
search_my_library Search Library ~86
Search your library by prompt substring (metadata only — id, prompt, date). Optional folderId scopes to one folder. Only your own assets are returned. This does NOT display images; to show/display results to the user, pass their ids to show_media.
| Name | Type | Req | Description |
|---|---|---|---|
| folderId | string | – | – |
| limit | integer | – | Default 20. |
| query | string | yes | – |
No output schema declared.
No examples provided.
show_generation Show Generation ~56
Get the full detail of one of your generations by task id — prompts, model, ref counts, saved/failed counts, ETA hint, asset ids.
| Name | Type | Req | Description |
|---|---|---|---|
| taskId | string | yes | Task id from generate_image or list_generations. |
No output schema declared.
No examples provided.
show_media Show Media ~224
Display the user's images inline — one or many. Users speak plainly and will NOT know asset ids; never ask for one, resolve it yourself. For "show me" or "show me my last image" call with NO arguments (shows the most recent image). For "show me my last 4 images / my last 10 pictures" pass count=N (returns a clean grid, up to 12). For a specific known image pass assetId. Renders a branded SwitchApp media card with a Download action per result; do not just print URLs. (Videos are not shown here — use list_my_videos and return the newest finished video's view_url, which plays.)
| Name | Type | Req | Description |
|---|---|---|---|
| assetId | string | – | Optional. A specific image id (from list_my_assets, search_my_library, or show_generation). Omit to show the most recent image(s). |
| count | integer | – | Optional. How many of the most recent images to show as a grid (default 1, max 12). Use when the user says "my last N images/pictures". |
| Name | Type | Req | Description |
|---|---|---|---|
| _widget | object | – | – |
| asset | object | – | – |
| images | array | – | – |
No examples provided.
split_image_into_layers Separate an image into layers ~157
Separate one of your own Switch images into editable layers with Seedream 5.0 Pro: a base plus up to 16 transparent PNG layers, each named and placed. Say which image (asset_id, or "my last image"), optionally what to separate, and the size. Charged only for the layers that actually come back; a failed split is fully refunded.
| Name | Type | Req | Description |
|---|---|---|---|
| asset_id | string | yes | The id of your image to separate. "my last image" also works. |
| instruction | string | – | Optional: what to separate, e.g. "the outfit and the bunny". Leave empty to separate everything the model finds. |
| size | string | – | Output size for the layers. Auto follows the original image. |
No output schema declared.
No examples provided.
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 61 tools: explore_models, check_balance, list_generations, show_generation, check_job_status, and 56 more. Their descriptions and schemas cost roughly 14,722 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 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.