Overview
The Summer Engine MCP server exposes tools for Scene, Debug and Play, Visual Verification, Project, Project Files, Asset Library, Generation, and Summer Cloud workflows. Scene, Debug, and Project tools talk to the running engine onlocalhost: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, Generation, and Summer Cloud tools call the Summer Engine cloud and require you to be signed in (run npx summer-engine login once); the import side of asset tools needs the engine running too. Summer Cloud tools work on the project directory directly and do not need a running engine.
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 viasummer_set_prop or summer_set_resource_property, use these formats:
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 targeting and persistence
Every scene mutation names its exact target withscenePath, such as res://main.tscn. The target does not need to be the active editor tab.
summer_open_scene only changes what is visible in the editor. It does not select the target for a later mutation. Dedicated mutation tools append one final save automatically and return the engine’s operation receipts. Use summer_save_scene directly only for a standalone save or save-as.
Different agents can work concurrently because each operation names its project and scene. If the target cannot load—for example, because a referenced script is missing or invalid—the tool returns that reason. Repair the named dependency or reread changed state, then retry the same explicit target.
Scene Tools
summer_create_scene
Create a new empty scene file. To prevent accidental destructive edits you must explicitly passallow_temporary_scene_mutation=true; the tool opens a template scene, removes its children, saves to the new path, then restores the previous scene.
summer_add_node
Add a new node to the scene tree.
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(scenePath="res://main.tscn", parent="./", type="DirectionalLight3D", name="Sun")
summer_set_prop
Set a property on a node. The primary way to configure nodes after adding them.
Common properties:
position, rotation_degrees, scale, visible, mesh, shadow_enabled, light_energy, fov.
Example: summer_set_prop(scenePath="res://main.tscn", 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).
Example:
summer_set_resource_property(scenePath="res://main.tscn", 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.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.summer_save_scene
Save an explicit scene to disk. Dedicated mutation tools already append one final save; use this tool for a standalone save or save-as.summer_open_scene
Open a scene file as the visible editor tab. This is navigation only; scene mutation tools use their ownscenePath. Prefer summer_get_project_context and summer_open_main_scene over guessing paths.
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.
summer_connect_signal
Connect a signal between two nodes. The receiver must have a script with the specified method.
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.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.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.summer_batch
Execute multiple operations in a single call, grouped into one undo step. UsescenePath whenever the batch contains scene mutations. Do not mix OpenScene with scene mutations: opening is a separate UI action. The tool appends one final SaveScene; if you supply it yourself, it must appear exactly once and be last.
Each op uses the same shape as the individual tools:
Debug and Play Tools
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.
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.
summer_clear_console
Clear the editor’s Output panel. Useful before running the game to get a clean slate for error checking.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.
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 assummer_get_debugger_errors, filtered to severity warning. Use this when summer_get_diagnostics shows a non-zero debugger.warnings count.
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.
summer_play
Start running the game in the engine. The game runs inside Summer Engine’s viewport. After starting, usesummer_get_diagnostics to check for runtime errors. You can run a specific scene instead of the main scene.
summer_stop
Stop the running game. Call before making scene changes; some operations require the game to be stopped.summer_is_running
Check if the game is currently running. Returns the active scene path if running.summer_create_debug_report
Create a support-ready Markdown report containing engine health, diagnostics, filtered console output, debugger errors and warnings, and an agent handoff prompt. Authentication tokens and project file contents are omitted, but users should review local paths and stack traces before sharing it.Visual Verification Tools
summer_screenshot
Capture an engine frame and return the image directly to the MCP client.viewport captures the visible editor view. scene renders an exact scene file offscreen without changing the visible tab. game captures the currently running game and requires the desktop bridge.
Project Tools
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.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.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.
summer_open_main_scene
Open the project’s configured main scene from project settings. Safer than guessing scene names likemain.tscn or Main.tscn. Call this when you get “no scene open”.
summer_get_scene_tree
Get a scene tree. PassscenePath to inspect that exact loaded scene; omit it only when you intentionally want the visible editor tab.
summer_project_setting
Set a project setting inproject.godot.
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.
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).
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.Project File Tools
These tools operate inside the engine-bound project and return exact file receipts. They do not use a broad project writer lock. If another agent or the editor changed a file after it was read, the stale overwrite is refused; reread the file and decide whether the edit still applies.summer_read_file
Read a UTF-8 project file and return its complete contents plus a full-file SHA-256 receipt.summer_write_file
Create or safely overwrite a complete text file. Exactly one write guard is required.summer_replace_text
Replace exact text in an existing project file. The tool reads the current file, requires a unique match by default, and submits a SHA-256-guarded write.Asset Library Tools
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.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.summer_import_asset_by_id
Import an exact Summer asset ID into the current project. Unlikesummer_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.
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.summer_get_asset
Fetch one asset by exact Summer asset ID. Use after a generation job returnsassetId/rigAssetId/animationAssetId, or after search results, when you need the stable file URL, download URL, viewer URL, metadata, license, visibility, or provider details.
summer_get_asset_download_url
Get a downloadable URL for a specific asset file. Prefer this over handing users a rawfileUrl when they explicitly ask to download; the response shape is future-proofed for signed URLs.
Generation Tools
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 passprompt) 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.
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 ajobId; 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.
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. Thecapability selects the mode; options is passed through to the provider for fine control (stability, similarity_boost, style, speed, etc.).
summer_generate_video
Generate a video. Text-to-video by default; ifimageUrl is provided, switches to image-to-video mode.
summer_generate_motion
Generate an animation clip for a rigged humanoid character. Requires a rigged target whoserigAssetId 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.
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 withwait=false, or to re-check a job that timed out. Status values: waiting, active, completed, failed, delayed, unknown.
Summer Cloud Tools
Content-addressed project sync: the whole project tree, including big binary assets, syncs across machines without Git. These tools mirror thesummer cloud CLI commands 1:1 and operate on the project directory on disk plus the Summer Cloud API; they do not require a running engine. All of them accept an optional project parameter (project root path, defaults to the current working directory) and return a JSON result with a message, notices, and details. See the Summer Cloud guide for the sync model and the Cloud CLI Reference for command-line equivalents.
summer_cloud_init
Enable Summer Cloud for a project. Creates the cloud project at version 0 and writessummer-cloud.json (the project’s cloud binding, the only cloud file that belongs in Git) at the project root. Safe to call on an already-bound project.
summer_cloud_status
Show sync status: what a sync would push, pull, or delete, plus any conflicts. Read-only.summer_cloud_push
Push local project changes to Summer Cloud. Hashes the tracked tree, uploads only missing blobs, and commits a new manifest version. Pulls remote changes first if needed so the pushed version reflects a converged tree.summer_cloud_pull
Pull Summer Cloud changes into the local project. Stages downloads, verifies every blob’s sha256, writes a local checkpoint before touching existing files, then applies changes atomically.summer_cloud_restore
Restore a retained cloud version (creates a new head version with that version’s contents, then pulls; history is never rewritten), or roll the local tree back to a pre-sync checkpoint viacheckpointStamp.
summer_cloud_checkpoints
List local pre-sync checkpoints. Before any sync modifies or deletes existing files, a full-tree checkpoint is written; the last 20 are kept. Returns the stamps thatsummer_cloud_restore accepts.
summer_cloud_conflicts
List local conflict sets, or restore a preserved conflict file withrestorePath. When concurrent edits collide, the cloud version wins the path and the losing local bytes are preserved; this tool recovers them as a fresh local edit. Push afterwards to make the restored file canonical.
Next Steps
Building a Game
Step-by-step: how an AI builds a full game with these tools
MCP Setup
Connect Cursor, Claude Code, Devin Desktop, 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.

