Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.summerengine.com/llms.txt

Use this file to discover all available pages before exploring further.

Overview

The Summer Engine MCP server exposes 44 tools across five categories: Scene (14), Debug and Play (9), Project (9), Asset Library (6), and Generation (6). Scene, Debug, and Project tools talk to the running engine on localhost:6550 and require Summer Engine to be open with a project loaded. If the engine is not running, those tools return a clear error and a summer run hint. Asset Library and Generation tools call the Summer Engine cloud and require you to be signed in (run npx summer-engine login once); the import side of those tools needs the engine running too. Critical: value formats. Properties like position, rotation_degrees, and mesh use engine string syntax, not raw JSON objects. See Value Formats below.

Value Formats

When setting properties via summer_set_prop or summer_set_resource_property, use these formats:
TypeFormatExample
Vector3"Vector3(x, y, z)""Vector3(0, 10, 0)"
Vector2"Vector2(x, y)""Vector2(100, 200)"
Color"Color(r, g, b, a)" RGBA 0.0 to 1.0"Color(1, 0.5, 0, 1)"
Transform3D"Transform3D(...)" basis + origin"Transform3D(1,0,0, 0,1,0, 0,0,1, 0,5,0)"
ResourceClass name, auto-instantiated"BoxMesh", "SphereMesh", "StandardMaterial3D"
NumberNative JSON1.5, 42
BooleanNative JSONtrue, false
StringNative JSON"hello"
Wrong: "position": {x: 0, y: 10, z: 0} stays a Dictionary and fails. Right: "position": "Vector3(0, 10, 0)" parses to a Vector3.
Node paths use a ./ prefix for relative paths from the scene root. For example, ./World/Player means the Player child of the World node.

Scene Tools (14)

summer_create_scene

Create a new empty scene file. To prevent accidental destructive edits you must explicitly pass allow_temporary_scene_mutation=true; the tool opens a template scene, removes its children, saves to the new path, then restores the previous scene.
ParameterTypeRequiredDescription
pathstringYesNew scene path, e.g. res://scenes/empty_level.tscn
rootNamestringNoRoot node name for the new scene (default Main)
allow_temporary_scene_mutationbooleanNoSafety gate. Must be true to proceed (default false)

summer_add_node

Add a new node to the scene tree.
ParameterTypeRequiredDescription
parentstringYesParent path, e.g. ./World or ./World/Enemies
typestringYesNode type, e.g. MeshInstance3D, CharacterBody3D
namestringYesName for the new node
Common node types: Node3D, MeshInstance3D, CharacterBody3D, RigidBody3D, StaticBody3D, Camera3D, DirectionalLight3D, OmniLight3D, SpotLight3D, WorldEnvironment, CollisionShape3D, Area3D, Node2D, Sprite2D, CharacterBody2D, Camera2D, TileMapLayer, Control, Label, Button, VBoxContainer, HBoxContainer, AudioStreamPlayer, AudioStreamPlayer3D. Example: summer_add_node(parent="./", type="DirectionalLight3D", name="Sun")

summer_set_prop

Set a property on a node. The primary way to configure nodes after adding them.
ParameterTypeRequiredDescription
pathstringYesNode path, e.g. ./World/Player
keystringYesProperty name, e.g. position, mesh, visible
valuestring | number | booleanYesValue in engine string format for complex types
Common properties: position, rotation_degrees, scale, visible, mesh, shadow_enabled, light_energy, fov. Example: summer_set_prop(path="./World/Player", key="position", value="Vector3(0, 1, 0)")

summer_set_resource_property

Set a nested property on a resource attached to a node (e.g., a CollisionShape3D shape size or a material color).
ParameterTypeRequiredDescription
nodePathstringYesNode path
resourcePropertystringYesResource property on node, e.g. shape, mesh, material_override
subPropertystringYesProperty on the resource, e.g. size, radius, albedo_color
valuestring | number | booleanYesValue in engine string format
Example: summer_set_resource_property(nodePath="./Player/CollisionShape3D", resourceProperty="shape", subProperty="size", value="Vector3(1, 2, 1)")

summer_remove_node

