Skip to main content
Generate and find images, 3D models, audio, video and motion, then import them into the project. 43 tools. What each column means, and how to connect: MCP tools reference.
Generated from the tools’ own definitions: the summer-engine npm package 3.3.0 (its MCP server’s tools/list, library/tools/*/resource.yaml and registry/generated/index.json in SummerEngine/summer) and the hosted Summer Engine MCP (src/lib/mcp/hosted at commit 8c4351ee30). If something here is wrong, the tool definition is wrong.

summer_check_job

On the local MCP (summer-engine npm) and the hosted MCP.
Check the status of an async generation job.Use this when you called summer_generate_3d with wait=false, or need to re-check a job that timed out. Most of the time you won’t need this — summer_generate_3d waits automatically.Status values: waiting, active, completed, failed, delayed, unknown.Cloud tool — runs on Summer’s servers and works WITHOUT the Summer Engine app open. Requires authentication: run ‘npx -y summer-engine@latest login’ first.Use when:
  • a generation ran without waiting, or timed out, and needs re-checking
  • “is my 3D model / video done yet?”
  • a generate_* call returned a job id instead of a finished asset
Do not use when:
  • the generation returned the asset directly — there is nothing to poll
Inputs:
Output: MCP text content holding JSON; errors set isError.
Example call

summer_fabricate_3d

On the local MCP (summer-engine npm). Fabricate a 3D mesh asset by running a Blender Python (bpy) script in the USER’S OWN installed Blender — headless, supervised by the engine — then import the exported .glb into the project and optionally instantiate it into the open scene. Blender is a dependency the user installs; Summer never bundles, downloads, or brands it. WHEN — the three asset classes neither generation nor the free library serve well:
  • modular kits with exact dimensions and snapping (walls, pipes, fences, rails: array + boolean + bevel, one shared material) — generation cannot hold size and style across 30 pieces;
  • VFX meshes (shatter pieces, curve sweeps, trails, LOD chains) — one-liners in bpy, absent in the engine;
  • post-processing a generated model (decimate -> UV unwrap -> bake) before it goes into the scene. WHEN NOT: a generic prop (barrel, crate, chair) -> summer_search_assets / summer_import_asset first, then summer_generate_3d; a character or any organic shape -> summer_generate_3d (scripted organic modelling is the documented failure mode); a blockout or placeholder -> summer_run_script primitives/CSG, instant and in-scene. Route with the asset-strategy skill; the fabricating-assets skill carries the bpy rules and recipes.
SCRIPT CONTRACT: ‘source’ is plain bpy code. Pre-bound names: bpy, bmesh, mathutils, math, Vector, Matrix, Euler. The script must CREATE mesh objects and leave them linked in the scene — do NOT export and do NOT quit (the engine’s bootstrap exports for you: modifiers applied at export, Geometry Nodes realized, +Y-up conversion, materials carried as Principled BSDF only, a procedural Base Color baked to a 2K texture; procedural Metallic/Roughness/Normal/Emission are NOT baked and come back in ‘warnings’). Objects hidden or render-disabled are treated as helpers (boolean cutters, guides) and are not exported — they are listed in ‘skipped’. Model in metres. MESH/CURVE/SURFACE/META/FONT export as meshes, EMPTY/ARMATURE keep hierarchy, cameras and lights are dropped. Name your objects — they become node names. REQUIRES BLENDER on the user’s machine (4.2 LTS or newer). Resolution order: ‘blender_path’ -> SUMMER_BLENDER_BIN in the editor’s environment -> Editor Settings filesystem/import/blender/blender_path (shared with .blend import) -> PATH, well-known install dirs, ~/.summer/tools/blender-*. Not found -> failure_reason blender_not_found with the exact fix and every path that was checked; relay it to the user as a one-line decision, never guess a path and never install anything on their behalf. ONE fabrication runs at a time per editor (failure_reason busy — wait for the result, never fire two in parallel). Budget max_seconds 15-600 (default 120) covers Blender boot + script + bakes + export; the client waits max_seconds + 60 s. Blind until import: there is no viewport feedback while the script runs, so keep scripts deterministic (fixed seeds) and verify afterwards. Returns {ok, ran, blender_version, blender_path, out_path, objects[{name,type,vertices,faces,triangles,materials,modifiers}], object_count, dimensions{x,y,z} (+Y up, source scale), warnings[], baked[], skipped[], output[], errors[], exit_code, duration_ms, checkpoint} plus imported_node_path / scale_applied / instance_dimensions with import_to_scene, and no_rewind_point:true when no checkpoint exists. Failures carry failure_reason: blender_not_found | blender_launch_failed | script_error (traceback_tail + script_line — fix the bpy against the reported blender_version and re-run; bpy APIs change across majors) | timeout (raise max_seconds or split the job) | export_empty (no exportable object — check hide/render flags and collection links) | export_failed | export_missing | import_failed / instantiate_failed (the .glb IS at out_path — summer_instantiate_scene it yourself; the importer’s message is in summer_get_console) | busy | cancelled. THE LOOP: summer_world_snapshot BEFORE (keep snapshot_id) -> summer_fabricate_3d with import_to_scene (+ target_size for real-world scale) -> read dimensions/warnings/skipped -> summer_snapshot_diff + summer_screenshot -> iterate. Never claim a visual result without the screenshot. If this engine build predates FabricateMesh, the result is a structured engine_lacks_op failure (nothing is sent): use summer_generate_3d / summer_search_assets, or update Summer Engine. Use when:
  • a modular kit with exact dimensions and snapping — walls, pipes, fences, rails — where generation cannot hold size and style across many pieces
  • VFX meshes — shatter pieces, curve sweeps, trails, LOD chains — that are one-liners in bpy and absent from the engine
  • post-processing a generated model (decimate, UV unwrap, bake) before it goes into the scene
  • “write a Blender script that builds …” / “fabricate a parametric … with booleans and bevels”
Do not use when:
  • a generic prop (barrel, crate, chair) — summer_search_assets / summer_import_asset first, then summer_generate_3d
  • a character or any organic shape — summer_generate_3d (scripted organic modelling is the documented failure mode)
  • a blockout or placeholder — summer_run_script primitives/CSG are instant and in-scene
  • the user has no Blender install and does not want one — this tool never installs, downloads, or bundles Blender
  • requires an engine build with FabricateMesh (Summer Engine 0.5.66 or newer); older engines return engine_lacks_op
Inputs:
Output: MCP text content holding JSON; errors set isError. From the tool’s own description: Returns {ok, ran, blender_version, blender_path, out_path, objects[{name,type,vertices,faces,triangles,materials,modifiers}], object_count, dimensions{x,y,z} (+Y up, source scale), warnings[], baked[], skipped[], output[], errors[], exit_code, duration_ms, checkpoint} plus imported_node_path / scale_applied / instance_dimensions with import_to_scene, and no_rewind_point:true when no checkpoint exists.
Example call

summer_generate_3d

On the local MCP (summer-engine npm) and the hosted MCP.
Generate a 3D model via Summer Engine Studio.Available models:
  • “hunyuan” (default) — Hunyuan 3D v3.1 Pro, high quality
  • “trellis” — Trellis 2, fast and detailed
  • “meshy” — Meshy, legacy option
Model ids are an ALLOWLIST, not a passthrough. An unrecognised id is rejected with 400 listing the accepted ids.Available kinds:
  • “text-to-3d” (default) — From text description. Requires ‘prompt’. Internally generates a 3D-optimized reference image first, then converts to 3D.
  • “image-to-3d” — From your own image. Requires ‘imageUrl’.
  • “texture” — Generate textures for a model. Requires ‘imageUrl’.
Optional rig pass (image-to-3d only): Set options.rig = true to add an auto-rig pass via Meshy v6. The result job (poll via summer_check_job) will include rigAssetId — the asset ID of the rigged glb. Use that rigAssetId with summer_generate_motion to add animation clips.Example: summer_generate_3d({ kind: “image-to-3d”, imageUrl: “https://…”, options: { rig: true } }) // Returns jobId; poll until result includes { assetId, rigAssetId }.Single-image generation automatically assesses whether the source is suitable for 3D. If needed, Summer prepares an isolated object view or rig-safe character pose before conversion. Set referencePreparation=“always” or “never” only when you intentionally want to override that shared Studio behavior.For a complete animated humanoid package, pass rig=true plus animationNames or actionIds. This routes through the shared character pipeline instead of a one-off mesh job.By default, waits for completion (up to 10 min) and returns the result directly. Set wait=false to get the jobId immediately and poll manually with summer_check_job.Cloud tool — runs on Summer’s servers and works WITHOUT the Summer Engine app open. Requires authentication: run ‘npx -y summer-engine@latest login’ first.Use when:
  • creating a 3D asset or character from a prompt or reference image
  • “make me a low-poly tree / a sci-fi crate / a goblin for my game”
  • turning a concept image into a 3D model
Do not use when:Inputs:
Output: MCP text content holding JSON; errors set isError. From the tool’s own description: The result job (poll via summer_check_job) will include rigAssetId — the asset ID of the rigged glb.
Example call

summer_generate_audio

On the local MCP (summer-engine npm) and the hosted MCP.
Generate audio using AI providers via Summer Engine Studio.Capabilities:
  • “text_to_speech” — Convert text to spoken audio. Requires ‘text’. Optional ‘voiceId’.
  • “sound_effects” — Generate sound effects from description. Requires ‘text’. Optional ‘durationSeconds’.
  • “music” — Generate background music. Requires ‘prompt’. Optional ‘durationSeconds’.
  • “text_to_dialogue” — Multi-voice dialogue. Requires ‘inputs’ array of {text, voiceId} objects.
The ‘options’ object is spread into the ElevenLabs SDK call at the TOP level, so only keys the SDK accepts there have any effect. Voice tuning is NOT top-level and is NOT snake_case: pass it as options.voiceSettings with camelCase keys — { voiceSettings: { stability, similarityBoost, style, speed, useSpeakerBoost } }. Flat snake_case keys are accepted by the schema, silently dropped by the SDK, and return a normal 200 with the setting ignored.Returns the generated audio URL and asset metadata. Cloud tool — runs on Summer’s servers and works WITHOUT the Summer Engine app open. Requires authentication: run ‘npx -y summer-engine@latest login’ first.Use when:
  • creating sound effects, music beds, or spoken lines for the game
  • “I need a jump sound / a sword swing / a coin pickup”
  • “read this dialogue line in a gruff voice” or “background music for the menu”
Do not use when:Inputs:
Output: MCP text content holding JSON; errors set isError. From the tool’s own description: Returns the generated audio URL and asset metadata.
Example call

summer_generate_image

On the local MCP (summer-engine npm) and the hosted MCP.
Generate an image using AI models via Summer Engine Studio.Known models:
  • “nano-banana-2” (default) — High quality, supports txt2img and img2img
  • “gemini-flash” — Google Gemini 2.5 Flash, fast
  • “flux-2” — FLUX.2, good for specific styles
Model ids are an ALLOWLIST, not a passthrough. An unrecognised id is rejected with 400 and the response lists every accepted id — it is not silently swapped.Two modes:
  • txt2img (default): just pass prompt
  • img2img (edit): pass prompt + referenceImageUrl to edit/transform an existing image
Style presets: “realistic” (default), “cartoon”, “anime”, “none”For an alpha PNG, set removeBackground: true. Prompt wording alone does not guarantee transparency; background removal runs server-side after generation.The ‘options’ object is passed directly to the AI provider for full control.Returns the asset with fileUrl (hosted) and localPath (temp file on disk). Use the Read tool on localPath to show the image to the user for approval.Cloud tool — runs on Summer’s servers and works WITHOUT the Summer Engine app open. Requires authentication: run ‘npx -y summer-engine@latest login’ first.Use when:
  • creating concept art, textures, or sprites from a prompt
  • transforming an existing image given a reference URL
Inputs:
Output: MCP text content holding JSON; errors set isError. From the tool’s own description: Returns the asset with fileUrl (hosted) and localPath (temp file on disk).
Example call

summer_generate_motion

On the local MCP (summer-engine npm) and the hosted MCP.
Generate animation clips for a rigged 3D model via Summer Engine Studio.Backends (pick one):
  • “meshy-library” (default) — a curated mocap clip by motionName on a Summer-rigged humanoid (rigAssetId from summer_generate_3d with options.rig=true). Fast (~30s), cheap, real mocap quality. Names that always work: idle, walk, run, jump, attack; anything else must be an exact library name.
  • “text-to-motion” — custom 2-second clips (60 frames) from text prompts on ANY of your own rigged models: humanoid, animal, creature, cartoon plant, prop (GLB/FBX 3d_model, one skinned armature, 5-70 bones). Use it for actions the library lacks (nod, bow, shrug, wave with the right arm) and for non-humanoid rigs. Pass prompt or prompts (1-8), optional takes (1-4), cfgScale (1.5-8, default 3; 5 for clearer gestures), and lockJoints for rooted characters (e.g. [“Hips”,“Spine”] on a plant; never on characters that walk). Human-style bone names (Hips, Spine, LeftArm…) animate far better, even on non-humans. Jobs take ~1-2 min; result.assets lists one animation asset per prompt x take.
Each clip (meshy: each motion; text-to-motion: each prompt x take) is billed. State the clip list and estimated cost and confirm with the user before spending.By default, waits for completion (up to 10 min) and returns the result directly. Set wait=false to get the jobId immediately and poll with summer_check_job. Import finished clips with summer_import_asset_by_id.Errors: backend_unavailable means text-to-motion is not enabled on this server yet — use meshy-library for humanoids and do not retry. Job failures starting “text_motion:” (no skinned armature, too many/few joints, unknown joint) are input problems and are refunded; fix the rig or request instead of retrying.Cloud tool — runs on Summer’s servers and works WITHOUT the Summer Engine app open. Requires authentication: run ‘npx -y summer-engine@latest login’ first.Use when:
  • adding idle, walk, run, or combat clips to a rigged character
  • “make my character walk / run / swing a sword”
  • “I need an idle animation for the rigged NPC”
  • a custom action the curated library lacks — nod, bow, shrug, wave with the right arm
  • animating a non-humanoid rig — a talking flower, animal, creature, turret or prop
Do not use when:
  • the target model is not rigged — rig it first
  • the motion is mechanical (doors, vehicles, cameras) — animate with a script or AnimationPlayer
Inputs:
Output: MCP text content holding JSON; errors set isError.
Example call

summer_generate_video

On the local MCP (summer-engine npm) and the hosted MCP.
Generate a video using AI models via Summer Engine Studio.Known models (text-to-video):
  • “ltx” (default) — LTX Video, fast
  • “kling” — Kling 2 Master, high quality
  • “kling-turbo” — Kling 2.5 Turbo Pro
  • “minimax” — MiniMax
  • “veo3” — Google Veo 3, premium
Known models (image-to-video, when imageUrl provided):
  • “ltx” (default), “kling”, “minimax”
If imageUrl is provided, switches to image-to-video mode. Pass provider-specific params in ‘options’ (negative_prompt, num_frames, etc.).Returns the generated video URL and asset metadata. Cloud tool — runs on Summer’s servers and works WITHOUT the Summer Engine app open. Requires authentication: run ‘npx -y summer-engine@latest login’ first.Use when:
  • creating cutscene, trailer, or reference footage from a prompt
  • “make a short intro cinematic from this concept art”
  • “a 5-second clip of the castle at sunset for the trailer”
Do not use when:Inputs:
Output: MCP text content holding JSON; errors set isError. From the tool’s own description: Returns the generated video URL and asset metadata.
Example call

summer_get_asset

On the local MCP (summer-engine npm) and the hosted MCP.
Fetch one asset by exact Summer asset ID.Use this after a generation job returns assetId/rigAssetId/animationAssetId, or after summer_list_my_assets/search results when you need the stable file URL, download URL, viewer URL, metadata, license, visibility, parent chain, or provider details.Cloud tool — works WITHOUT the Summer Engine app open.Use when:
  • a generation job returned an asset id and you need its file URL or metadata
  • confirming license or visibility before reuse
Inputs:
Output: MCP text content holding JSON; errors set isError.
Example call

summer_get_asset_download_url

On the local MCP (summer-engine npm) and the hosted MCP.
Get a downloadable URL for a specific asset file.Today this usually returns the Cloudinary URL plus Summer’s download proxy. The response shape is future-proofed for signed URLs, so prefer this tool over handing users raw fileUrl when they explicitly ask to download.Cloud tool — works WITHOUT the Summer Engine app open.Use when:
  • the user explicitly asks to download an asset file
  • “give me a link to the model file / the thumbnail”
  • handing a file to something outside the engine (a viewer, a Blender import)
Do not use when:
  • importing into the project (import by asset id instead)
Inputs:
Output: MCP text content holding JSON; errors set isError. From the tool’s own description: The response shape is future-proofed for signed URLs, so prefer this tool over handing users raw fileUrl when they explicitly ask to download.
Example call

summer_get_studio_workflow

On the local MCP (summer-engine npm) and the hosted MCP.
Discover the same Guided workflow recipes shown in Summer Engine Studio.Call without workflowId to list every workflow and its support level. Call with an id to get the exact starter prompt, ordered steps, required MCP tools, and honest limitations. A “manual” support level means Studio still has a visual handoff that MCP cannot perform automatically; do not pretend that stage ran.Use when:
  • planning a multi-step asset workflow like sprite sheets or character packs
  • “what is the recommended sequence for a full character with animations?”
  • “which tools do I need for a tileset pack?”
Do not use when:
  • you already know the exact tool to call — call it
Inputs:
Output: MCP text content holding JSON; errors set isError.
Example call

summer_import_asset

On the local MCP (summer-engine npm). Search the asset library and import the best match into the project in one step. Use when the user wants a specific type of asset added: “Add a tree to the scene”, “Import a wooden barrel”. Searches, picks the top result, downloads and imports it, then optionally adds it to the scene. Requires authentication. If the user gets an auth error, they need to run ‘npx -y summer-engine@latest login’ in their terminal first. Summer Engine must be running. Use when:
  • the user asks to add a kind of asset, like ‘add a tree to the scene’
  • “put a rock / a barrel / a torch in the scene from the library”
  • “find me a free chest model and drop it in”
Do not use when:
  • you already know the exact asset id (import by id instead)
  • the asset is at a URL, not in the Summer library — summer_import_from_url
Inputs:
Output: MCP text content holding JSON; errors set isError.
Example call

summer_import_asset_by_id

On the local MCP (summer-engine npm). Import an exact Summer asset ID into the current project. Use this when the asset was just generated, selected from my assets, or returned by search. Unlike summer_import_asset, this does not search or guess: it fetches the asset by ID, downloads it through Summer Engine, and runs Godot’s import pipeline. For 3D models, pass parent and scenePath to instantiate it in that exact scene; it does not need to be the active editor tab. Requires the Summer Engine app to be open with the project loaded (generation itself does not — only this import step does). Use when:
  • importing a just-generated or searched asset without guessing
  • placing a 3D model into an exact scene by parent path
Inputs:
Output: MCP text content holding JSON; errors set isError.
Example call

summer_import_from_url

On the local MCP (summer-engine npm). Download a file from a URL and import it into the project. Triggers Godot’s full import pipeline — generates .import files, extracts textures from .glb models, creates materials. Use this for:
  • 3D models (.glb, .gltf, .obj)
  • Textures (.png, .jpg, .webp)
  • Audio (.ogg, .wav, .mp3)
The path is auto-inferred from the URL filename if not specified. After import, the asset is immediately usable in scenes. Use when:
  • importing a model, texture, or audio file from an external URL
  • “grab this .glb from the link and add it to my project”
  • “download this texture from the web into res://”
Do not use when: Inputs:
Output: MCP text content holding JSON; errors set isError.
Example call

summer_import_from_url_batch

On the local MCP (summer-engine npm). Download multiple files from URLs in one operation. Performs a single filesystem scan after all downloads, which is faster than importing one at a time. Use when:
  • importing several related files, like a model plus its textures
  • “download the model plus its three textures together”
  • “pull all these sound files into the project”
Do not use when: Inputs:
Output: MCP text content holding JSON; errors set isError.
Example call

summer_import_hdri

On the local MCP (summer-engine npm). Search Poly Haven’s CC0 HDRI library and import one as environment lighting. The single cheapest visual-quality upgrade for a 3D scene: a real HDRI sky lights and reflects the whole world. Searches ~1,000 CC0 HDRIs on Poly Haven’s public API (no account, no key), downloads the .hdr/.exr through the engine’s import pipeline into res://sky/, and returns a ready-to-run summer_run_script snippet that wires it into the WorldEnvironment (PanoramaSkyMaterial + sky ambient/reflections). Pass query (“sunset beach”, “night city”, “studio”) to search, or assetId for an exact Poly Haven id. resolution 2k is right for most games; 4k for hero skies. All results are CC0 — no attribution required. Requires the Summer Engine app to be open with the project loaded (the download runs through the engine). No Summer login needed. Use when:
  • a 3D scene needs real environment lighting and reflections — the cheapest whole-scene visual upgrade
  • “give this scene realistic sky lighting” / “add a sunset sky”
  • “the 3D scene looks flat and grey”
Do not use when:
  • the project already has a sky/HDRI to reuse
  • a 2D project — HDRIs are 3D environment lighting
Inputs:
Output: MCP text content holding JSON; errors set isError.
Example call

summer_list_my_assets

On the local MCP (summer-engine npm) and the hosted MCP.
List or search the signed-in user’s generated and uploaded assets.Use this after generation jobs complete, when the user says “the model I made”, “my last character”, or when you need to retrieve an asset before importing it into the local project.Returns exact asset IDs plus file/import URLs. Use summer_get_asset for full metadata or summer_import_asset_by_id to import a specific result.Cloud tool — works WITHOUT the Summer Engine app open.Use when:
  • retrieving an asset the user just generated before importing it
  • resolving phrases like ‘the model I made’ to an exact asset id
Inputs:
Output: MCP text content holding JSON; errors set isError. From the tool’s own description: Returns exact asset IDs plus file/import URLs.
Example call

summer_remove_background

On the hosted MCP. Remove the background from up to eight of the user’s image assets (asset ids from summer_generate_image, summer_list_my_assets or the Summer library upload). Returns new alpha PNG assets; the originals are kept. Runs on Summer servers; the asset lands in the user’s Summer library, where the local engine can import it with summer_import_asset_by_id. Inputs:
Output: MCP text content holding JSON; errors set isError. From the tool’s own description: Returns new alpha PNG assets; the originals are kept.
Example call

summer_search_assets

On the local MCP (summer-engine npm) and the hosted MCP.
Search for game assets in the Summer Engine ecosystem. **Free for all users** with rate limits.Sources:
  • “library” (default) — Public asset library (25k+ community assets). Free.
  • “my_assets” — Your own generated/uploaded assets. Free. Query is optional.
  • “all” — Search both library and your assets.
Uses hybrid search: keywords + semantic similarity. Finds assets by name AND by meaning. Returns asset names, types, each asset’s art style, preview URLs, and import-ready file URLs. Keep a game in ONE art direction: pass style (the game’s chosen family) so clashing styles are left out, and set preview to see the first results as one numbered picture before importing. Curated, open-source and Summer packs come first; people’s own public generations only with includeCommunity.Cloud tool — works WITHOUT the Summer Engine app open. Requires authentication (so we can attribute usage and apply per-user rate limits): run ‘npx -y summer-engine@latest login’ first.Use when:
  • finding an existing asset in the public library before generating a new one
  • locating a user’s generated or uploaded asset by description
Do not use when:
  • you already have the exact asset id (fetch it directly instead)
Inputs:
Output: MCP text content holding JSON; errors set isError. From the tool’s own description: Returns asset names, types, each asset’s art style, preview URLs, and import-ready file URLs.
Example call

summer_slice_asset_sheet

On the local MCP (summer-engine npm) and the hosted MCP.
Detect and crop every distinct game asset from an existing image asset sheet.Use the assetId returned by summer_generate_image (or another Summer image asset). The same guided workflow used in Studio removes the sheet background when needed, detects named/category-aware bounding boxes, crops each item, and uploads the slices.Returns source dimensions plus the generated slice URLs, names, categories, bounding boxes, and widget metadata when the sheet contains UI controls.Cloud tool — runs on Summer’s servers and works WITHOUT the Summer Engine app open. Requires authentication: run ‘npx -y summer-engine@latest login’ first.Use when:
  • splitting a generated asset or UI sheet into individually usable assets
  • “cut the generated icon sheet into separate PNGs”
  • “I have one image with 12 props on it, make them individual assets”
Do not use when:
  • a regular animation grid — set hframes/vframes on the Sprite2D instead
Inputs:
Output: MCP text content holding JSON; errors set isError. From the tool’s own description: Returns source dimensions plus the generated slice URLs, names, categories, bounding boxes, and widget metadata when the sheet contains UI controls.
Example call

summer_tool_bankai_motion

On the hosted MCP. Any clip’s moves, performed by your character. Upload a character image and a motion clip. Your character performs the exact moves from the clip, with the look taken from your image. Use it for dance clips, fight choreography, game character showcases or animation reference. Requires consent: true (the user owns the media or has consent from every real person in it). Runs on Summer servers; the asset lands in the user’s Summer library, where the local engine can import it with summer_import_asset_by_id. Inputs:
Output: MCP text content holding JSON; errors set isError.
Example call

summer_tool_bankai_swap

On the hosted MCP. Swap the person, product, outfit or background. Keep the shot. Upload a clip, say what to replace and add a reference image. Bankai Swap puts your character, product, outfit or setting into the shot while keeping the motion, camera and timing. Clips over 10 seconds are split into equal parts, swapped part by part and joined back together. Requires consent: true (the user owns the media or has consent from every real person in it). Runs on Summer servers; the asset lands in the user’s Summer library, where the local engine can import it with summer_import_asset_by_id. Inputs:
Output: MCP text content holding JSON; errors set isError.
Example call

summer_tool_bankai_ultra

On the hosted MCP. Rebuild any shot around your references on Seedance 2.5. Upload a clip and up to two reference images and describe the change: swap the character, restyle the world or replace the product. Seedance 2.5 editing keeps the timing and camera of your clip at 720p. Clips from 4 to 15 seconds. Requires consent: true (the user owns the media or has consent from every real person in it). Runs on Summer servers; the asset lands in the user’s Summer library, where the local engine can import it with summer_import_asset_by_id. Inputs:
Output: MCP text content holding JSON; errors set isError.
Example call

summer_tool_camera_moves

On the hosted MCP. Photo to a cinematic dolly, jib or focus pull. Pick a camera move and turn any still into a 1080p shot: dolly in or out, track left or right, jib up or down, or a focus shift. Great for key art, screenshots and product shots. Runs on Summer servers; the asset lands in the user’s Summer library, where the local engine can import it with summer_import_asset_by_id. Inputs:
Output: MCP text content holding JSON; errors set isError.
Example call

summer_tool_capsule_kit

On the hosted MCP. Store-ready capsule art from one screenshot. Upload a screenshot or key art and your title. Get 16:9 capsule key art with a clean title logo, plus header, small, main and library hero crops sized for your Steam page, and a YouTube thumbnail crop. Runs on Summer servers; the asset lands in the user’s Summer library, where the local engine can import it with summer_import_asset_by_id. Inputs:
Output: MCP text content holding JSON; errors set isError.
Example call

summer_tool_character_turnaround

On the hosted MCP. Front, side and back model sheet from one image. Upload one image of your character. Get a clean turnaround sheet with front, three-quarter, side and back views on a plain background, ready for modeling, rigging or a consistent sprite set. Runs on Summer servers; the asset lands in the user’s Summer library, where the local engine can import it with summer_import_asset_by_id. Inputs:
Output: MCP text content holding JSON; errors set isError.
Example call

summer_tool_cinematic_shot

On the hosted MCP. One image in, a cinematic shot with sound out, on Seedance 2.5. Upload a still, key art or screenshot and describe the action. Seedance 2.5, ByteDance’s newest video model, animates it into a 720p shot with native sound effects and ambience. Runs on Summer servers; the asset lands in the user’s Summer library, where the local engine can import it with summer_import_asset_by_id. Inputs:
Output: MCP text content holding JSON; errors set isError.
Example call

summer_tool_game_ad_maker

On the hosted MCP. A 10 second vertical game ad from one screenshot. Upload a screenshot, name your game and write the hook. Summer builds an ad keyframe true to your game’s style, then Seedance 2.5 turns it into a 10 second 720p ad with sound, ready for TikTok, Reels and Shorts. Runs on Summer servers; the asset lands in the user’s Summer library, where the local engine can import it with summer_import_asset_by_id. Inputs:
Output: MCP text content holding JSON; errors set isError.
Example call

summer_tool_game_score

On the hosted MCP. Game music from a mood, in seconds. Describe the genre and mood and get an instrumental track for your menu, level or trailer. Add a screenshot and the music takes its cue from your game’s look. Runs on Summer servers; the asset lands in the user’s Summer library, where the local engine can import it with summer_import_asset_by_id. Inputs:
Output: MCP text content holding JSON; errors set isError.
Example call

summer_tool_lipsync_anything

On the hosted MCP. New words in an existing clip, lips matched. Upload a video of someone or something talking and a new audio track. The mouth is re-animated to match the new line: dubs, fixes, jokes and localized trailers. Requires consent: true (the user owns the media or has consent from every real person in it). Runs on Summer servers; the asset lands in the user’s Summer library, where the local engine can import it with summer_import_asset_by_id. Inputs:
Output: MCP text content holding JSON; errors set isError.
Example call

summer_tool_npc_voice

On the hosted MCP. Type a line, get a voiced NPC in seconds. Write the line, pick a voice and a delivery. Get expressive voice acting for NPCs, narrators and trailers. Audio tags like [whispers] or [laughs] steer the performance. Runs on Summer servers; the asset lands in the user’s Summer library, where the local engine can import it with summer_import_asset_by_id. Inputs:
Output: MCP text content holding JSON; errors set isError.
Example call

summer_tool_pixel_forge

On the hosted MCP. Any character or image to clean, game-ready pixel art. Upload a character or object. Summer first redraws it as a pixel art sprite at the size you pick, then snaps it to a true pixel grid with a locked palette and a transparent background, so it drops straight into your game. Runs on Summer servers; the asset lands in the user’s Summer library, where the local engine can import it with summer_import_asset_by_id. Inputs:
Output: MCP text content holding JSON; errors set isError.
Example call

summer_tool_product_ad

On the hosted MCP. Product photo in, an 8 second video ad with sound out. Upload a product photo and your hook. Summer builds a studio hero shot of the product, then animates it into an 8 second 720p ad on Seedance 2.5 with native sound. Runs on Summer servers; the asset lands in the user’s Summer library, where the local engine can import it with summer_import_asset_by_id. Inputs:
Output: MCP text content holding JSON; errors set isError.
Example call

summer_tool_sfx_maker

On the hosted MCP. Any sound effect in seconds. Describe a sound: a sword unsheathing, a coin pickup, rain on a tin roof, a dragon roar. Get a clean sound effect up to 20 seconds, optionally seamless for loops. Runs on Summer servers; the asset lands in the user’s Summer library, where the local engine can import it with summer_import_asset_by_id. Inputs:
Output: MCP text content holding JSON; errors set isError.
Example call

summer_tool_sprite_sheet_forge

On the hosted MCP. One character image in, an animated sprite sheet out. Upload your character and pick an action. Summer animates that exact character, pulls evenly spaced frames, cuts each one out on a transparent background and lays them out as a sprite sheet ready to slice in Summer Engine or any engine. Optional pixel-art downscaling. Runs on Summer servers; the asset lands in the user’s Summer library, where the local engine can import it with summer_import_asset_by_id. Inputs:
Output: MCP text content holding JSON; errors set isError.
Example call

summer_tool_style_frame

On the hosted MCP. Your screenshot redrawn in another game art style, for look-dev. Upload a screenshot or a concept and pick an art style. The same scene comes back redrawn in pixel art, low poly, cel shading, painterly, PS1 era or voxel, with the layout kept, so you can compare looks before you commit. Runs on Summer servers; the asset lands in the user’s Summer library, where the local engine can import it with summer_import_asset_by_id. Inputs:
Output: MCP text content holding JSON; errors set isError.
Example call

summer_tool_style_swap

On the hosted MCP. Restyle gameplay or any clip into anime, claymation, PSX, comic or pixel art. Turn a gameplay capture, trailer shot or phone clip into anime, retro cel animation, claymation, PS1-era low poly, comic book, pixel art or a cel-shaded game. Motion, camera and timing stay exactly the same. Runs on Summer servers; the asset lands in the user’s Summer library, where the local engine can import it with summer_import_asset_by_id. Inputs:
Output: MCP text content holding JSON; errors set isError.
Example call

summer_tool_talking_character

On the hosted MCP. Make any picture talk: NPCs, mascots, avatars. Upload a character image and a voice line. The character speaks it with matching lips, face and head motion, in any art style from pixel to photoreal. Pair it with NPC Voice to write the line. Requires consent: true (the user owns the media or has consent from every real person in it). Runs on Summer servers; the asset lands in the user’s Summer library, where the local engine can import it with summer_import_asset_by_id. Inputs:
Output: MCP text content holding JSON; errors set isError.
Example call

summer_tool_texture_forge

On the hosted MCP. A photo into a seamless, tileable game texture. Upload a photo of a surface and pick the material and look. You get a flat, evenly lit texture that tiles on all four edges, ready for floors, walls and terrain. Runs on Summer servers; the asset lands in the user’s Summer library, where the local engine can import it with summer_import_asset_by_id. Inputs:
Output: MCP text content holding JSON; errors set isError.
Example call

summer_tool_thumbnail_maker

On the hosted MCP. Click-worthy YouTube thumbnails from your frame. Upload a gameplay frame or photo and your title. Get a bold 1280 x 720 thumbnail with punchy lighting and readable title text, true to your footage. Runs on Summer servers; the asset lands in the user’s Summer library, where the local engine can import it with summer_import_asset_by_id. Inputs:
Output: MCP text content holding JSON; errors set isError.
Example call

summer_tool_trailer_forge

On the hosted MCP. A game trailer with music from your screenshots. Upload two to four screenshots, name the game and set the mood. Summer turns each screenshot into a cinematic keyframe, animates every keyframe on Seedance 2.5, cuts the shots together and scores the trailer with generated music. Runs on Summer servers; the asset lands in the user’s Summer library, where the local engine can import it with summer_import_asset_by_id. Inputs:
Output: MCP text content holding JSON; errors set isError.
Example call

summer_tool_transition_morph

On the hosted MCP. Two images, one smooth morph between them. Upload a first and a last frame and get a smooth 720p transition between them: before and after, level one to level ten, sketch to final art. Optional anime, clay, comic, 3D or cyberpunk styling. Requires consent: true (the user owns the media or has consent from every real person in it). Runs on Summer servers; the asset lands in the user’s Summer library, where the local engine can import it with summer_import_asset_by_id. Inputs:
Output: MCP text content holding JSON; errors set isError.
Example call

summer_upload_image_begin

On the hosted MCP. Start uploading a PNG, JPEG or WebP image from your disk (at most 32 MB) into the user’s Summer assets, e.g. store art you generated and cropped to a slot’s size. Returns a signed upload: POST multipart/form-data to uploadUrl with every field in fields plus file=@<path> (curl -F). Then pass public_id, version, signature and format from Cloudinary’s JSON answer to summer_upload_image_complete. Free. Inputs: No inputs.
Output: MCP text content holding JSON; errors set isError. From the tool’s own description: Returns a signed upload: POST multipart/form-data to uploadUrl with every field in fields plus file=@<path> (curl -F).
Example call

summer_upload_image_complete

On the hosted MCP. Finish an image upload from summer_upload_image_begin: checks it is the upload Summer signed for this user, reads the image and saves it to the user’s assets (private). Returns the assetId for summer_store_set_art or any other tool. Inputs:
Output: MCP text content holding JSON; errors set isError. From the tool’s own description: Returns the assetId for summer_store_set_art or any other tool.
Example call