MCP servers › io.github.SummerEngine › summer
MCP server · registry snapshot 2026-10-23 · last tested 2026-10-23
io.github.SummerEngine/summer
The game engine built for AI. Any agent makes a multiplayer game and publishes it. — the publisher's description
Summary
io.github.SummerEngine/summer is a remote and local MCP server listed in the official MCP registry at version 4.5.0. On 2026-10-23 ProtocolProbe started its published package in an isolated sandbox in read-only mode and read its inventory: 93 tools, 0 resources and 1 prompt.
Record checks
- met: Registry entry is active and says how to run it
- met: Source repository link opens
- met: Repository is not archived
- met: Code pushed to the repository in the 90 days before our check
- met: Repository publishes a security policy (SECURITY.md)
- met: Package names its licence with a standard (SPDX) identifier
- met: The version the registry lists can be installed and is not withdrawn
- not met: npm package carries build provenance (attestation)
- met: No known critical or high advisory in the package or its dependencies
- #238 of 15,112 packages by monthly downloads
- #861 of 22,952 repositories by GitHub stars, tied with 6 others
From public records, not a safety rating. Each check with its reason · Is it safe to install?
Key facts
- Runs
- remote and local package
- Transport
- standard input/output, streamable HTTP
- Package
- npm · listed version behind the latest release
- License
- MIT
- Dependencies
- no known high or critical advisories
- Repository
- public
- Tools
- 93
- Described as changing data
- 56 of 93 toolsAI-classified
- Mainly works on
- files and code on the machine it runs onAI-classified
- Topic
- developer-toolsAI-classified
- Pricing
- freemiumAI-classified
- Last tested
- 2026-10-23
Worth knowing before you connect it
- 56 tools are described as changing something (summer_create_scene, summer_add_node, summer_set_prop, …): our AI model's reading of the descriptions, not something we tested. We did not call them.
- The registry lists 4.5.0; 4.6.0 is newer (1 release).
Each line comes from a section below, with its source and date.
How fresh this is
- Live-tested
- yes, a real session (not a text-only review)
- Last tested
- 2026-10-23
- Mode
- read-only (no tool calls)
- Latest version
- 4.5.0, published 2026-10-20 (registry, as of the 2026-10-23 snapshot)
- First listed version
- 2026-10-16 (earliest version still in the registry; older removed versions would be earlier)
- Version history
- 4 versions listed, 2026-10-16 to 2026-10-20; 4 in the 90 days before the 2026-10-23 snapshot.(versions still listed in the registry only)
Most recent 4 versions
4.5.0· 2026-10-204.3.0· 2026-10-164.2.0· 2026-10-164.0.0· 2026-10-16
- Registry data
- snapshot 2026-10-23
- Package and repository
- checked 2026-10-23
- Engine
- mcp-runtime-engine@0.1.0 · sdk@1.32.0
Changes since the last refresh
New in the registry: not in the list of 2026-10-04, listed on 2026-10-23 with version 4.5.0 (published 2026-10-20).
Source: the official MCP Registry list on 2026-10-04 and on 2026-10-23.
What it is
What does this server offer?
Observed inventoryWhat it mainly works on, as our AI model read its tool descriptions: files and code on the machine it runs on.
56 of 93 tools are described as changing something (creating, editing, deleting, sending or running). For 2 the reading was uncertain, so no mark is shown.
- summer_create_scenecreates or changes datadescribed as changing data
“Create a new, minimal .tscn file with the root type you name.”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
4 inputs, 1 required
pathstringrequired“New scene path, e.g.”rootNamestring“Root node name for the new scene”rootTypestring“Root node type.”allow_temporary_scene_mutationboolean“DEPRECATED, ignored.”
- summer_add_nodecreates or changes datadescribed as changing data
“Add one node of any type to the scene at scenePath (it need not be the open tab) and save it.”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
4 inputs, 4 required
scenePathstringrequired“Target scene path, e.g.”parentstringrequired“Parent node path, e.g.”typestringrequired“Summer Engine node type, e.g.”namestringrequired“Name for the new node, e.g.”
- summer_set_propcreates or changes datadescribed as changing data
“Set one property of a node in the scene at scenePath and save it.”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
4 inputs, 4 required
scenePathstringrequired“Target scene path, e.g.”pathstringrequired“Node path, e.g.”keystringrequired“Property name, e.g.”valuestring or number or booleanrequired“Value in Summer Engine variant-string format for complex types, native JSON for primitives”
- summer_set_resource_propertycreates or changes datadescribed as changing data
“Set 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.”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
5 inputs, 5 required
scenePathstringrequired“Target scene path, e.g.”nodePathstringrequired“Node path, e.g.”resourcePropertystringrequired“Resource property on the node, e.g.”subPropertystringrequired“Property on the resource, e.g.”valuestring or number or booleanrequired“Value in Summer Engine variant-string format”
- summer_remove_nodedeletesdescribed as changing data
“Remove a node and all its children from the scene at scenePath and save it.”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
2 inputs, 2 required
scenePathstringrequired“Target scene path, e.g.”pathstringrequired“Node path to remove, e.g.”
- summer_save_scenecreates or changes datadescribed as changing data
“Save the scene at scenePath, or save it under a new path.”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
2 inputs, 1 required
scenePathstringrequired“Scene to save, e.g.”pathstring“Optional save-as path, e.g.”
- summer_open_scenecontrols a browser or desktopdescribed as changing data
“Open a scene file in the editor and show its tab.”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
1 input, 1 required
pathstringrequired“Scene path, e.g.”
- summer_instantiate_scenecreates or changes datadescribed as changing data
“Add 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).”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
9 inputs, 3 required
scenePathstringrequired“Target scene to receive the instance, e.g.”parentstringrequired“Parent node path, e.g.”scenestringrequired“Scene/model path, e.g.”namestring“Override the instance name”target_sizenumber“Normalize the instance's physical size: uniformly scale it so its largest world-AABB dimension equals this many units (chair 1.0, car 4.5, person 1.7).”positionarray“Parent-local position [x, y, z] set right after the instance is created.”rotation_degreesarray“Parent-local rotation in degrees [x, y, z] (Godot rotation_degrees).”scalearray“Local scale [x, y, z].”transformstring“Full local transform as "Transform3D(xx, xy, xz, yx, yy, yz, zx, zy, zz, ox, oy, oz)" (Godot row-major basis, then origin).”
- summer_connect_signalcreates or changes datadescribed as changing data
“Connect a signal of one node to a method of another so the saved scene keeps it, verified from the saved .tscn.”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
5 inputs, 5 required
scenePathstringrequired“Target scene path, e.g.”emitterstringrequired“Node that fires the signal, e.g.”signalstringrequired“Signal name, e.g.”receiverstringrequired“Node with the handler script, e.g.”methodstringrequired“Method name in the receiver's script, e.g.”
- summer_select_nodecontrols a browser or desktopdescribed as changing data
“Select a node in the editor's scene tree and show it in the inspector, so the person sees it.”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
2 inputs, 1 required
nodePathstringrequired“Node path to select”scenePathstring“Open this scene first, then select the node”
- summer_replace_nodecreates or changes datadescribed as changing data
“Replace 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.”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
4 inputs, 2 required
scenePathstringrequired“Target scene path, e.g.”pathstringrequired“Node path to replace, e.g.”typestring“New node type, e.g.”scenestring“Scene or model to replace with, e.g.”
- summer_inspect_nodereads or searches
“Read 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).”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
3 inputs, 1 required
pathstringrequired“Node path from scene tree, e.g.”fieldsarray“Only these fields: property names or globs (e.g.”maxCharactersinteger“Most characters of text to return (default 4000).”
Show 81 more tools
- summer_inspect_resourcereads or searches
“Read 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).”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
4 inputs
pathstring“A resource FILE: 'res://materials/ground.tres', a mesh 'res://kit/meshes/wall_01.res', a texture, a shape, or a scene/model 'res://models/player.glb'.”nodePathstring“With property: a node of the ACTIVE scene tab whose resource to read, e.g.”propertystring“With nodePath: the node property holding the resource, e.g.”maxCharactersinteger“Most characters of text to return (default 4000).”
- summer_batchruns code or commandsdescribed as changing data
“Send 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.”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
3 inputs, 1 required
scenePathstring“Required when ops contains scene mutations; exact res:// target scene path”opsarrayrequired“Array of operation objects, each with 'op' plus its parameters”receiptstring“full (default): every engine receipt.”
- summer_get_diagnosticsreads or searches
“Read the editor console, the runtime debugger and script errors together, with complete counts and errors first.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
1 input
includeAllboolean“Return the full engine diagnostics payload untrimmed (no severity reordering, no info-noise cap).”
- summer_get_consolereads or searches
“Read recent editor Output messages, collapsed and filtered (errors and warnings by default; errors_only false for print output).”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
7 inputs
max_linesnumber“Max lines to return after dedupe (default 100)”filterstring“Only return lines containing this string”typestring“Filter by message type at the engine level”errors_onlyboolean“Drop info/std noise, keep errors and warnings (default true)”strict_errorsboolean“Drop warnings too — return errors only”rawboolean“Bypass dedupe and level filtering — return engine output verbatim”maxCharactersinteger“Most characters of text to return (default 4000).”
- summer_clear_consoledoes something elsedescribed as changing data
“Clear the editor's Output panel, for a clean slate before the game runs.”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
Takes no inputs.
- summer_get_debugger_errorsreads or searches
“Read the played game's runtime errors from the debugger (null references, missing nodes, physics errors), collapsed, with call stacks on request.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
5 inputs
max_errorsnumber“Max errors to return after dedupe”include_stackboolean“Include stack traces for each error”include_warningsboolean“Forward-compat flag — when engine supports it, returns warning bodies in the same call.”rawboolean“Bypass dedupe — return engine output verbatim”maxCharactersinteger“Most characters of text to return (default 4000).”
- summer_get_debugger_warningsreads or searches
“Read the played game's runtime warnings from the debugger, with file, line and call stack.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
4 inputs
max_warningsnumber“Max warnings to return after dedupe”include_stackboolean“Include stack traces”rawboolean“Bypass dedupe”maxCharactersinteger“Most characters of text to return (default 4000).”
- summer_playruns code or commandsdescribed as changing data
“Play 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 ra…”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
12 inputs
scenestring“Scene to run instead of main scene, e.g.”instancestring“Name a game instance.”modestring“'embedded' (default) plays in the editor; 'offscreen' spawns a hidden child process (requires instance != 'main').”deterministicboolean“Offscreen only: launch with --fixed-fps 60 --summer-seed <seed> --audio-driver Dummy so the run is reproducible and input replays with seed are accepted.”seedinteger“Pin the game's GLOBAL RNG for this launch (child gets --summer-seed <seed>; default 20260725 when deterministic:true and seed is omitted).”fixed_fpsinteger“Fixed timestep for this launch (child gets --fixed-fps <n>): scene time decouples from the wall clock, the game runs as fast as it renders, frame-count-derived…”time_scalenumber“Engine time scale for this launch (child gets --time-scale <f>).”speednumber“User time scale applied on session start, (0, 100] — e.g.”playersinteger“Local Play for a Summer multiplayer game (engine with Local Play): start the game's authority headless plus this many clients on this machine, each joining thr…”spectatorsinteger“Local Play: also start this many spectator clients (only with players).”queuestring“Local Play: the summer.build.json queue the local World stands in for (default: the first declared queue).”focusboolean“Default false = QUIET play (PlayGame agent:true): the editor does not switch to the Game tab or grab focus for the embedded game, so the user keeps working.”
- summer_stopruns code or commandsdescribed as changing data
“Stop the running game, or one offscreen instance by name.”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
1 input
instancestring“Offscreen instance name to stop (from summer_play {instance}); omit for the main embedded game.”
- summer_is_runningreads or searches
“Check whether the game is running, and which scene it runs.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
Takes no inputs.
- summer_get_script_errorsreads or searches
“Check one GDScript file for parse and compile errors without running the game: line, message and severity of each.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
1 input, 1 required
pathstringrequired“Script path, e.g.”
- summer_create_debug_reportgenerates contentdescribed as changing data
“Write a support-ready Markdown report: doctor checks, engine health, diagnostics, console and debugger output, and a hand-off prompt.”
Publisher declares: read-only no · destructive no · idempotent no · open-world yes
7 inputs
issuestring“User-visible issue or repro summary.”output_pathstring“Where to write the Markdown report.”include_play_sessionboolean“Launch the game briefly and collect post-play diagnostics.”play_wait_msnumber“Milliseconds to wait after launching the game when include_play_session is true.”max_console_linesnumber“Console lines to include after filtering/deduping.”max_debugger_entriesnumber“Debugger error/warning entries to include after filtering/deduping.”include_doctorboolean“Include summer doctor checks in the report.”
- summer_screenshotreads or searches
“Return 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.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
14 inputs
targetstring“"viewport" = editor current view (default), "scene" = offscreen render of a scene file, "game" = running game frame”scenePathstring“target:"scene" only.”framingstring“target:"scene" only, 3D scenes.”bookmark_namestring“framing:"bookmark" only (implies it when framing is omitted).”sizearray“target:"scene" only.”nodePathstring“target:"scene" only.”camera_pathstring“framing:"camera" only.”camera_positionstring“framing:"free" only (implies it when framing is omitted).”camera_look_atstring“framing:"free" only.”fovnumber“framing:"free" / "bookmark" only.”marksboolean“target:"scene" only, 3D scenes.”max_marksinteger“marks:true only.”compare_previousboolean“framing:"bookmark" only.”update_previousboolean“framing:"bookmark" only.”
- summer_frame_nodesdescribed as changing data
“Fit 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.”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
11 inputs, 1 required
scenePathstring“Scene to look at, e.g.”nodesarrayrequired“Node paths relative to the scene root ("House1", "Props/Crate_02").”directionstring“Side the camera sits on: "front" (+Z), "back" (-Z), "left" (-X), "right" (+X), "top", "iso" (default, 3/4 from -X,+Y,-Z like summer_screenshot).”fromstring“Explicit direction FROM the nodes TOWARD the camera, "Vector3(1, 0.4, 2)".”fillnumber“Share of the frame the nodes span along their limiting dimension (0.1..1.5, default 0.8).”fovnumber“Vertical field of view in degrees (default 50).”max_sizeinteger“Longest edge of the returned JPEG in pixels (default 1024).”aspectnumber“Frame width/height (default 1.7778 = 16:9).”marksboolean“Numbered Set-of-Mark labels over the largest visible nodes; the caption maps label -> node path (feed a label to summer_zoom mark).”max_marksinteger“marks only: cap on labels (engine default 32).”bookmark_namestring“Also save the fitted pose as this camera bookmark (1-64 of A-Z a-z 0-9 _ -), so later renders line up with it.”
- summer_shot_sheetdescribed as changing data
“Render several bookmarks or poses into one labelled grid with real lighting, and compare each bookmark with its last render (difference map).”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
8 inputs, 1 required
scenePathstring“Scene to look at, e.g.”shotsarrayrequired“1-12 shots, each a bookmark_name OR camera_position + camera_look_at (+ fov), with an optional label.”viewstring“"beauty" (default: real environment, lights, fog, tonemap), "lighting" (light only), "unshaded" (albedo/texture only), "normals" (world normals, x red y green …”compare_previousboolean“For bookmark shots: one row per bookmark of [previous render | now | difference map], with the share of changed pixels in the caption.”update_previousboolean“Replace each bookmark's previous image (its compare baseline) with this render without comparing.”max_sizeinteger“Longest edge of the returned JPEG in pixels (default 1536).”aspectnumber“Frame width/height (default 1.7778 = 16:9).”save_tostring“Also write the returned image to res://.summer/shots/saved/<name>.jpg (1-64 of A-Z a-z 0-9 _ -; needs max_size <= 1024).”
- summer_debug_viewsdescribed as changing data
“Render one pose as a grid of debug views next to the beauty pass: lighting only, albedo, world normals, overdraw and wireframe.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
10 inputs
scenePathstring“Scene to look at, e.g.”bookmark_namestring“Pose from a camera bookmark (summer_engine_save_camera_bookmark (list: summer_engine_list_camera_bookmarks)).”camera_positionstring“Explicit pose: camera position, "Vector3(x, y, z)".”camera_look_atstring“Explicit pose: point the camera looks at, "Vector3(x, y, z)".”fovnumber“Vertical field of view in degrees (1..179).”viewsarray“Which views, in grid order (default all six: beauty, lighting, unshaded, normals, overdraw, wireframe).”update_previousboolean“bookmark_name only: replace the bookmark's previous image (compare baseline) with this beauty tile.”max_sizeinteger“Longest edge of the returned JPEG in pixels (default 1536).”aspectnumber“Frame width/height (default 1.7778 = 16:9).”save_tostring“Also write the returned image to res://.summer/shots/saved/<name>.jpg (1-64 of A-Z a-z 0-9 _ -; needs max_size <= 1024).”
- summer_zoomdescribed as changing data
“Render 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.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
12 inputs
scenePathstring“Scene to look at, e.g.”bookmark_namestring“Pose from a camera bookmark (summer_engine_save_camera_bookmark (list: summer_engine_list_camera_bookmarks)).”camera_positionstring“Explicit pose: camera position, "Vector3(x, y, z)".”camera_look_atstring“Explicit pose: point the camera looks at, "Vector3(x, y, z)".”fovnumber“Vertical field of view in degrees (1..179).”regionarray“[x, y, w, h] as fractions (0..1) of the frame from the same pose, x/y from the TOP-LEFT.”markinteger“A label number from a marks:true render of the SAME pose and reference_size (summer_frame_nodes, or summer_screenshot framing free/bookmark at that size).”reference_sizearray“[width, height] of the frame region/mark refer to (default [1024, 576]).”padnumber“Margin added around the region on each side, as a fraction of its size (0..1; default 0 for region, 0.15 for mark).”viewstring“"beauty" (default: real environment, lights, fog, tonemap), "lighting" (light only), "unshaded" (albedo/texture only), "normals" (world normals, x red y green …”max_sizeinteger“Longest edge of the returned JPEG in pixels (default 1024).”save_tostring“Also write the returned image to res://.summer/shots/saved/<name>.jpg (1-64 of A-Z a-z 0-9 _ -; needs max_size <= 1024).”
- summer_frame_shotdescribed as changing data
“Find, 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.”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
13 inputs, 1 required
scenePathstring“Scene to look at, e.g.”shotstringrequired“"establishing" (wide, whole subject, 12-40 deg up; a pose showing more than 15% empty ground or world edge ranks below every pose showing less), "eye_level" (p…”subjectarray“Node paths to frame (required except for eye_level, where it is what the player looks at).”spawnstring“eye_level only: node the player stands at, e.g.”eye_heightnumber“eye_level/corridor: exact camera height in metres above the walkable surface under the camera (default: 1.6; an eye_level spawn's own Camera3D keeps its height…”fovnumber“Override the shot type's field of view (establishing 55, eye_level 60/75, low_angle 60 then widened, detail 40, corridor 60/75).”aspectnumber“Frame width/height (default 1.7778 = 16:9).”occludersobject“Override the occluder classification.”max_soft_fractionnumber“Most of the subject that soft geometry may cover before a pose is rejected (0..1, default 0.67).”bookmark_namestring“Name for the saved best pose (default <shot>_<subject leaf>).”save_bookmarkboolean“Save the best pose as a camera bookmark (default true).”renderstring“"sheet" (default): the top 3 in one labelled grid with real lighting; "best": the winner only; "none": scores only.”max_sizeinteger“Longest edge of the returned JPEG in pixels (default 1536).”
- summer_scene_auditreads or searches
“Check a saved 3D scene for visual and placement problems: holes, exposed edges, floor gaps, floating or sunken props, overlaps, z-fighting, light limits.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
10 inputs
scenePathstring“Scene to audit, e.g.”checksarray“Only these checks (default: all 15).”rootstring“Report only issues under this node (subtree), e.g.”min_severitystring“"error" (only errors), "warn" (errors and warnings) or "look" (default: everything, including look items that only ask you to look).”offsetinteger“Skip this many issues of the sorted, filtered list (paging; the result names the next offset).”limitinteger“Issues per page (default 15, max 50).”budget_msinteger“Editor time for the whole audit (default 3000 ms, 250-60000).”acceptarray“Accept look or warn items you judged fine (up to 50 per call): [{key, reason}] with keys from this scene's issues.”show_acceptedboolean“List accepted items too (each with its accepted reason).”renderstring“"sheet": also return ONE inline image of the first 6 issues of this page framed up close from their open side, each tile labelled with its issue number.”
- summer_get_project_contextreads or searches
“Bind this session to the project open in Summer Engine and read it: project, current and main scene, engine health, project memory and warnings.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
3 inputs
includearray“Heavy blocks to add to the compact default: 'scene_tree' (the open scene's node tree, up to 200 nodes), 'capabilities' (the engine's full op/capability lists),…”settingsPrefixstring“Only return project settings whose key starts with this prefix, e.g.”settingsPrefixesarray“Several settings groups at once, e.g.”
- summer_open_main_scenecontrols a browser or desktopdescribed as changing data
“Open the project's main scene (from project settings) in the editor, instead of guessing a scene file name.”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
Takes no inputs.
- summer_project_settingcreates or changes datadescribed as changing data
“Set one project.godot setting, such as application/run/main_scene, the window size, the renderer or the default gravity.”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
2 inputs, 2 required
keystringrequired“Setting key path, e.g.”valuestring or number or booleanrequired“Setting value”
- summer_input_map_bindcreates or changes datadescribed as changing data
“Create an input action when it is missing and bind keys or mouse buttons to it, for example jump to Space.”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
2 inputs, 2 required
namestringrequired“Action name, e.g.”eventsarrayrequired“Array of input event objects”
- summer_get_scene_treereads or searches
“Read the node tree of a scene: names, types and paths.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
4 inputs
scenePathstring“Exact res:// scene path to inspect”depthinteger“Maximum tree depth to walk.”limitinteger“Maximum number of nodes to return.”maxCharactersinteger“Most characters of text to return (default 8000).”
- summer_import_from_urldescribed as changing data
“Download one file (model, texture, audio) from a URL into the project and run the import, so it is ready to use.”
Publisher declares: read-only no · destructive no · idempotent no · open-world yes
2 inputs, 1 required
urlstringrequired“HTTP(S) URL to download from”pathstring“Target path in project, e.g.”
- summer_import_from_url_batchdescribed as changing data
“Download several files from URLs into the project in one call, with one import scan at the end.”
Publisher declares: read-only no · destructive no · idempotent no · open-world yes
1 input, 1 required
importsarrayrequired“Array of {url, path} objects”
- summer_projects_create_localdescribed as changing data
“Create a project on this computer.”
Publisher declares: read-only no · destructive no · idempotent no · open-world yes
3 inputs
templatestring“Template slug (docs.search finds them): 3d-basic (default), empty, 3d-third-person-controller, 2d-platformer, ...”namestring“The project's name and folder name.”dirstring“The project folder: a new or empty folder, not inside another project; ~ is home.”
- summer_projects_open_localdescribed as changing data
“Open a project in Summer Engine.”
Publisher declares: read-only no · destructive no · idempotent no · open-world yes
2 inputs
pathstring“The project folder (holds project.godot), e.g.”installboolean“Install Summer Engine first when it is missing.”
- summer_read_filereads or searches
“Read 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.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
8 inputs, 1 required
pathstringrequired“Project path, e.g.”max_bytesinteger“Most bytes of content to return (UTF-8).”offsetinteger“Skip this many units (lines by default, see unit) before returning content.”limitinteger“Return at most this many units (lines by default).”unitstring“What offset/limit count: 'lines' (default) or 'bytes' (cut on UTF-8 character boundaries).”json_pathstring“For a JSON file: return only this value, e.g.”keysarray“For a JSON object (the file root or the json_path value): keep only these keys; * and ?”keys_onlyboolean“For a JSON object: return only its key names (after the keys filter), not the values — a cheap table of contents.”
- summer_grepreads or searches
“Search project files with a regular expression: file, line and text of each match, with optional context lines and a result cap.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
8 inputs, 1 required
patternstringrequired“Ripgrep regular expression, e.g.”pathstring“Search scope: a res:// directory or file, e.g.”globstring“File filter passed to ripgrep --glob, e.g.”case_sensitiveboolean“Match case exactly (default false: case-insensitive).”context_linesinteger“Lines of context before and after each match (0-10, default 0).”max_resultsinteger“Most matches to return (default 50, max 500).”max_line_charsinteger“Clip every returned line to this many characters (default 240).”multilineboolean“Let the pattern span lines (ripgrep -U --multiline-dotall).”
- summer_write_filecreates or changes datadescribed as changing data
“Create 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.”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
4 inputs, 2 required
pathstringrequired“Project path, e.g.”contentstringrequired“Complete new UTF-8 file content.”create_onlyboolean“Required for a new file; refuses if the path already exists.”expected_sha256string“Required for overwriting an existing file; obtain from summer_read_file.”
- summer_replace_textcreates or changes datadescribed as changing data
“Replace text in an existing project file.”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
4 inputs, 3 required
pathstringrequired“Project path, e.g.”old_textstringrequired“Exact text to replace.”new_textstringrequired“Replacement text; may be empty.”replace_allboolean“Replace every exact occurrence instead of requiring one unique match.”
- summer_import_asset_by_idcreates or changes datadescribed as changing data
“Import 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.”
Publisher declares: read-only no · destructive no · idempotent no · open-world yes
5 inputs, 1 required
assetIdstringrequired“Summer ArtAssets id”pathstring“Optional target res:// path.”parentstring“Optional parent node path.”scenePathstring“Required with parent.”namestring“Optional scene node name when parent is provided.”
- summer_import_assetcreates or changes datadescribed as changing data
“Search the Summer asset library, import the best match into the project and, for a 3D model, add it to a scene.”
Publisher declares: read-only no · destructive no · idempotent no · open-world yes
5 inputs, 1 required
querystringrequired“What to find, e.g.”parentstring“Parent node path to add the asset under, e.g.”scenePathstring“Required with parent.”assetTypestring“Preferred asset type”sourcestring“Where to search before importing”
- summer_import_hdricreates or changes datadescribed as changing data
“Find a CC0 HDRI sky on Poly Haven (or take an exact id) and import it into res://sky/ for environment light.”
Publisher declares: read-only no · destructive no · idempotent no · open-world yes
3 inputs
querystring“What kind of sky/environment, e.g.”assetIdstring“Exact Poly Haven asset id (lowercase slug, e.g.”resolutionstring“HDRI resolution.”
- summer_export_gamedescribed as changing data
“Export 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.”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
7 inputs
projectstring“Project folder with project.godot.”outstring“Output .zip path.”targetsarray“Store platforms.”formatstring“bundle (default): the summer.games store build.”debugboolean“Export a debug build (--export-debug).”timeoutSecondsinteger“Stop the engine after this many seconds (default 900; a first export imports every asset).”alignDeclarationboolean“A game with a server: set summer.build.json targetPlatforms to targets before exporting.”
- summer_export_templatesdescribed as changing data
“List or install Summer Engine export templates (web, macOS, Windows) from Summer's CDN, each sha256-checked.”
Publisher declares: read-only no · destructive no · idempotent no · open-world yes
4 inputs, 1 required
actionstringrequired“list: installed and published templates.”platformsarray“Template platforms to install (default ["web"]).”includeDebugboolean“Also install the debug templates (for exports with debug true).”summerVersionstring“The installed Summer Engine version (Help > About, e.g.”
- summer_capture_gameplayreads or searches
“Capture real gameplay frames (HUD included) from a hidden game window, no editor needed; game flags and player steps get past the title screen.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
9 inputs
projectstring“Project folder with project.godot.”scenestring“Scene to start (res://...”resolutionstring“Window size WIDTHxHEIGHT (default 1920x1080; 1080x1920 for portrait).”framesinteger“Frames to save (default 1).”waitSecondsnumber“Seconds the game runs before the first frame (default 3).”intervalSecondsnumber“Seconds between frames (default 1).”outstring“Output folder.”argsarray“The game's own command-line flags, passed after "--" (OS.get_cmdline_user_args()), e.g.”stepsarray“What to do after waitSeconds, in order; exactly one of press, key, action, click, drag, wait, shot per step.”
- summer_run_scriptruns code or commandsdescribed as changing data
“Run 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.”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
5 inputs, 1 required
scenePathstring“The scene to run against, e.g.”sourcestringrequired“GDScript source containing `func run(ctx):`.”max_secondsnumber“Time budget in seconds (default 20, clamped 5-120).”checkpointboolean“Take a SummerGit checkpoint before running (default true).”undostring“Transaction mode (newer engines).”
- summer_run_editor_scriptruns code or commandsdescribed as changing data
“Run 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.”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
3 inputs, 1 required
sourcestringrequired“EditorScript GDScript source with `func _run():`.”max_secondsnumber“Time budget in seconds for the child editor (default 120, clamped 15-600).”checkpointboolean“Take a SummerGit checkpoint before the child editor runs.”
- summer_api_docsreads or searches
“Look up an engine class offline before writing script code: inherits, properties, methods, signals and constants, or one member.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
2 inputs, 1 required
class_namestringrequired“Engine class name, e.g.”memberstring“Optional property/method/signal/constant name to fetch just that member, e.g.”
- summer_world_snapshotreads or searches
“Take a structured snapshot of the edited scene: node paths, transforms, world bounds, fingerprints and counts, filtered by subtree, class or field.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
6 inputs
scene_pathstring“Scene to snapshot, e.g.”max_nodesinteger“Most node entries to return (default 200).”offsetinteger“Skip this many matching nodes (path-sorted) before listing — page with the result's next_offset.”path_prefixstring“Only this subtree: the node at this scene-relative path and everything below it, e.g.”classesarray“Only nodes of these classes, e.g.”fieldsarray“Only these per-node fields (path is always kept): class, name, pos, rot_deg, scale, visible, aabb, scene_file, script_fp, material_fps, z_index, rect, view_rec…”
- summer_snapshot_diffreads or searches
“Compare two scene snapshots: added, removed and changed nodes and count changes.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
2 inputs, 1 required
from_idstringrequired“snapshot_id of the BEFORE snapshot (from summer_world_snapshot).”to_idstring“snapshot_id of the AFTER snapshot.”
- summer_get_runtime_treereads or searches
“Read the node tree of the RUNNING game: spawned enemies, autoloads and pooled nodes that editor reads never show.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
4 inputs
pathstring“Subtree root to read, e.g.”depthinteger“Maximum depth to walk (engine default 3).”limitinteger“Maximum nodes to return (engine default 500).”maxCharactersinteger“Most characters of text to return (default 4000).”
- summer_inspect_runtime_nodereads or searches
“Read the live properties of one node in the RUNNING game (transform, visibility, physics state...) without stopping it.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
2 inputs, 1 required
pathstringrequired“Runtime node path, e.g.”maxCharactersinteger“Most characters of text to return (default 4000).”
- summer_test_placementreads or searches
“Test one 3D node at a candidate world position and rotation without moving it: overlaps, grounded state and the gap to the floor.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
9 inputs, 4 required
scenePathstringrequired“Exact scene path containing the subject, e.g.”subjectPathstringrequired“Exact node path relative to the scene root, e.g.”candidateGlobalPositionarrayrequired“Candidate global/world position as [x, y, z].”candidateGlobalRotationDegreesarrayrequired“Candidate global/world Euler rotation in degrees as [x, y, z]; current global scale is preserved.”collisionMaskinteger“Godot 3D physics layers included in overlap and floor queries.”collideWithAreasboolean“Include Area3D objects as placement obstacles/support candidates.”maxFloorDistancenumber“Maximum world-space distance searched below the candidate footprint; range 0.001..1000.”groundTolerancenumber“Absolute floor-gap tolerance used to classify grounded support.”marginnumber“Physics shape-intersection margin; only an exact physics support collider+shape contact is excluded from overlaps.”
- summer_snap_to_surfacecreates or changes datadescribed as changing data
“Move 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.”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
6 inputs, 2 required
scenePathstringrequired“Exact scene containing the subject, e.g.”subjectPathstringrequired“Exact Node3D path relative to the scene root, e.g.”directionarray“Finite world-space cast direction [x,y,z] whose squared length exceeds 0.00001.”maxDistancenumber“Maximum cast and overlap-recovery distance in scene units.”gapnumber“Requested separation from the support surface; must not exceed maxDistance.”alignUpboolean“Rotate the subject's current world up toward an exact physics contact normal before seating it.”
- summer_align_distribute_3dcreates or changes datadescribed as changing data
“Align 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.”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
4 inputs, 4 required
scenePathstringrequired“Exact target scene, e.g.”subjectPathsarrayrequired“Two to sixteen exact nonduplicate Node3D paths in the order to align or distribute.”axisarrayrequired“Finite, non-zero world axis [x,y,z]; normalization is automatic.”modestringrequired“Alignment anchor or equal-spacing policy.”
- summer_navigation_probereads or searches
“Check whether two world points are connected on the scene's navigation map: readiness, snapped end points, route length and route points.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
5 inputs, 3 required
scenePathstringrequired“Exact 3D scene whose World3D navigation map should be queried.”startarrayrequired“Requested world-space route start [x,y,z].”endarrayrequired“Requested world-space route destination [x,y,z].”navigationLayersinteger“Godot navigation-layer bitmask; only enabled matching regions are used.”optimizeboolean“Use Godot's corridor-funnel path post-processing; false uses edge-centered points.”
- summer_starcastreads or searches
“Read the clearance around one 3D node in 26 directions: what blocks each side and how far, contact, grounding and nearby objects.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
11 inputs, 2 required
scenePathstringrequired“Exact scene containing the subject, e.g.”pathstringrequired“Exact Node3D path relative to the scene root, e.g.”detailstring“summary: compact placement report (at most 5 KB).”maxDistancenumber“Maximum outward cast distance in scene units.”nearbyRadiusnumber“Maximum gap from the subject bounds for the nearby-object lists (full detail).”directionSpacestring“Cast along world axes, or along the subject's orthonormalized local axes when 'front', 'side', or 'up' mean the rotated subject's own orientation.”collisionMaskinteger“Godot 3D physics layer mask queried by rays, shape contacts/overlaps, and nearby-collider scans.”collideWithAreasboolean“Include Area3D objects as well as physics bodies.”maxHitsPerDirectioninteger“Maximum physics hits and visual AABB hits retained for each direction.”maxResultsinteger“Maximum retained contact/overlap and nearby entries per evidence channel.”marginnumber“Tolerance for exact-geometry physics shape intersection queries; touching and candidates within this margin are reported as contact_or_overlap.”
- summer_inspect_assetreads or searches
“Measure a 3D asset file without placing it: bounds, origin, meshes, largest flat faces, open pipe ends, Marker3D anchors and collision shapes.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
4 inputs, 1 required
pathstringrequired“Asset to measure, e.g.”maxTrianglesinteger“Triangle budget (100-300000) for the face and open-loop analysis (AABBs and counts are always complete).”detailstring“summary (default): open_loops lists only port-like loops (radius over 2 cm with a partner loop facing another way, or the one opening of an end piece on its bo…”maxCharactersinteger“Most characters of text to return (default 4000).”
- summer_place_adjacentcreates or changes datadescribed as changing data
“Move one node so its bounds face sits against another node's, lining up the other axes: modules edge to edge, storeys stacked.”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
8 inputs, 5 required
scenePathstringrequired“Exact scene to read or change, e.g.”subjectstringrequired“Node to move: exact node path relative to the scene root, e.g.”referencestringrequired“Node that stays put: exact node path relative to the scene root, e.g.”axisstringrequired“Axis along which the two pieces meet (x, y or z of the chosen space).”sidestringrequired“max: subject goes on the reference's +axis side (its min face against the reference's max face).”gapnumber“Distance between the two faces along axis.”alignOtherAxesstring or object“How to line up the other two axes: min, center, max or none (keep).”spacestring“world: world axes.”
- summer_attach_to_surfacecreates or changes datadescribed as changing data
“Turn 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.”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
12 inputs, 2 required
scenePathstringrequired“Exact scene to read or change, e.g.”subjectstringrequired“Piece to mount: exact node path relative to the scene root, e.g.”surfacestring“Surface node (wall, ceiling, floor).”rayobject“Explicit ray that finds the surface plane and its normal.”placeAtstring“current (default): the piece keeps its height and its place along the surface and only moves along the surface normal, so its measured back face ends at stando…”maxMovenumber“Refuse, changing nothing, when the piece would end farther than this from where it starts (scene units).”backAxisstring“The subject's LOCAL axis that must face into the surface, e.g.”upAxisstring“The subject's LOCAL axis kept closest to worldUp.”worldUparray“World direction the upAxis should follow (projected onto the surface).”standoffnumber“Gap between the subject's back face and the surface, in scene units.”maxDistancenumber“Maximum ray length when looking for the surface.”collisionMaskinteger“Godot 3D physics layer mask for physics queries.”
- summer_repeat_alongcreates or changes datadescribed as changing data
“Place copies of one scene along a line in one call: fence posts, clamps, a row of windows (at most 64).”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
12 inputs, 4 required
scenePathstringrequired“Exact scene to read or change, e.g.”templatestringrequired“Scene to instance for every copy, e.g.”parentstringrequired“Parent for the copies; start/end/direction are in this parent's local space (same as position).”startarrayrequired“First copy's position [x, y, z] in the parent's space.”endarray“Line end.”directionarray“Instead of end: direction of the row; needs count and spacing.”countinteger“Number of copies (1-64).”spacingnumber“Distance between neighbouring copies' origins.”alignstring“With end + spacing: where the leftover length goes.”rotationDegreesarray“rotation_degrees for every copy [x, y, z].”scalearray“scale for every copy [x, y, z].”namePrefixstring“Copies are named <namePrefix>_<n> (default: the template file name).”
- summer_connect_portscreates or changes datadescribed as changing data
“Move 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.”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
10 inputs, 5 required
scenePathstringrequired“Exact scene to read or change, e.g.”subjectstringrequired“Piece to move: exact node path relative to the scene root, e.g.”subjectPortstring or integerrequired“Port on the subject: an open-loop id from summer_inspect_asset on that node's scene, e.g.”targetstringrequired“Piece that stays put: exact node path relative to the scene root, e.g.”targetPortstring or integerrequired“Port on the target: an open-loop id from summer_inspect_asset on that node's scene, e.g.”gapnumber“Distance between the two ports along the target port's direction.”rollDegreesnumber“Extra turn of the subject, in degrees, about the joined port axis, applied after the ports are lined up.”maxTiltDegreesnumber“Refuse the join, changing nothing, when it would tilt the subject's up axis (its local +Y) more than this many degrees from where it points now (default 5).”allowTiltboolean“true: join even when the subject tilts more than maxTiltDegrees (a bend laid on its side, a sloped run).”maxTrianglesinteger“Triangle budget (100-300000) per node when ports are open-loop ids or indices.”
- summer_raycastreads or searches
“Cast one ray from any point in a scene: the node it hits, the point and the normal.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
8 inputs, 3 required
scenePathstringrequired“Exact scene to read or change, e.g.”originarrayrequired“Ray start in scene (world) space [x, y, z].”directionarrayrequired“Ray direction [x, y, z]; normalized for you.”maxDistancenumber“Maximum ray length in scene units.”collisionMaskinteger“Godot 3D physics layer mask for physics queries.”collideWithAreasboolean“Also hit Area3D volumes (physics only).”evidencestring“auto: physics first, visual AABB fallback when physics finds nothing (declared).”excludearray“Nodes (with their descendants) the ray ignores, e.g.”
- summer_measurereads or searches
“Measure the gap or overlap on each axis between two placed nodes, or check that one face of many nodes lies on one plane.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
9 inputs, 1 required
scenePathstringrequired“Exact scene to read or change, e.g.”modestring“pair: gap or overlap per axis between nodes a and b.”astring“pair mode, first node: exact node path relative to the scene root, e.g.”bstring“pair mode, second node: exact node path relative to the scene root, e.g.”axisstring“pair mode: report only this axis (x, y or z of the chosen space).”nodesarray“plane mode: 2-32 nodes whose face is checked, e.g.”facestring“plane mode: which face, e.g.”spacestring“world: world axes.”tolerancenumber“Distance in scene units treated as touching (pair) or coplanar (plane).”
- summer_wait_for_eventreads or searches
“Wait for an engine event (game started, op applied or failed, script error, scene saved) instead of sleeping; it says so honestly at the timeout.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
5 inputs
kindsarray“Event kinds to deliver (default: all).”sinceinteger“Deliver events with seq > since.”timeout_secondsnumber“How long to wait for a match (default 30, clamped 1-120).”matchobject“Extra client-side filters applied after the kinds filter.”max_eventsinteger“Maximum matched events to return (default 20, cap 500).”
- summer_recent_eventsreads or searches
“Read 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.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
3 inputs
sinceinteger“Deliver events with seq > since.”kindsarray“Event kinds to deliver (default: all).”limitinteger“Maximum events to return (default 50, cap 200).”
- summer_fabricate_3druns code or commandsdescribed as changing data
“Make 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.”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
8 inputs, 2 required
sourcestringrequired“Blender Python (bpy) code that CREATES mesh objects and leaves them linked in the scene.”namestringrequired“Asset name — used for the default out_path (res://assets/fabricated/<name>.glb) and for the instantiated node.”out_pathstring“Destination res:// path ending in .glb (default res://assets/fabricated/<name>.glb).”target_sizenumber“Largest world-AABB dimension in units after instantiation — uniform scale, same rule as summer_instantiate_scene target_size (chair 1.0, car 4.5).”import_to_sceneobject“Instantiate the imported .glb into the currently open scene after import (one undo action).”max_secondsnumber“Child budget in seconds (default 120, clamped 15-600): Blender boot + script + procedural-colour bakes + export.”checkpointboolean“Take a SummerGit checkpoint before the child runs (default false).”blender_pathstring“Explicit Blender executable.”
- summer_ui_treereads or searches
“Read the live editor UI as a tree (controls, paths, text, state), or every visible dialog and whether one blocks input.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
4 inputs
rootstring“Where to start.”depthinteger“Tree depth (engine default 4, max 32).”limitinteger“Maximum Control nodes emitted (engine default 500, max 5000).”visible_onlyboolean“Default true.”
- summer_ui_activatecontrols a browser or desktopdescribed as changing data
“Use 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.”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
7 inputs
actionstring“Default 'press'.”pathstring“A control `path` from summer_ui_tree (required for every action except dismiss_dialog, which may use title instead), or 'main_screen' with action:'select_tab'.”valuestring or number“select_tab: tab title (or the main-screen editor name: '2D', '3D', 'Script', 'Game', 'AssetLib'); set_text: the text; set_value: the number.”indexinteger“select_tab: tab index; press on an ItemList / PopupMenu: item index.”submitboolean“set_text on a LineEdit only: also emit text_submitted (the Enter key), e.g.”titlestring“dismiss_dialog only: a visible window title (case-insensitive; exact wins, one substring match accepted, otherwise ambiguous_dialog) — from summer_ui_tree root…”buttonstring“dismiss_dialog only.”
- summer_ui_screenshotreads or searches
“Return 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.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
2 inputs
rootstring“Same grammar as summer_ui_tree root — 'window' (default; the whole editor window), 'main', 'dock:<title|id>', 'dialog:<title>', 'path:<node path>'.”max_sizeinteger“Longest edge in pixels after downscale (engine default 1024, clamped 16-4096).”
- summer_runtime_setcreates or changes datadescribed as changing data
“Set 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.”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
5 inputs, 3 required
pathstringrequired“ABSOLUTE runtime node path, e.g.”propertystringrequired“Property name, e.g.”valuestring or number or booleanrequired“New value.”fieldstring“Optional sub-field to set instead of the whole value, e.g.”instancestring“Game instance to address (default 'main' = the editor's embedded game).”
- summer_runtime_callruns code or commandsdescribed as changing data
“Call one method on a node in the RUNNING game and return its result, to trigger gameplay code directly.”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
4 inputs, 2 required
pathstringrequired“ABSOLUTE runtime node path, e.g.”methodstringrequired“Method name to call on the node, e.g.”argsarray“Positional arguments.”instancestring“Game instance to address (default 'main' = the editor's embedded game).”
- summer_runtime_spawndescribed as changing data
“Spawn a scene into the RUNNING game (action spawn) or free a live node (action free) to set up a test.”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
8 inputs, 1 required
actionstringrequired“'spawn' instantiates a PackedScene under parent (SpawnRuntimeScene); 'free' removes a node (FreeRuntimeNode).”parentstring“action:'spawn' — ABSOLUTE runtime path of the parent, e.g.”scenestring“action:'spawn' — PackedScene to instantiate, e.g.”namestring“action:'spawn' — node name; the engine renames on collision and reports renamed_to.”propsobject“action:'spawn' — properties set on the new node before it enters the tree ({position: 'Vector3(0, 1, 0)', health: 50}).”pathstring“action:'free' — ABSOLUTE runtime path of the node to free.”modestring“action:'free' — 'queue_free' (default, safe: frees at the end of the frame) or 'free' (immediate).”instancestring“Game instance to address (default 'main' = the editor's embedded game).”
- summer_runtime_animatedescribed as changing data
“Read and drive animation in the RUNNING game: AnimationPlayer clips, AnimationTree states and Skeleton3D bone poses.”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
18 inputs, 2 required
targetstringrequired“'player' = AnimationPlayer (RuntimeAnimation), 'tree' = AnimationTree state machine (RuntimeAnimationTree), 'bones' = Skeleton3D poses (GetRuntimeBones).”pathstringrequired“ABSOLUTE runtime path of the AnimationPlayer / AnimationTree / Skeleton3D.”cmdstring“Default 'state' (read-only).”namestring“target:'player' play — clip name (unknown_animation lists the clips).”positionnumber“target:'player' seek — position in seconds.”speednumber“target:'player' speed — speed_scale (1.0 = normal, negative plays backwards).”from_endboolean“target:'player' play — start from the end (backwards).”blendnumber“target:'player' play — custom blend time in seconds.”updateboolean“target:'player' seek — apply the pose immediately (default true).”statestring“target:'tree' travel/start — state machine node name (unknown_state lists them).”resetboolean“target:'tree' travel/start — reset the destination clip (default true).”paramstring“target:'tree' set_param/get_param — parameter path, e.g.”valuestring or number or boolean“target:'tree' set_param — new value (JSON scalar or Godot literal string).”playback_pathstring“target:'tree' — state machine playback parameter (default 'parameters/playback'; nested machines use 'parameters/<Node>/playback').”bonesarray“target:'bones' — bone names to read (omit for the first 256; page larger rigs with this filter).”spacestring“target:'bones' — 'global' (default, skeleton-space global_pose), 'local' (pose), or 'both'.”include_restboolean“target:'bones' — also return each bone's rest Transform3D.”instancestring“Game instance to address (default 'main' = the editor's embedded game).”
- summer_game_controldescribed as changing data
“Pause or resume the RUNNING game, step exactly N frames, set the time scale, or list the live game instances.”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
5 inputs, 1 required
actionstringrequired“'pause' suspends the game (Engine time frozen, physics inactive); 'resume' lifts the suspension; 'step' advances exactly N frames and leaves the game suspended…”framesinteger“action:'step' — frames to advance, 1..600 (default 1).”kindstring“action:'step' — 'physics' (default: exact physics ticks, max_physics_steps_per_frame pinned to 1) or 'process' (rendered frames).”speednumber“action:'speed' — user time scale in (0, 100]: 0.25 = quarter speed, 2 = double.”instancestring“Game instance to address (default 'main' = the editor's embedded game).”
- summer_game_inputcontrols a browser or desktopdescribed as changing data
“Drive the RUNNING game's input: a script of timed actions, keys and clicks, or record real input and replay it on a seeded instance.”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
9 inputs, 1 required
actionstringrequired“'script' schedules a timed sequence of synthetic inputs (SimulateInputScript); 'record_start'/'record_stop' capture the game's real input into res://.summer/re…”eventsarray“action:'script' (required) or 'replay' (instead of recording) — up to 1000 timed events; last event within 36000 frames / 600 s.”clockstring“action:'script' — whether at_frame ('frame', default, exact) or at_ms ('ms') schedules the events.”waitboolean“action:'script'|'replay' — wait for the last event to fire (default true; the engine caps a waited script at 20 s).”include_motionboolean“action:'record_start' — also record mouse/joypad motion events (default false; large).”save_asstring“action:'record_stop' — res://.summer/replays/<name>.json to write instead of a generated id.”recordingstring“action:'replay' — the res://.summer/replays/<id>.json path returned by record_stop.”seedinteger“action:'replay' — assert the replay is reproducible; only accepted on an instance started with summer_play {mode:'offscreen', deterministic:true} (else nondete…”instancestring“Game instance to address (default 'main' = the editor's embedded game).”
- summer_game_probereads or searches
“Read 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.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
5 inputs
treeobject“Include the live scene tree ({name, class, path, children}) built game-side on the SAME frame as the pixels.”propsarray“Up to 64 '<absolute path>:<property>' keys read on the same frame, e.g.”screenshotboolean“Capture the game viewport (default true).”max_diminteger“Longest image side in pixels, 16..4096 (default 1280); the frame is downscaled to fit.”instancestring“Game instance to address (default 'main' = the editor's embedded game).”
- summer_enable_plugindescribed as changing data
“Enable an editor plugin in res://addons/<name>/ and return the real result: enabled with its autoloads, or why it failed.”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
2 inputs, 1 required
pluginstringrequired“The plugin folder under res://addons/ (e.g.”timeoutMsinteger“How long the engine waits for the plugin to load (default 30000)”
- summer_docs_searchreads or searches
“Search 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 to…”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world yes
4 inputs, 1 required
querystringrequired“The task in plain words — what you are building, fixing, or looking for (e.g.”kindsarray“Restrict to these kinds (tool, skill, example, template, collection, reference).”limitinteger“Maximum results, 1-20 (default 8).”include_previewboolean“Include status: preview entries — not yet exercised in-engine by the Summer team (default true).”
- summer_docs_readreads or searches
“Load one library entry by id (<kind>/<slug>, as returned by summer_docs_search).”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
3 inputs, 1 required
idstringrequired“The entry id as returned by summer_docs_search: <kind>/<slug>, e.g.”partstring“'skill' = the body only (SKILL.md for skills; the markdown body for references; how-to-call for tools; the pin for templates).”maxCharactersinteger“Most characters of text to return (default 24000).”
- summer_engine_list_camera_bookmarksreads or searches
“List the camera viewpoints saved in this project: names, poses and dates.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
Takes no inputs.
- summer_engine_save_camera_bookmarkcreates or changes datadescribed as changing data
“Save 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.”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
4 inputs, 1 required
namestringrequired“Bookmark name for save/delete: 1-64 characters from A-Z a-z 0-9 _ - (e.g.”positionstring“save only.”look_atstring“save only.”fovnumber“save only.”
- summer_engine_delete_camera_bookmarkdeletesdescribed as changing data
“Delete one saved camera viewpoint by name.”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
1 input, 1 required
namestringrequired“Bookmark name for save/delete: 1-64 characters from A-Z a-z 0-9 _ - (e.g.”
- summer_engine_list_ui_actionsreads or searches
“List the editor's named actions (menu items and shortcuts) with labels and shortcuts, filtered by text.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
2 inputs
filterstring“mode:'list' only.”limitinteger“mode:'list' only.”
- summer_engine_invoke_ui_actioncontrols a browser or desktopdescribed as changing data
“Run one named editor action exactly as its menu item or shortcut would: open Project Settings, switch the main screen, toggle a panel.”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
1 input, 1 required
action_namestringrequired“mode:'invoke' only (required there).”
- summer_searchreads or searches
“Find any Summer operation by describing the job in plain words: engine, assets, store, pricing, analytics and the rest.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world yes
3 inputs, 1 required
querystringrequired“The job in plain words: "lower my game's price", "add a light to the scene".”areastring“Only this area: engine, assets, store, pricing, analytics...”limitinteger“Most results (default 5).”
- summer_calldescribed as changing data
“Run any Summer operation by name (from summer_search) with its input.”
Publisher declares: read-only no · destructive yes · idempotent no · open-world yes
5 inputs
opstring“The operation name, e.g.”namestring“Same as op.”inputobject“The operation's input, matching the schema summer_search returned.”dryRunboolean“Check and describe the call without doing it.”idempotencyKeystring“Retry key for writes; reuse it only to retry the identical call.”
- summer_store_toolsreads or searches
“The Summer store, publishing, board and Grow tools come from the hosted Summer Engine MCP and are not loaded.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world yes
Takes no inputs.
Each quoted sentence is the first sentence of the publisher’s own description. The kind of tool and the “changes data” mark are our AI model’s reading of that description, not something we tested: two differently worded runs had to agree, otherwise no label is shown, and nobody has checked them by hand. A tool without the “changes data” mark is described as only reading, searching or calculating, or the two runs did not agree. No tool was called. Read the publisher’s full description before relying on it. “Publisher declares” lists the hints the server itself sends with the tool (MCP annotations: read-only, destructive, idempotent, open-world); they are the publisher's claims, not checked by us. Inputs are the parameters in the tool's own input schema: name, declared type, whether it is required, and the first sentence of its description. Read 2026-10-23.
How well are its tools described?
Features #4 and #5
How clearly this server's own tool descriptions say what a tool does, and how consistent its tool list is. The first part is an AI model's yes/no reading of each description; the second part is counted. We do not turn it into a grade.
Descriptions
AI reading of each description
- Says what the tool does
- 100% of 93 tools
- Says what it returns
- 63% of 88 tools
- States limits, defaults or errors
- 43% of 81 tools
- Says when to use it
- 100% of 63 tools
- Items covered per tool
- 2.9 of 4 on average
Counted from the listing
- Parameters with a description
- 100% of 474
- Tools with a description
- 100% of 93
- Typical description length
- 258 characters
The tool set
Counted from the listing
- Tools
- 93
- Size of the list
- about 36,794 tokens for an agent to load (characters ÷ 4)
- Naming
- 93 of 93 names use snake_case
AI reading: easy to mix up
No pair found.
The AI items cover 93 of 93 tools: for a tool where two differently worded runs disagreed, that item is left out. They were not checked by hand, and no tool was called. “Easy to mix up” means two tools whose names or descriptions overlap without saying how they differ; the AI found none, comparing tools within groups of 40. We do not rate whether the tool set is complete or whether side effects are spelled out, because our AI reading of those was not reliable enough.
How do I add it to my client?
Config from the registry entry
From the npm package summer-engine
Our sandbox started this package on 2026-10-23 (a read-only session: no tool was called).
Add to CursorAn install link in the format Cursor documents, holding the Cursor config below. The command runs the publisher’s code on your machine.
Claude Desktop · claude_desktop_config.json (Settings → Developer → Edit Config)
{
"mcpServers": {
"summer": {
"command": "npx",
"args": [
"-y",
"summer-engine@4.5.0",
"mcp"
]
}
}
}Cursor · .cursor/mcp.json in a project, or ~/.cursor/mcp.json
{
"mcpServers": {
"summer": {
"command": "npx",
"args": [
"-y",
"summer-engine@4.5.0",
"mcp"
]
}
}
}VS Code · .vscode/mcp.json
{
"servers": {
"summer": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"summer-engine@4.5.0",
"mcp"
]
}
}
}VS Code (command line) · Bash or zsh terminal (macOS, Linux)
code --add-mcp '{"name":"summer","type":"stdio","command":"npx","args":["-y","summer-engine@4.5.0","mcp"]}'Claude Code
claude mcp add --transport stdio summer -- npx -y summer-engine@4.5.0 mcp
Try it in the MCP Inspector · runs on your machine, opens in your browser · Node 22.19+
npx @modelcontextprotocol/inspector@2.11.0 -- npx -y summer-engine@4.5.0 mcp
- Arguments are written as the registry entry gives them; a named one as “--name value”, the form the registry documentation shows.
- This runs the publisher's code on your machine (npx). Read its README first.
- The MCP Inspector lists the server's tools, resources and prompts; a tool you call there runs for real.
From the remote endpoint (Streamable HTTP)
Add to CursorAn install link in the format Cursor documents, holding the Cursor config below.
Claude Desktop or claude.ai
Settings → Connectors → Add custom connector, then paste: https://mcp.summerengine.com/mcp
Cursor · .cursor/mcp.json in a project, or ~/.cursor/mcp.json
{
"mcpServers": {
"summer": {
"url": "https://mcp.summerengine.com/mcp"
}
}
}VS Code · .vscode/mcp.json
{
"servers": {
"summer": {
"type": "http",
"url": "https://mcp.summerengine.com/mcp"
}
}
}VS Code (command line) · Bash or zsh terminal (macOS, Linux)
code --add-mcp '{"name":"summer","type":"http","url":"https://mcp.summerengine.com/mcp"}'Claude Code
claude mcp add --transport http summer https://mcp.summerengine.com/mcp
Try it in the MCP Inspector · runs on your machine, opens in your browser · Node 22.19+
npx @modelcontextprotocol/inspector@2.11.0 --server-url https://mcp.summerengine.com/mcp --transport http
- The server runs on the operator's infrastructure; it may ask you to sign in when you first connect.
- The MCP Inspector lists the server's tools, resources and prompts; a tool you call there runs for real.
Built from the server's registry entry with each client's documented format (checked 2026-10-14; the Cursor link and the VS Code command 2026-10-19; the MCP Inspector command 2026-10-21). Values in < > are yours to fill in; this page never contains a key. Where the server needs a setting the entry does not declare, it can still fail to start.
Can it be installed, and is it up to date?
Version pin · advisories
Listed version
- Registry lists
- 4.5.0
- Latest stable
- 4.6.0
- Status
- behind the latest release (1 releases, 1 days)
- Withdrawn
- no
Source: registry.npmjs.org · 2026-10-23. About the version the registry lists; a manual install may resolve to a different one.
Dependency advisories
Counted in the full dependency tree as resolved on 2026-10-23 (npm audit). Bars share one scale. The package itself has no known vulnerability (OSV.dev).
Integrity, provenance, license
- Integrity
- sha512-yr8hBtSyR9fIAaItc…
- Signature
- signed
- License
- MIT
Source: the package registry · 2026-10-23.
Usage
- Downloads
- 9,665 in the last month
Source: api.npmjs.org · 2026-10-23.
Does the registry listing match what we found?
Feature #6The registry verifies a package once, when it is published, and does not re-check it. A difference below is about the listing, not a judgement of the publisher.
| Registry says | We found | Result | Source · date |
|---|---|---|---|
| Remote endpoint mcp.summerengine.com/mcp | Endpoint answered and asked for sign-in | matches | our test · 2026-10-23 |
| No credential declared as required | Required sign-in | differs | our test · 2026-10-23 |
| Published package can be started | Started and answered | matches | our test · 2026-10-23 |
| Version 4.5.0 on npm | Exists and can be installed | matches | npm · 2026-10-23 |
| Repository github.com/summerengine/summer | Opens publicly | matches | api.github.com · 2026-10-23 |
Who made it?
Feature #7 · lineage
Facts about the publisher. We do not turn them into a trust score.
- Namespace
- io.github.SummerEngine
- GitHub owner
- an organization (SummerEngine)
- Build record
- signed
- Repository
- github.com/summerengine/summer
- Stars
- 88
- Repository age
- 181–365 days
- Last push
- 0–30 days ago
- Archived
- no
- Security policy
- SECURITY.md
Source: the registry entry and api.github.com · 2026-10-23; security policy read from GitHub · 2026-10-23.
Publish this server? Run these checks against it yourself before release, from your own machine: a server the command starts, or your own server at its URL after a one-time proof that you control it: npx protocolprobe-selftest.
Choosing
Record checks
Public records · not a safety rating8 of 9 record checks met
- #238 of 15,112 packages by monthly downloads
- #861 of 22,952 repositories by GitHub stars, tied with 6 others
- MetRegistry entry is active and says how to run itActive, with a package or a remote address.
- MetSource repository link opensThe linked GitHub repository is public.
- MetRepository is not archivedNot archived.
- MetCode pushed to the repository in the 90 days before our checkLast push 0-30 days before our check.
- MetRepository publishes a security policy (SECURITY.md)SECURITY.md found.
- MetPackage names its licence with a standard (SPDX) identifierMIT
- MetThe version the registry lists can be installed and is not withdrawnThe listed version exists; a newer one is out.
- Not metnpm package carries build provenance (attestation)Signed by npm, but no build attestation.
- MetNo known critical or high advisory in the package or its dependenciesNone known in the package or its dependency tree.
Read from public records only: the registry entry, npm/PyPI, GitHub and advisory databases, checked 2026-10-23. No tool was called. Only “met” and “not met” are counted, so the total differs between servers; a check that does not apply or that we could not run is listed, never counted against it. It is not a safety rating. How each check works · Leaderboards
Common questions about io.github.SummerEngine/summer
Answered from the data aboveIs io.github.SummerEngine/summer safe to install?
We do not rate servers as safe or unsafe. 8 of its 9 applicable record checks are met (facts from public records, each listed on this page). What the records show: Its source repository opens publicly. Its repository had a push in the last 90 days. A newer stable release exists than the one listed. The package itself has no known vulnerability (OSV.dev). Its full dependency tree has no known advisory. 56 of its tools describe changing data (our AI model's reading of the descriptions). These are facts with their sources on this page, not a safety guarantee, and we did not run its tools.
Is io.github.SummerEngine/summer free to use?
Its website (www.summerengine.com/pricing) describes a freemium pricing model. This is an AI-classified reading of the page on 2026-10-23, so check the page itself before relying on it.
Has io.github.SummerEngine/summer been security tested?
Partly. 4 of the 13 checks that apply to it were exercised. We started the package in an isolated sandbox and read what it declares, but this test round was read-only, so its tools were not called. No security verdict is published before verification.
What can io.github.SummerEngine/summer do?
It lists 93 tools. In our AI model's reading of their descriptions (two runs had to agree, nobody checked it by hand), they include tools that read or search, create or change data, delete, run code or commands, control a browser or desktop and generate content and more. We did not call any tool, so this describes the text, not the behaviour.
Can io.github.SummerEngine/summer change or delete data?
56 of its tools say in their description that they create, edit, delete, send or run something (our AI model's reading). We did not call any tool, so we cannot say what actually happens.
Does io.github.SummerEngine/summer publish a security policy?
Yes: its repository has a public security policy (github.com/summerengine/summer/blob/HEAD/SECURITY.md). That is the publisher's statement, not permission for us to test the server, and we call none of its tools.
Is the listed version current?
No. The registry lists 4.5.0; the latest stable release on npm is 4.6.0.
Where is the source code of io.github.SummerEngine/summer?
In github.com/summerengine/summer, which opens publicly.
Found this page useful?
Anonymous · no sign-inA quick, anonymous reaction — no account, no email. One per kind from your browser. The tally updates when the page is next refreshed, and it is only a rough count, never a safety rating or a measured number of people.
Similar servers
Same topic · AI-read
- io.github.Moha2005269/etabs-mcpETABS MCPalso has tools that controls a browser or desktop, creates or changes data, deletes, runs code or commands, generates content, does something else, reads or searchescompare with this one
- io.github.kivanccakmak/yaverYaveralso has tools that controls a browser or desktop, creates or changes data, deletes, runs code or commands, generates content, does something else, reads or searchescompare with this one
- io.github.yaver-io/yaverYaveralso has tools that controls a browser or desktop, creates or changes data, deletes, runs code or commands, generates content, does something else, reads or searchescompare with this one
- io.github.tomyud1/godot-mcpalso has tools that controls a browser or desktop, creates or changes data, deletes, runs code or commands, generates content, reads or searchescompare with this one
- io.github.IMNMV/clauderClaudeR - RStudio MCP Serveralso has tools that creates or changes data, deletes, runs code or commands, generates content, does something else, reads or searchescompare with this one
- io.github.SupportPages-io/wtfmWTFMalso has tools that controls a browser or desktop, creates or changes data, deletes, runs code or commands, generates content, reads or searchescompare with this one
Active servers whose topic is also “developer-tools” and that have at least one tool of the same kind; most kinds in common first, then most GitHub stars. The topic and the tool kinds are an AI model's reading of the publishers' descriptions, not checked by hand. Similar is not a recommendation.
Compare with another server
Side by side: registry entry, our read-only session, the tools and the 18 classification fields. Same values as each page; no score.
Security testing
What did we test, and what did we leave out?
18 checks · features #1, #2
Not probed (read-only run)
We started the package in an isolated sandbox and read what it declares, but this test round was read-only, so its tools were not called. No security score is given; a check we did not run is never counted as passed.
- Inventory: exercised
- Hidden instructions: exercised
- Real execution: not run · our policy
- Secret leak: not run · nothing to check it against
- Internal addresses: not run · our policy
- Unconfirmed changes: not run · our policy
- Bad input: not run · our policy
- Model requests: not run · nothing to check it against
- Sensitive questions: not run · nothing to check it against
- Folder boundary: not run · our policy
- Log leaks: not run · nothing to check it against
- Hidden content: exercised
- Fake assistant turns: exercised
- Token passthrough: not applicable
- Token audience: not applicable
- Sign-in redirect: not applicable
- Consent handling: not applicable
- Sign-in metadata: not applicable
4 exercised9 not run (reason given)5 not applicable
Each check ends in exactly one state: exercised, not run (with the reason), or not applicable (with the reason). 4 of the 13 checks that apply to it were exercised. We do not publish security-check outcomes for named servers.
- 1Inventory
tool-listReads the declared tools, resources and prompts.exercised - 2Hidden instructions
description-poisoningLooks for hidden instructions in tool descriptions.exercised - 12Hidden content
audience-hidingChecks resources that hide content from the user.exercised - 13Fake assistant turns
fake-assistant-turnChecks prompts that pose as the assistant's own words.exercised
- 3Real execution
real-executionCalls a tool and checks what really happens.This check calls the package's tools. This test round was read-only, so no tool was called; tools can act on outside services with the publisher's or a user's account.not run · our policy - 4Secret leak
canary-leakPlants a fake secret and checks whether it leaks.This check needs at least one successful tool call to have something to check, and no tool was called.not run · nothing to check it against - 5Internal addresses
ssrfChecks whether a tool can be steered to internal addresses.This check calls the package's tools. This test round was read-only, so no tool was called; tools can act on outside services with the publisher's or a user's account.not run · our policy - 6Unconfirmed changes
write-without-confirmationChecks whether tools that change data act without asking.This check calls the package's tools. This test round was read-only, so no tool was called; tools can act on outside services with the publisher's or a user's account.not run · our policy - 7Bad input
error-handlingSends bad input and watches how the server answers.This check calls the package's tools. This test round was read-only, so no tool was called; tools can act on outside services with the publisher's or a user's account.not run · our policy - 8Model requests
samplingChecks whether the server asks the client's model to act for it.This check needs at least one successful tool call to have something to check, and no tool was called.not run · nothing to check it against - 9Sensitive questions
elicitation-sensitive-dataChecks whether the server asks users for sensitive data.This check needs at least one successful tool call to have something to check, and no tool was called.not run · nothing to check it against - 10Folder boundary
root-boundaryChecks whether the server reaches outside the folders it was given.This check calls the package's tools. This test round was read-only, so no tool was called; tools can act on outside services with the publisher's or a user's account.not run · our policy - 11Log leaks
logging-side-channelChecks whether log messages carry data they should not.This check needs at least one successful tool call to have something to check, and no tool was called.not run · nothing to check it against
- 14Token passthrough
token-passthroughChecks whether the server forwards a user's token to other services.The server runs locally over standard input/output, so there is no sign-in flow to check.not applicable - 15Token audience
token-audience-validationChecks whether tokens meant for another service are accepted.The server runs locally over standard input/output, so there is no sign-in flow to check.not applicable - 16Sign-in redirect
open-redirectChecks the sign-in redirect for abuse.The server runs locally over standard input/output, so there is no sign-in flow to check.not applicable - 17Consent handling
confused-deputyChecks consent handling when one service acts for another.The server runs locally over standard input/output, so there is no sign-in flow to check.not applicable - 18Sign-in metadata
oauth-url-schemeChecks the published sign-in metadata for unsafe URLs.The server runs locally over standard input/output, so there is no sign-in flow to check.not applicable
Source: our own test in an isolated sandbox, 2026-10-23, mcp-runtime-engine@0.1.0. Which checks count and why follows our published scoring model. This server also has a remote test (1 of 18 applicable checks exercised).
What happened during the test?
Feature #8
The steps in order, as the test record holds them.
- 0 msStarted the published package in an isolated sandbox (read-only mode)
- 6,988 msConnected after 0 redirects.
- Read the inventory: 93 tools, 0 resources, 1 prompt.
- 8,086 msFinished: 4 checks exercised.
Reference
How is it classified?
18 fields
One value per field, each with its source. Fields written by AI models are marked. A field with no value says why.
“Free App Free Includes: No credit card needed 5 free AI messages a day, up to 30 a month Connect your engine with MCP for free Use the editor to create and export games manually”
“Not stated” means the source did not state it; “does not apply” means it does not apply to this kind of server; “our limit” means our own lookup failed. A linked value opens the directory filtered to the same value.
Cite or correct this page
Sources and corrections
Suggested citation
ProtocolProbe. “io.github.SummerEngine/summer: MCP server record.” Data checked 2026-10-23. https://protocolprobe.com/mcp/servers/io.github.SummerEngine/summer
Figures are valid for the date shown. Our facts on this page are CC BY 4.0: reuse them with a link and the check date. Quoted text (the publisher’s descriptions, website quotes, tool names) is not ours to license.
As JSON: this record in the API · API documentation.
Badge for your README
[](https://protocolprobe.com/mcp/servers/io.github.SummerEngine/summer)
It shows this server's record-check count: facts from public records, no tool called. It is not a security rating or a pass. It links here and updates after each data reload.
Something wrong, or is this yours?
If a fact here is wrong, tell us and we will re-check it. If you operate this server, you can run our checks on it yourself with the free self-test command; we call no server’s tools ourselves for anything shown here.
Write to hello@protocolprobe.com · corrections log · methodology