Remove a node from the scene tree. All children are removed too. Cannot remove the root node. Supports undo. Destructive: do not delete multiple top-level nodes unless the user explicitly asks for destructive changes.
ParameterTypeRequiredDescription
pathstringYesNode path to remove

summer_replace_node

Replace a node with a different type or scene, preserving its position in the tree and its children. Useful for swapping a StaticBody3D for a RigidBody3D, or a placeholder for a proper prefab.
ParameterTypeRequiredDescription
pathstringYesNode path to replace
typestringNoNew node type, e.g. RigidBody3D
scenestringNoScene to replace with, e.g. res://enemies/boss.tscn

summer_save_scene

Save the current scene to disk. Call after making changes to persist them. Without saving, changes only exist in the editor’s memory.
ParameterTypeRequiredDescription
pathstringNoSave-as path for a new scene file, e.g. res://levels/level2.tscn

summer_open_scene

Open a scene file in the editor. Use to switch between scenes. Prefer summer_get_project_context and summer_open_main_scene over guessing paths.
ParameterTypeRequiredDescription
pathstringYesScene path, e.g. res://main.tscn

summer_instantiate_scene

Add an existing scene or 3D model as a child node. Use for .tscn prefabs or .glb/.gltf models. The scene must already exist in the project; import external sources first with summer_import_from_url.
ParameterTypeRequiredDescription
parentstringYesParent node path
scenestringYesScene/model path, e.g. res://player.tscn or res://models/tree.glb
namestringNoOverride the instance name

summer_connect_signal

Connect a signal between two nodes. The receiver must have a script with the specified method.
ParameterTypeRequiredDescription
emitterstringYesNode that fires the signal
signalstringYesSignal name, e.g. body_entered, pressed, timeout
receiverstringYesNode with the handler script
methodstringYesMethod name in the receiver’s script
Common signals: body_entered, body_exited, pressed, timeout, area_entered, input_event.

summer_select_node

Select a node in the editor’s scene tree and show it in the inspector panel.
ParameterTypeRequiredDescription
nodePathstringYesNode path to select
scenePathstringNoOpen this scene first, then select the node

summer_inspect_node

Get all editable properties of a node with their current values, types, and resource info. Returns every property the inspector would show. Call this before modifying a node to understand its current state.
ParameterTypeRequiredDescription
pathstringYesNode path from the scene tree, e.g. Player, World/Enemies/Boss

summer_inspect_resource

Get all properties of a resource (material, mesh, shape, environment, etc). Use when you need the sub-properties of a resource attached to a node.
ParameterTypeRequiredDescription
pathstringYesResource path, e.g. res://materials/ground.tres or res://models/player.glb

summer_batch

Execute multiple operations in a single call, grouped into one undo step. The user can undo everything with a single Ctrl+Z. Use when building something that involves multiple nodes and properties at once.
ParameterTypeRequiredDescription
opsarrayYesArray of operation objects, each with op plus its parameters
Each op uses the same shape as the individual tools:
[
  { "op": "AddNode", "parent": "/", "type": "MeshInstance3D", "name": "Floor" },
  { "op": "SetProp", "path": "Floor", "key": "mesh", "value": "PlaneMesh" },
  { "op": "SetResourceProperty", "nodePath": "Floor", "resourceProperty": "mesh", "subProperty": "size", "value": "Vector2(20, 20)" }
]

Debug and Play Tools (9)

summer_get_diagnostics

Quick overview of all errors and warnings from both the editor console and the runtime debugger. Returns error counts and a guidance message. Call this first before diving into the console or debugger details.
ParametersNone
Workflow: call summer_get_diagnostics; if there are errors, read summer_get_console, summer_get_debugger_errors, or summer_get_debugger_warnings; fix; then call summer_get_diagnostics again to verify.

summer_get_console

