All reports

summer-engine

io.github.SummerEngine/summer · version 4.9.1 · 3,247 weekly npm downloads · audited 2026-11-03

MCPVetter badge Notes

Findings

No hidden-instruction or invisible-character findings in any tool, prompt, or resource description.

Claude Connectors Directory readiness

Checks the directory's published tool requirements that are visible from tools/list. Passing them does not guarantee acceptance.

What this server's tools can do

Not a vulnerability by itself. It tells you what an injected prompt could ask this server to do, so you can decide which tools need approval.

Supply chain

Tools (94)

NameTitleHintDescription
summer_create_sceneCreate a scene filewritesCreate a new, minimal .tscn file with the root type you name. It fails when the file exists and never touches the open scene. Build it out with summer_run_script and that scenePath. Guide: summer_docs_read {"id":"tool/cr…
summer_add_nodeAdd a nodewritesAdd one node of any type to the scene at scenePath (it need not be the open tab) and save it. For 3 or more edits, write one summer_run_script instead. Next: summer_set_prop. Guide: summer_docs_read {"id":"tool/add-node"…
summer_set_propSet a node propertywritesSet one property of a node in the scene at scenePath and save it. Values use Godot syntax: "Vector3(0, 1, 0)", "Color(1, 0, 0, 1)", or a resource class such as "BoxMesh". For 3 or more edits, write one summer_run_script.…
summer_set_resource_propertySet a property of a node's resourcewritesSet a property inside a resource a node holds, such as a collision shape's size or a material's albedo_color, and save the scene. The resource must exist first: assign it with summer_set_prop. Guide: summer_docs_read {"i…
summer_remove_nodeRemove a nodewritesRemove a node and all its children from the scene at scenePath and save it. The root cannot be removed. One undo step. Remove top-level nodes only when the person asked for it. Guide: summer_docs_read {"id":"tool/remove-…
summer_save_sceneSave a scenewritesSave the scene at scenePath, or save it under a new path. Scene edits already save once; use this for a standalone save or a save-as. Guide: summer_docs_read {"id":"tool/save-scene"}
summer_open_sceneOpen a scene in the editorwritesOpen a scene file in the editor and show its tab. A visible tab change for the person, not a target for edits: edits take scenePath. Take paths from summer_get_project_context; never guess them. Guide: summer_docs_read {…
summer_instantiate_sceneAdd a scene or model as a nodewritesAdd an existing .tscn, .glb or .gltf as a child node in the scene at scenePath, placed in the same call (position, rotation_degrees, scale or transform). Pass target_size for imported models. Next: summer_screenshot. Gui…
summer_connect_signalConnect a signalwritesConnect a signal of one node to a method of another so the saved scene keeps it, verified from the saved .tscn. The receiver should define the method. Then test it with summer_play. Guide: summer_docs_read {"id":"tool/co…
summer_select_nodeSelect a node in the editorwritesSelect a node in the editor's scene tree and show it in the inspector, so the person sees it. The scene does not change. Guide: summer_docs_read {"id":"tool/select-node"}
summer_view_setShow the person a viewwritesSwitch what the person sees while you work: the view (3d, 2d, script, game, chat, home, studio), the right rail, the node or file in focus and the nodes to frame. Only the screen changes. Which view when: the navigate-su…
summer_replace_nodeReplace a nodewritesReplace a node with another scene or node type, keeping its parent, index, name, transform and children; the saved file is read back to prove it. Next: summer_get_scene_tree. Guide: summer_docs_read {"id":"tool/replace-n…
summer_inspect_nodeRead a node's propertiesread-onlyRead one node of the open scene: every editable property with its value and type, or only the fields you name (transform, global_transform, scene_file_path, aabb). Next: summer_set_prop. Guide: summer_docs_read {"id":"to…
summer_inspect_resourceRead a resourceread-onlyRead a resource file (a mesh's bounds and surfaces, a scene's nodes, any resource's non-default properties) or a resource a node holds (nodePath and property). Next: summer_set_resource_property. Guide: summer_docs_read …
summer_batchRun engine ops in one callwritesSend a list of raw engine ops (AddNode, SetProp, RunVerification...) in one call: one undo step unless an op must travel alone, and one save at the end. Ask for receipt summary on long lists. For computed edits, summer_r…
summer_get_diagnosticsRead errors and warningsread-onlyRead the editor console, the runtime debugger and script errors together, with complete counts and errors first. The first read after a change and after play. Next: summer_get_debugger_errors or summer_get_console for th…
summer_get_consoleRead the editor consoleread-onlyRead recent editor Output messages, collapsed and filtered (errors and warnings by default; errors_only false for print output). A played game's runtime errors are not here: read summer_get_diagnostics first. Guide: summ…
summer_clear_consoleClear the editor consolewritesClear the editor's Output panel, for a clean slate before the game runs. Guide: summer_docs_read {"id":"tool/clear-console"}
summer_get_debugger_errorsRead runtime errorsread-onlyRead the played game's runtime errors from the debugger (null references, missing nodes, physics errors), collapsed, with call stacks on request. After a fix, read summer_get_diagnostics again. Guide: summer_docs_read {"…
summer_get_debugger_warningsRead runtime warningsread-onlyRead the played game's runtime warnings from the debugger, with file, line and call stack. Guide: summer_docs_read {"id":"tool/get-debugger-warnings"}
summer_playPlay the gamewritesPlay the game in the editor's real window (agents may; quiet: the editor keeps its tab and focus): main scene or a given one, embedded or a hidden offscreen instance, optional seed and fixed frame rate, or local multipla…
summer_stopStop the gamewritesStop the running game, or one offscreen instance by name. Scene edits stay as they are; nothing is undone or saved. Guide: summer_docs_read {"id":"tool/stop"}
summer_is_runningCheck whether the game runsread-onlyCheck whether the game is running, and which scene it runs. Guide: summer_docs_read {"id":"tool/is-running"}
summer_get_script_errorsCheck a script for errorsread-onlyCheck one GDScript file for parse and compile errors without running the game: line, message and severity of each. The first check after writing a script. Guide: summer_docs_read {"id":"tool/get-script-errors"}
summer_create_debug_reportWrite a debug reportwritesWrite a support-ready Markdown report: doctor checks, engine health, diagnostics, console and debugger output, and a hand-off prompt. No tokens or file contents; the person should still read it before sending it. Guide: …
summer_screenshotTake a screenshotread-onlyReturn a frame as an image you see, to check your work by eye: the editor viewport, an offscreen render of a scene (preset, camera, bookmark or free pose, numbered marks) or the running game. A blank viewport frame means…
summer_frame_nodesFrame nodes and render themwritesFit a camera to the world bounds of some nodes and render them with the scene's real environment and lights; bookmark_name also saves the pose. Returns the image and a caption with the pose and bounds. Guide: summer_docs…
summer_shot_sheetRender a sheet of viewsread-onlyRender several bookmarks or poses into one labelled grid with real lighting, and compare each bookmark with its last render (difference map). The quick look at every hero view after a change. Guide: summer_docs_read {"id…
summer_debug_viewsRender debug views of a poseread-onlyRender one pose as a grid of debug views next to the beauty pass: lighting only, albedo, world normals, overdraw and wireframe. Shows why a shot looks wrong. Guide: summer_docs_read {"id":"tool/debug-views"}
summer_zoomZoom into part of a frameread-onlyRender a close-up of part of a frame (a region, or mark N of a marks render) at full resolution: real detail, seams and gaps, not enlarged pixels. Guide: summer_docs_read {"id":"tool/zoom"}
summer_frame_shotFind camera poses for a shotwritesFind, score and save camera poses for a shot type (establishing, eye level, low angle, detail, corridor), tested against the real geometry in the open editor. Returns the best 3 poses and a sheet to look at, and saves th…
summer_scene_auditAudit a 3D sceneread-onlyCheck a saved 3D scene for visual and placement problems: holes, exposed edges, floor gaps, floating or sunken props, overlaps, z-fighting, light limits. Returns issues by severity, each with the next tool. Changes nothi…
summer_get_project_contextRead the project contextread-onlyBind this session to the project open in Summer Engine and read it: project, current and main scene, engine health, project memory and warnings. Call it first in every chat; the scene tree and settings come on request (i…
summer_open_main_sceneOpen the main scenewritesOpen the project's main scene (from project settings) in the editor, instead of guessing a scene file name. Guide: summer_docs_read {"id":"tool/open-main-scene"}
summer_project_settingSet a project settingwritesSet one project.godot setting, such as application/run/main_scene, the window size, the renderer or the default gravity. Guide: summer_docs_read {"id":"tool/project-setting"}
summer_input_map_bindBind input to an actionwritesCreate an input action when it is missing and bind keys or mouse buttons to it, for example jump to Space. Then try it with summer_play. Guide: summer_docs_read {"id":"tool/input-map-bind"}
summer_get_scene_treeRead a scene's node treeread-onlyRead the node tree of a scene: names, types and paths. Pass scenePath for an exact scene and depth for deep trees; the engine stops at depth 2 and 200 nodes by default and says truncated. Next: summer_inspect_node. Guide…
summer_import_from_urlImport a file from a URLwritesDownload one file (model, texture, audio) from a URL into the project and run the import, so it is ready to use. For a model, next: summer_instantiate_scene. Guide: summer_docs_read {"id":"tool/import-from-url"}
summer_import_from_url_batchImport files from URLswritesDownload several files from URLs into the project in one call, with one import scan at the end. Guide: summer_docs_read {"id":"tool/import-from-url-batch"}
summer_projects_create_localCreate a project on this computerwritesCreate a project on this computer. Writes a template (3d-basic by default) to a folder, no shell needed. Returns projectPath. Next: summer_projects_open_local.
summer_projects_open_localOpen a project in Summer EnginewritesOpen a project in Summer Engine. Waits until it connects; installs the engine only with install: true (the person's yes). Next: summer_get_project_context.
summer_read_fileRead a project fileread-onlyRead a text file of the project (res://), a line or byte window of it, or parts of a .json, with the whole file's sha256. Pass that sha256 to summer_write_file or summer_replace_text to change the file safely. Guide: sum…
summer_grepSearch project filesread-onlySearch project files with a regular expression: file, line and text of each match, with optional context lines and a result cap. Then read the part you need with summer_read_file. Guide: summer_docs_read {"id":"tool/grep…
summer_write_fileWrite a project filewritesCreate a text file (create_only true) or overwrite one (expected_sha256 from summer_read_file); exactly one guard is required, so a stale write fails. Scripts, scenes, resources, JSON. Then check scripts with summer_get_…
summer_replace_textReplace text in a project filewritesReplace text in an existing project file. The text must match exactly once unless replace_all is set; the write is guarded by the file's sha256. Then check scripts with summer_get_script_errors. Guide: summer_docs_read {…
summer_import_asset_by_idImport a Summer asset by idwritesImport one Summer asset by its id (from a search, the person's assets or a generation) into the project; a 3D model can go straight into the scene at scenePath. Needs the Summer sign-in. Guide: summer_docs_read {"id":"to…
summer_import_assetFind and import a Summer assetwritesSearch the Summer asset library, import the best match into the project and, for a 3D model, add it to a scene. Needs the Summer sign-in. For an exact asset use summer_import_asset_by_id. Guide: summer_docs_read {"id":"t…
summer_import_hdriImport an HDRI skywritesFind a CC0 HDRI sky on Poly Haven (or take an exact id) and import it into res://sky/ for environment light. Returns a ready summer_run_script snippet that wires it into the WorldEnvironment. Guide: summer_docs_read {"id…
summer_export_gameExport the gamewritesExport the game headless as the file the Summer Games store takes: a bundle for iPhone, Android, macOS and Windows, a web build or a desktop download. Returns path, sha256 and size. Upload it with store.upload_file. Guid…
summer_export_templatesList or install export templateswritesList or install Summer Engine export templates (web, macOS, Windows) from Summer's CDN, each sha256-checked. Needed only for summer_export_game with format download. Guide: summer_docs_read {"id":"tool/export-templates"}
summer_capture_gameplayCapture gameplay screenshotsread-onlyCapture real gameplay frames (HUD included) from a hidden game window, no editor needed; game flags and player steps get past the title screen. Returns each frame's path and size: look at them before use. Guide: summer_d…
summer_run_scriptRun a script on a scenewritesRun one GDScript func run(ctx) in the live editor on the scene at scenePath: the way to make 3 or more scene edits, loops, grids and procedural meshes. Returns reports, output and errors. Loop: summer_world_snapshot, thi…
summer_run_editor_scriptRun a script in a headless editorwritesRun an EditorScript func _run() in a fresh headless editor against the project on disk: batch and project-wide jobs such as re-saving many scenes. It cannot see unsaved edits. For the open scene use summer_run_script. Gu…
summer_api_docsLook up an engine classread-onlyLook up an engine class offline before writing script code: inherits, properties, methods, signals and constants, or one member. Lists only members declared on that class (walk inherits). No engine needed. Next: summer_r…
summer_world_snapshotTake a scene snapshotread-onlyTake a structured snapshot of the edited scene: node paths, transforms, world bounds, fingerprints and counts, filtered by subtree, class or field. Returns snapshot_id, the baseline to diff after a change. Next: summer_s…
summer_snapshot_diffCompare two scene snapshotsread-onlyCompare two scene snapshots: added, removed and changed nodes and count changes. The proof that a change did what you meant; an empty diff after a change means it did not land. Next: summer_screenshot. Guide: summer_docs…
summer_get_runtime_treeRead the running game's treeread-onlyRead the node tree of the RUNNING game: spawned enemies, autoloads and pooled nodes that editor reads never show. Needs a running game. Next: summer_inspect_runtime_node. Guide: summer_docs_read {"id":"tool/get-runtime-t…
summer_inspect_runtime_nodeRead a node in the running gameread-onlyRead the live properties of one node in the RUNNING game (transform, visibility, physics state...) without stopping it. Paths are absolute; take them from summer_get_runtime_tree. Guide: summer_docs_read {"id":"tool/insp…
summer_test_placementTest a placement without movingread-onlyTest one 3D node at a candidate world position and rotation without moving it: overlaps, grounded state and the gap to the floor. Changes nothing. Then place it with summer_set_prop or summer_snap_to_surface. Guide: summ…
summer_snap_to_surfaceSnap a node onto a surfacewritesMove one 3D node along a ray until it sits at the given gap on the first surface (floor, ramp, shelf, table), then save the scene. Returns before and after transforms and the evidence. Guide: summer_docs_read {"id":"tool…
summer_align_distribute_3dAlign or space 3D nodeswritesAlign 2 to 16 3D nodes on one world axis (min, center, max) or space them equally (centers or gaps) from their visible bounds, then save the scene. One undo step. Guide: summer_docs_read {"id":"tool/align-distribute-3d"}
summer_navigation_probeCheck a navigation routeread-onlyCheck whether two world points are connected on the scene's navigation map: readiness, snapped end points, route length and route points. ready false means no evidence, not no route. Guide: summer_docs_read {"id":"tool/n…
summer_starcastRead the space around a noderead-onlyRead the clearance around one 3D node in 26 directions: what blocks each side and how far, contact, grounding and nearby objects. Changes nothing. Use it before and after placing. Guide: summer_docs_read {"id":"tool/star…
summer_inspect_assetMeasure a 3D asset fileread-onlyMeasure a 3D asset file without placing it: bounds, origin, meshes, largest flat faces, open pipe ends, Marker3D anchors and collision shapes. Measure each kit piece once before placing it. Next: summer_instantiate_scene…
summer_place_adjacentPlace a node against anotherwritesMove one node so its bounds face sits against another node's, lining up the other axes: modules edge to edge, storeys stacked. Saves the scene and verifies the gap. Guide: summer_docs_read {"id":"tool/place-adjacent"}
summer_attach_to_surfaceMount a piece on a surfacewritesTurn a piece so its measured back faces a wall, ceiling or floor found by a ray, keep it upright and seat it at a standoff: pipes, lamps, signs. Saves the scene; a refused seat puts the piece back. Guide: summer_docs_rea…
summer_repeat_alongRepeat a scene along a linewritesPlace copies of one scene along a line in one call: fence posts, clamps, a row of windows (at most 64). Returns the created node paths and saves the scene once. Guide: summer_docs_read {"id":"tool/repeat-along"}
summer_connect_portsJoin two pieces at their portswritesMove and turn one piece so its port (a Marker3D, or an open pipe end such as +Y) meets another piece's port: pipe to pipe, duct to duct. Refuses joins that tilt the piece. Saves the scene. Guide: summer_docs_read {"id":"…
summer_raycastCast a ray in a sceneread-onlyCast one ray from any point in a scene: the node it hits, the point and the normal. Physics first, visible bounds as a declared fallback. Changes nothing. Guide: summer_docs_read {"id":"tool/raycast"}
summer_measureMeasure between nodesread-onlyMeasure the gap or overlap on each axis between two placed nodes, or check that one face of many nodes lies on one plane. Finds facade gaps and modules that stand out. Changes nothing. Guide: summer_docs_read {"id":"tool…
summer_wait_for_eventWait for an engine eventread-onlyWait for an engine event (game started, op applied or failed, script error, scene saved) instead of sleeping; it says so honestly at the timeout. Take a cursor with summer_recent_events first. Guide: summer_docs_read {"i…
summer_recent_eventsRead recent engine eventsread-onlyRead the newest engine events (saves, plays, op results, script errors, imports) at once, and next_seq, the cursor to pass to summer_wait_for_event. Guide: summer_docs_read {"id":"tool/recent-events"}
summer_fabricate_3dMake a mesh with BlenderwritesMake a mesh with a bpy script in the person's own Blender (4.2 or newer, headless), import the .glb into the project and optionally place it. For exact modular kits and effect meshes, not characters or props. Guide: summ…
summer_ui_treeRead the editor UIread-onlyRead the live editor UI as a tree (controls, paths, text, state), or every visible dialog and whether one blocks input. Its paths are what summer_ui_activate takes. Guide: summer_docs_read {"id":"tool/ui-tree"}
summer_ui_activateUse an editor controlwritesUse one editor control by its tree path (press, toggle, focus, select a tab, type text, set a value) or dismiss a dialog; the control's state is read back. Only when no named action fits. Guide: summer_docs_read {"id":"t…
summer_ui_screenshotScreenshot the editor UIread-onlyReturn an image of the editor window, or of one dock, dialog or control: the last resort to look at the UI, never to pick click points. For scene views use summer_screenshot. Guide: summer_docs_read {"id":"tool/ui-screen…
summer_runtime_setSet a property in the running gamewritesSet one property on a node in the RUNNING game (the live object, never the scene file) and read back whether it applied: move the player, set health, flip a flag. Then check with summer_game_probe. Guide: summer_docs_rea…
summer_runtime_callCall a method in the running gamewritesCall one method on a node in the RUNNING game and return its result, to trigger gameplay code directly. A call is an action, not proof: check what it did with summer_game_probe. Guide: summer_docs_read {"id":"tool/runtim…
summer_runtime_spawnSpawn or free in the running gamewritesSpawn a scene into the RUNNING game (action spawn) or free a live node (action free) to set up a test. The scene file is not touched. Then check with summer_game_probe. Guide: summer_docs_read {"id":"tool/runtime-spawn"}
summer_runtime_animateDrive animation in the running gamewritesRead and drive animation in the RUNNING game: AnimationPlayer clips, AnimationTree states and Skeleton3D bone poses. cmd state only reads. Prove motion with two reads around summer_game_control step. Guide: summer_docs_r…
summer_game_controlControl the game clockwritesPause or resume the RUNNING game, step exactly N frames, set the time scale, or list the live game instances. Step between two summer_game_probe reads for exact checks. Guide: summer_docs_read {"id":"tool/game-control"}
summer_game_inputSend input to the running gamewritesDrive the RUNNING game's input: a script of timed actions, keys and clicks, or record real input and replay it on a seeded instance. Input is an action: prove its effect with summer_game_probe. Guide: summer_docs_read {"…
summer_game_probeProbe the running gameread-onlyRead state and pixels of one frame of the RUNNING game together: the live tree, property values and a screenshot stamped with the same frame numbers. The evidence read of a playtest. Guide: summer_docs_read {"id":"tool/g…
summer_enable_pluginEnable an editor pluginwritesEnable an editor plugin in res://addons/<name>/ and return the real result: enabled with its autoloads, or why it failed. Older engines only queue it (queued true); then check summer_get_debugger_errors. Guide: summer_do…
summer_docs_searchread-onlySearch the Summer library — skills, tools, templates, references, examples, collections — by describing the task in plain words ('make stylized water', 'the player falls through the floor', 'which tool reads script error…
summer_docs_readread-onlyLoad one library entry by id (<kind>/<slug>, as returned by summer_docs_search). Skills: the SKILL.md body plus metadata (status, use_when, related) and how to invoke the skill in your host (bare slug). Tools: how to cal…
summer_engine_list_camera_bookmarksList camera bookmarksread-onlyList the camera viewpoints saved in this project: names, poses and dates. A bookmark gives screenshots that line up before and after a change: summer_screenshot with framing bookmark. Guide: summer_docs_read {"id":"tool/…
summer_engine_save_camera_bookmarkSave a camera bookmarkwritesSave a named camera viewpoint in the project (res://.summer/camera_bookmarks.json): position and look_at as Vector3 literals, or neither to take the editor's 3D camera. The scene file is not touched. Next: summer_screens…
summer_engine_delete_camera_bookmarkDelete a camera bookmarkwritesDelete one saved camera viewpoint by name. Returns the names that remain. Guide: summer_docs_read {"id":"tool/camera-bookmark"}
summer_engine_list_ui_actionsList editor actionsread-onlyList the editor's named actions (menu items and shortcuts) with labels and shortcuts, filtered by text. Actions marked denied are refused. Next: summer_engine_invoke_ui_action. Guide: summer_docs_read {"id":"tool/ui-acti…
summer_engine_invoke_ui_actionRun an editor actionwritesRun one named editor action exactly as its menu item or shortcut would: open Project Settings, switch the main screen, toggle a panel. Editor work only; scene work is summer_run_script. Read the effect back with summer_u…
summer_searchFind a Summer operationread-onlyFind any Summer operation by describing the job in plain words: engine, assets, store, pricing, analytics and the rest. Returns the best matches with their exact input schema, effect and approval. Next: summer_call with …
summer_callRun a Summer operationdestructiveRun any Summer operation by name (from summer_search) with its input. Engine operations run here; cloud ones run on Summer's server with the same approvals: money, publishing and live changes answer needs_approval with a…
summer_store_toolsLoad the hosted Summer toolsread-onlyThe Summer store, publishing, board and Grow tools come from the hosted Summer Engine MCP and are not loaded. Call this to see why and how to fix it (usually: run "summer login --store" in a terminal); it loads them when…

Check your own setup

npx mcpvetter scan --live

Badge

Add this to a README:

[![MCPVetter](https://mcpvetter.com/badge/summer-engine.svg)](https://mcpvetter.com/servers/summer-engine)

Publish this server?

Get the MCPVetter verified badge, a re-audit within 24 hours of every npm release, and an email whenever tools, findings, or Claude directory readiness change. $29 per server per month. You prove ownership first, free.