Generate, manage, and explore your Switch AI image and video library, scoped to your account.
Do not connect
A critical issue was found. Do not connect this server as-is.
Scanned 6 days ago
A server can change after it's graded. Re-run the automated scan to refresh this report.
This grade is deterministic and reproducible: the same server surface always yields the same grade under a given algorithm version. It is a real automated assessment computed by the MCPGrade engine from what the probe actually observed — not a fabricated or opinion score. It is not a manual human pentest, so it can miss context-specific risks.
Every signal below was measured directly by the automated probe. The grade is derived only from evidence like this — nothing is assumed.
The switch MCP server exposes 56 tools, focused primarily on AI, developer, and network capabilities. Its published description reads: "Generate, manage, and explore your Switch AI image and video library, scoped to your account". It communicates over Streamable HTTP using the 2025-06-18 protocol revision, and does not require authorization to connect. MCPGrade currently rates switch F — a critical issue was found and the server should not be connected as-is. Its most notable findings include "Cross-tool shadowing" and "Cross-tool shadowing". This report is a deterministic, reproducible automated assessment: the same observed surface always yields the same grade under a given algorithm version, and it is refreshed as new scans arrive and free to read — but it is not a substitute for a manual human security review. Always re-check switch's advertised tools, transport security, and authorization posture before connecting an autonomous agent or sharing sensitive context with it.
Add switch to an MCP client using the endpoint below. Review the grade and findings above before granting an autonomous agent access.
MCP endpoint
https://mcp.switchapp.ai/mcpStreamable HTTP transport. This is the MCP endpoint, not a website — paste it into your MCP client server list rather than a browser.
Captured passively during the read-only scan. Click any value to find servers that match it.
The tools this server advertises via tools/list — names, purposes, and the parameters each accepts, exactly as enumerated read-only.
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.
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.
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, f
Sorted worst-first. Each finding shows its severity, what it means, its OWASP MCP Top-10 mapping, and a recommended fix — the check id links to the exact methodology row that produced it.
tool: explore_models
A tool description tries to alter the model’s use of another tool.
before calling generate_image.RecommendationDescriptions must describe only their own tool.
tool: show_media
A tool description tries to alter the model’s use of another tool.
hown here — use list_my_videos and return the newest finished video's view_urlRecommendationDescriptions must describe only their own tool.
tool: list_my_assets
A tool description tries to alter the model’s use of another tool.
image(s)", call show_media instead (it renders them; pass count=N for seveRecommendationDescriptions must describe only their own tool.
tool: search_my_library
A tool description tries to alter the model’s use of another tool.
ss their ids to show_media.RecommendationDescriptions must describe only their own tool.
tool: get_my_active_references
A tool description tries to alter the model’s use of another tool.
all this before generate_image or generate_video whenever the user says "use mRecommendationDescriptions must describe only their own tool.
tool: apply_iphone_realism
A tool description tries to alter the model’s use of another tool.
— pair it with generate_image.RecommendationDescriptions must describe only their own tool.
tool: apply_movie_scene
A tool description tries to alter the model’s use of another tool.
— pair it with generate_image.RecommendationDescriptions must describe only their own tool.
tool: apply_high_fashion_editorial
A tool description tries to alter the model’s use of another tool.
— pair it with generate_image.RecommendationDescriptions must describe only their own tool.
tool: apply_graphic_editorial_portrait
A tool description tries to alter the model’s use of another tool.
— pair it with generate_image.RecommendationDescriptions must describe only their own tool.
tool: apply_travel
A tool description tries to alter the model’s use of another tool.
— pair it with generate_image.RecommendationDescriptions must describe only their own tool.
tool: apply_wellness
A tool description tries to alter the model’s use of another tool.
— pair it with generate_image.RecommendationDescriptions must describe only their own tool.
tool: apply_cinematic_anamorphic
A tool description tries to alter the model’s use of another tool.
— pair it with generate_image.RecommendationDescriptions must describe only their own tool.
tool: apply_magic_hour_portrait
A tool description tries to alter the model’s use of another tool.
— pair it with generate_image.RecommendationDescriptions must describe only their own tool.
tool: apply_product
A tool description tries to alter the model’s use of another tool.
— pair it with generate_image.RecommendationDescriptions must describe only their own tool.
tool: apply_ugc
A tool description tries to alter the model’s use of another tool.
— pair it with generate_image.RecommendationDescriptions must describe only their own tool.
tool: generate_video
A tool exposes a free-text/webhook/feedback parameter with no honest purpose — a classic exfil channel.
parameter "image_url"RecommendationRemove side-channel parameters; constrain tool inputs.
tool: generate_video
A tool description tries to alter the model’s use of another tool.
RecommendationDescriptions must describe only their own tool.
tool: generate_video
The text tells the model WHEN to call this tool relative to others ("always call first", "before any other tool", "chain to X tool") — a toxic-flow injection that hijacks the agent’s orchestration rather than describing the tool.
edit, upscale). ALWAYS call list_video_models first to pick the right model + mode and see its requRecommendationTool metadata must describe only the tool, never sequence the agent’s calls.
tool: list_video_models
A tool description tries to alter the model’s use of another tool.
all this before generate_video so you pick a real model + mode and supply theRecommendationDescriptions must describe only their own tool.
tool: get_video_status
A tool description tries to alter the model’s use of another tool.
y task_id (from generate_video) or job_id. Returns status, a viewable view_urlRecommendationDescriptions must describe only their own tool.
tool: upscale_video
A tool description tries to alter the model’s use of another tool.
rs async — poll get_video_status per task_id. Billed per second of the source clRecommendationDescriptions must describe only their own tool.
tool: lip_sync_video
A tool exposes a free-text/webhook/feedback parameter with no honest purpose — a classic exfil channel.
parameter "video_url"RecommendationRemove side-channel parameters; constrain tool inputs.
tool: talking_avatar_video
A tool exposes a free-text/webhook/feedback parameter with no honest purpose — a classic exfil channel.
parameter "image_url"RecommendationRemove side-channel parameters; constrain tool inputs.
tool: talking_avatar_video
A tool description tries to alter the model’s use of another tool.
RecommendationDescriptions must describe only their own tool.
tool: voice
A tool exposes a free-text/webhook/feedback parameter with no honest purpose — a classic exfil channel.
parameter "audio_url"RecommendationRemove side-channel parameters; constrain tool inputs.
tool: voice
A tool description tries to alter the model’s use of another tool.
r" voices drive talking_avatar_video. action="create" saves a NEW reference voice frRecommendationDescriptions must describe only their own tool.
tool: generate_audio
A tool exposes a free-text/webhook/feedback parameter with no honest purpose — a classic exfil channel.
parameter "reference_audio_url"RecommendationRemove side-channel parameters; constrain tool inputs.
tool: generate_audio
A tool description tries to alter the model’s use of another tool.
ipt, or a multi-voice dialogue. Pass text (up to 2048 chars) — the woRecommendationDescriptions must describe only their own tool.
tool: upload_reference_asset
A tool exposes a free-text/webhook/feedback parameter with no honest purpose — a classic exfil channel.
parameter "url"RecommendationRemove side-channel parameters; constrain tool inputs.
tool: upload_reference_asset
A tool description tries to alter the model’s use of another tool.
_audio_urls for generate_image and generate_video. Image references are also aRecommendationDescriptions must describe only their own tool.
tool: stitch_videos
A tool description tries to alter the model’s use of another tool.
(get them from list_my_videos) — the first id plays first. Optional orientatiRecommendationDescriptions must describe only their own tool.
tool: analyze_video
A tool exposes a free-text/webhook/feedback parameter with no honest purpose — a classic exfil channel.
parameter "video_url"RecommendationRemove side-channel parameters; constrain tool inputs.
tool: analyze_video
A tool description tries to alter the model’s use of another tool.
ist_my_videos / list_my_assets / upload_media). Add an optional question to foRecommendationDescriptions must describe only their own tool.
tool: create_depth_map
A tool exposes a free-text/webhook/feedback parameter with no honest purpose — a classic exfil channel.
parameter "video_url"RecommendationRemove side-channel parameters; constrain tool inputs.
tool: create_depth_map
A tool description tries to alter the model’s use of another tool.
st_my_videos or list_my_assets). For an external URL also pass duration_secondRecommendationDescriptions must describe only their own tool.
tool: get_depth_map_status
A tool description tries to alter the model’s use of another tool.
rs started with create_depth_map. Pass the task_id it returned. While renderingRecommendationDescriptions must describe only their own tool.
tool: analyze_video_report
A tool exposes a free-text/webhook/feedback parameter with no honest purpose — a classic exfil channel.
of the file, 3 tokens per second with a 30 second minimum. Re-runningRecommendationRemove side-channel parameters; constrain tool inputs.
tool: analyze_video_report
A tool description tries to alter the model’s use of another tool.
out a video use analyze_video instead; this tool is the full paid report.RecommendationDescriptions must describe only their own tool.
tool: get_vision_report
A tool exposes a free-text/webhook/feedback parameter with no honest purpose — a classic exfil channel.
parameter "report_id"RecommendationRemove side-channel parameters; constrain tool inputs.
tool: get_vision_report
A tool description tries to alter the model’s use of another tool.
report_id (from analyze_video_report or list_vision_reports). Returns the complete sRecommendationDescriptions must describe only their own tool.
tool: list_vision_reports
A tool exposes a free-text/webhook/feedback parameter with no honest purpose — a classic exfil channel.
Video Analysis history, newest first: report_id, date, status, sourceRecommendationRemove side-channel parameters; constrain tool inputs.
tool: list_vision_reports
A tool description tries to alter the model’s use of another tool.
ts report_id to get_vision_report (full report) or video_to_prompt (just the recrRecommendationDescriptions must describe only their own tool.
tool: video_to_prompt
A tool exposes a free-text/webhook/feedback parameter with no honest purpose — a classic exfil channel.
parameter "report_id"RecommendationRemove side-channel parameters; constrain tool inputs.
tool: video_to_prompt
A tool description tries to alter the model’s use of another tool.
report_id (from analyze_video_report or list_vision_reports) or video_url (the exactRecommendationDescriptions must describe only their own tool.
tool: add_editor_library_assets
A tool description tries to alter the model’s use of another tool.
h_my_library or list_my_assets; Switch copies only owner-scoped durable filesRecommendationDescriptions must describe only their own tool.
tool: render_editor_project
A tool description tries to alter the model’s use of another tool.
der worker. Use get_editor_run to follow it to playback and download.RecommendationDescriptions must describe only their own tool.
tool: upload_media
A tool exposes a free-text/webhook/feedback parameter with no honest purpose — a classic exfil channel.
parameter "url"RecommendationRemove side-channel parameters; constrain tool inputs.
tool: upload_media
Tools that execute commands / write files / make arbitrary requests are exposed without annotations or guards.
esigned PUT, no curl, no confirm-upload step. Do NOT call get_my_actRecommendationAnnotate destructive tools and require human approval.
tool: upload_media
A tool description tries to alter the model’s use of another tool.
ep. Do NOT call get_my_active_references for a chat-attached photo; that strip only holdRecommendationDescriptions must describe only their own tool.
tool: (server instructions)
A tool description tries to alter the model’s use of another tool.
esent both. Use explore_models and check_balance for account context; list_genRecommendationDescriptions must describe only their own tool.
The server accepts tool enumeration (and likely invocation) with no authentication.
RecommendationRequire OAuth 2.1 authorization for any server exposing non-public tools.
The server exposes one or more ui:// (MCP Apps) resources whose HTML/JS renders inside the host client — a client-side injection / data-exposure surface most scanners ignore. Flagged for review, not damning on its own.
1 ui:// resource(s); e.g. ui://widget/switch-media-v6.htmlRecommendationReview each ui:// resource’s markup and scripts; treat host-rendered UI as untrusted, sandbox it, and never expose secrets or conversation context to it.
Vantaj uptime monitoring via MCP — manage monitors, heartbeats, incidents, and status pages.
Unified gateway to Algeria's TKAWEN ecosystem: commerce, certification, and AI tools.
Provides access to the Cohereon Doctrine AI safety framework with governance components, tiered access, and agent onboarding.
Agentic rails for complex workflows with receipts, fees, and MCP tool access.
Structural TC39 spec lookup for ECMA-262 and ECMA-402 in AI agents, SHA-pinned and offline-first.
Structural TC39 spec lookup for ECMA-262 and ECMA-402 in AI agents, SHA-pinned and offline-first.
Get the full detail of one of your generations by task id — prompts, model, ref counts, saved/failed counts, ETA hint, asset ids.
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.
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
List the folders in your Switch library (id, name, parent). Use this to find an existing folder before move_asset or create_folder.
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 i
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 res
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 refe
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-du
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 acti
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,
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 generat
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.
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.
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.
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.
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.
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
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 f
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 h
Generate Switch video across the real provider lineup (Kling, Seedance, Switch Video/WAN 2.7, Switch Video Edit, Topaz upscale) and modes (text-to-video, image-to-video, frame-to-frame, motion, omni,
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. Call this before gene
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
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 the
Upscale and enhance one of YOUR videos (or a public https clip) with Topaz. Full control: scale 1 to 4 (1.5x works), optional target_fps 16 to 60 for frame interpolation (60 fps costs double), and the
Lip-sync audio onto one of your videos. RECOMMENDED: action="create" with engine="best" + video_url + sound_file (base64 data URI) — syncs the whole clip on the highest-quality engine, no face step ne
Turn a face photo into a lip-synced talking-head video that speaks your text (or your audio). Provide image_url (a clear face photo) and either script (text to speak, max 2500 characters) or audio_url
Your saved voices — one tool for the whole voice library. Users speak plain language and never know ids: resolve every voice by NAME yourself (call action "list" first if unsure) and never ask the use
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, pa
Upload an image, video, or audio reference into Switch cloud and get an opaque asset_id (never a raw storage URL) to pass in reference fields. Pass kind=image|video|audio. Returns reference_image_urls
Stitch several of your Switch videos together into ONE video, played back-to-back in the order you give. Pass clip_asset_ids: an ORDERED list of your video ids (get them from list_my_videos) — the fir
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 htt
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
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 th
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 cat
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 o
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
Turn one of your finished Video Analysis reports into ONE reusable generation prompt that recreates the source video's look, energy, pacing and mood, with a {your photo} placeholder where your own sub
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"), o
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 thei
Arrange your own layers project: show or hide a layer, move or resize it (box as [left, top, right, bottom] in the base picture's pixels), change its stacking order, or reset it back to where the spli
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
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 Fig
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.
Inspect one of your persistent Switch Editor projects. Omit project_id for your latest project; include_payload=true returns its full editable state.
Upload an image, video, or audio file directly into your real Switch Editor project. First call with presign=true, PUT the bytes to upload_url, then confirm_path in a second call; no browser file pick
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 wor
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 works
Read progress, checks, exact approval quote, revision, and render result for one of your Switch Editor agent runs.
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.
Safely cancel one of your queued, running, or approval-waiting Switch Editor runs without applying a pending revision.
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.
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 rendere
Upload one image into your Switch library in a single call. Pass `url` (any public https) OR `base64` + `mime`. Switch fetches/decodes it server-side, stores it, and returns a clean public URL plus th