Read recent messages from the editor’s Output panel. Output is deduped for token economy: consecutive identical messages collapse into one entry with a (xN) count, and the response carries a _filter summary of what was hidden.
ParameterTypeRequiredDescription
max_linesnumberNoMax lines to return after dedupe (default 100)
filterstringNoOnly return lines containing this string
typeenumNoFilter by message type: error, warning, std, editor
errors_onlybooleanNoDrop info/std noise, keep errors and warnings (default true)
strict_errorsbooleanNoDrop warnings too, return errors only (default false)
rawbooleanNoBypass dedupe and level filtering, return engine output verbatim (default false)

summer_clear_console

Clear the editor’s Output panel. Useful before running the game to get a clean slate for error checking.
ParametersNone

summer_get_debugger_errors

Read runtime errors from the debugger (null references, missing nodes, physics errors). These occur while the game is running and are distinct from console output. Deduped: identical errors firing every frame collapse into one entry with a (xN) count.
ParameterTypeRequiredDescription
max_errorsnumberNoMax errors to return after dedupe (default 50)
include_stackbooleanNoInclude stack traces for each error
rawbooleanNoBypass dedupe, return engine output verbatim (default false)
For warning text, use summer_get_debugger_warnings.

summer_get_debugger_warnings

Read runtime warnings from the debugger: missing optional resources, dead signal connections, deprecated API use, large allocations, physics warnings. Same structured shape as summer_get_debugger_errors, filtered to severity warning. Use this when summer_get_diagnostics shows a non-zero debugger.warnings count.
ParameterTypeRequiredDescription
max_warningsnumberNoMax warnings to return after dedupe (default 50)
include_stackbooleanNoInclude stack traces (default true)
rawbooleanNoBypass dedupe (default false)

summer_get_script_errors

Check a GDScript file for parse/compile errors without running the game. Returns line numbers, error messages, and severity. Much faster than running the game to discover script errors. Use after writing or editing a .gd file.
ParameterTypeRequiredDescription
pathstringYesScript path, e.g. res://scripts/player.gd

summer_play

Start running the game in the engine. The game runs inside Summer Engine’s viewport. After starting, use summer_get_diagnostics to check for runtime errors. You can run a specific scene instead of the main scene.
ParameterTypeRequiredDescription
scenestringNoScene to run instead of the main scene, e.g. res://levels/test_level.tscn

summer_stop

Stop the running game. Call before making scene changes; some operations require the game to be stopped.
ParametersNone

summer_is_running

Check if the game is currently running. Returns the active scene path if running.
ParametersNone

Project Tools (9)

summer_start_game_task

The router to call at the start of any substantial AI game-building task. Takes the user’s goal and returns the recommended Summer workflow: skill routes, MCP tool groups, host-file boundaries, asset policy, user confirmation gates, and verification steps.
ParameterTypeRequiredDescription
goalstringYesThe user’s game-building goal or task
modeenumNoTask mode override (default auto)
targetenumNoContent/system target override (default auto)
assetPolicyenumNoHow aggressively to use paid generation (default ask-before-paid-generation)
verificationenumNoHow much engine verification to plan for (default full)

summer_get_agent_playbook

The AI-first operating guide for Summer Engine MCP. Call at the start of a fresh chat before touching scenes. Returns the safe workflow, anti-patterns, and recovery steps.
ParametersNone

summer_get_project_context

Get essential project context before editing: engine health, project name and path, current scene path, main scene path from project settings, and a lightweight .summer project memory summary. Use this first in every fresh chat to avoid guessing scene filenames or editing the wrong scene.
ParametersNone

summer_open_main_scene

Open the project’s configured main scene from project settings. Safer than guessing scene names like main.tscn or Main.tscn. Call this when you get “no scene open”.
ParametersNone

summer_get_scene_tree

Get the full scene tree of the currently open scene. Use before structural edits (add/remove/replace). If you get “no edited scene”, call summer_open_main_scene first.
ParametersNone

summer_project_setting

Set a project setting in project.godot.
ParameterTypeRequiredDescription
keystringYesSetting key path, e.g. application/config/name
valuestring | number | booleanYesSetting value
Common settings: application/config/name, application/run/main_scene, rendering/renderer/rendering_method, display/window/size/viewport_width, physics/3d/default_gravity.

summer_input_map_bind

Set up input controls. Creates the action if it does not exist, then binds events to it.
ParameterTypeRequiredDescription
namestringYesAction name, e.g. jump, move_forward, interact
eventsarrayYesArray of input event objects
Event format: { type: "key", key: "W" } or { type: "mouse_button", button: 1 } (1=left, 2=right, 3=middle).

summer_import_from_url

Download a file from a URL and import it into the project. Triggers the engine’s full import pipeline: generates .import files, extracts textures from .glb models, creates materials. Use for 3D models (.glb, .gltf, .obj), textures (.png, .jpg, .webp), and audio (.ogg, .wav, .mp3).
ParameterTypeRequiredDescription
urlstringYesHTTP(S) URL to download from
pathstringNoTarget path, e.g. res://assets/player.glb. Auto-inferred from the URL if omitted.

summer_import_from_url_batch

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.
ParameterTypeRequiredDescription
importsarrayYesArray of {url, path} objects

Asset Library Tools (6)

The public asset library is free for all signed-in users, with per-user rate limits. These tools need you signed in (npx summer-engine login); the import tools also need the engine running.

summer_search_assets

Search the Summer Engine asset library and your own assets. Hybrid search combines keywords and semantic similarity, so it finds assets by name and by meaning. Returns names, types, preview URLs, and import-ready file URLs.
ParameterTypeRequiredDescription
querystringYesNatural language search, e.g. low-poly tree, sci-fi weapon. For my_assets, can be empty to list recent.
assetTypeenumNo2d_image, animation, 3d_model, audio, music, or all (default all)
limitnumberNoMax results, 1 to 20 (default 10)
sourceenumNolibrary (public 25k+), my_assets, or all (default library)

summer_import_asset

Search the asset library and import the best match into the project in one step. Use when the user wants a specific 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.
ParameterTypeRequiredDescription
querystringYesWhat to find, e.g. low-poly tree, wooden crate
parentstringNoParent node path to add the asset under, e.g. ./World. Omit to import only.
assetTypeenumNoPreferred asset type (default 3d_model)
sourceenumNolibrary, my_assets, or all (default all)

summer_import_asset_by_id

Import an exact Summer asset ID into the current project. Unlike summer_import_asset, this does not search or guess: it fetches the asset by ID, downloads it, and runs the import pipeline. Use it right after generation, after picking from summer_list_my_assets, or after a search.
ParameterTypeRequiredDescription
assetIdstringYesSummer asset ID
pathstringNoTarget res:// path. Inferred from asset type and filename if omitted.
parentstringNoParent node path. For 3D models, imports and instantiates under this node.
namestringNoScene node name when parent is provided

summer_list_my_assets

List or search the signed-in user’s generated and uploaded assets. Use after generation jobs complete, or when the user refers to “the model I made” or “my last character”. Returns exact asset IDs plus file and import URLs.
ParameterTypeRequiredDescription
querystringNoSearch term. Empty string lists recent assets (default empty)
assetTypeenumNo2d_image, animation, 3d_model, audio, music, or all (default all)
limitnumberNoMax results, 1 to 20 (default 10)

summer_get_asset

Fetch one asset by exact Summer asset ID. Use after a generation job returns assetId/rigAssetId/animationAssetId, or after search results, when you need the stable file URL, download URL, viewer URL, metadata, license, visibility, or provider details.
ParameterTypeRequiredDescription
assetIdstringYesSummer asset ID

summer_get_asset_download_url

Get a downloadable URL for a specific asset file. Prefer this over handing users a raw fileUrl when they explicitly ask to download; the response shape is future-proofed for signed URLs.
ParameterTypeRequiredDescription
assetIdstringYesSummer asset ID
roleenumNoprimary or thumbnail (default primary)

Generation Tools (6)

Generation runs in Summer Engine Studio and consumes credits. These tools need you signed in (npx summer-engine login). Confirm with the user before spending on paid generation, then import results into the project with summer_import_asset_by_id or summer_import_from_url.

summer_generate_image

Generate an image with AI models. Supports text-to-image (just pass prompt) and image-to-image editing (pass prompt plus referenceImageUrl). Returns the asset with a hosted fileUrl and a temp localPath on disk you can read to show the user for approval.
ParameterTypeRequiredDescription
promptstringYesDescription of the image to generate
modelstringNoModel name or full provider ID (default nano-banana-2)
stylestringNoStyle preset: realistic (default), cartoon, anime, or none
referenceImageUrlstringNoSource image URL for image-to-image / edit mode
optionsobjectNoProvider-specific params (guidance_scale, seed, image_size, negative_prompt, etc.)
Known models: nano-banana-2 (default), gemini-flash, flux-2, or any fal-ai model ID as a passthrough.

summer_generate_3d

Generate a 3D model. Returns a jobId; by default the tool waits for completion (up to 5 minutes) and returns the result directly. Set wait=false to poll manually with summer_check_job.
ParameterTypeRequiredDescription
promptstringNoDescription of the model, e.g. a low-poly treasure chest (required for text-to-3d)
kindstringNotext-to-3d (default), image-to-3d, or texture
modelstringNohunyuan (default), trellis, meshy, or any fal-ai model ID
imageUrlstringNoSource image URL for image-to-3d or texture
waitbooleanNoWait for completion (default true). Set false to get the jobId immediately.
optionsobjectNoProvider-specific params (target_polycount, topology, art_style, etc.)
Optional rig pass (image-to-3d only): set options.rig = true to add an auto-rig pass. The job result includes a rigAssetId you can feed to summer_generate_motion to add animation clips.

summer_generate_audio

Generate audio. The capability selects the mode; options is passed through to the provider for fine control (stability, similarity_boost, style, speed, etc.).
ParameterTypeRequiredDescription
capabilitystringYestext_to_speech, sound_effects, music, or text_to_dialogue
textstringNoText for TTS, or description for sound effects
promptstringNoMusic description (for music)
voiceIdstringNoVoice ID for TTS
modelIdstringNoProvider model ID, e.g. eleven_multilingual_v2
durationSecondsnumberNoDuration for SFX or music
inputsarrayNoDialogue lines {text, voiceId} for text_to_dialogue
optionsobjectNoProvider-specific params

summer_generate_video

Generate a video. Text-to-video by default; if imageUrl is provided, switches to image-to-video mode.
ParameterTypeRequiredDescription
promptstringYesDescription of the video content
modelstringNoltx (default), kling, kling-turbo, minimax, veo3, or any new model
imageUrlstringNoSource image URL; if provided, uses image-to-video mode
durationnumberNoDuration in seconds, 5 or 10 (default 5)
aspectRatiostringNo16:9 (default), 9:16, 1:1, 4:3
optionsobjectNoProvider-specific params (negative_prompt, num_frames, etc.)

summer_generate_motion

Generate an animation clip for a rigged humanoid character. Requires a rigged target whose rigAssetId came from a prior summer_generate_3d call with options.rig=true. Picks a clip from a curated mocap set by name. Waits for completion by default; set wait=false to poll with summer_check_job.
ParameterTypeRequiredDescription
rigAssetIdstringYesAsset ID of a rigged character
motionNamestringYesCurated motion name: walk, run, attack_sword, idle, jump, etc.
backendenumNomeshy-library (the only option today)
waitbooleanNoWait for completion (default true)
optionsobjectNoBackend-specific passthrough
Common motion names: idle, idle_alert, idle_combat, walk, walk_back, run, sprint, crouch_idle, crouch_walk, jump, jump_loop, jump_land, attack_sword, attack_punch, attack_kick, attack_bow, attack_cast, block, dodge_left, dodge_right, hit_react, death, wave, dance, sit_idle.

summer_check_job

Check the status of an async generation job. Use when you called a generation tool with wait=false, or to re-check a job that timed out. Status values: waiting, active, completed, failed, delayed, unknown.
ParameterTypeRequiredDescription
jobIdstringYesThe job ID returned by an async generation tool

Next Steps

Building a Game

Step-by-step: how an AI builds a full game with these tools

MCP Setup

Connect Cursor, Claude Code, Windsurf, and more

Need help or have questions? Reach out to our founders at founders@summerengine.com or join our community on Discord for fast responses.