MCP server for interacting with the Scryfall MTG API
Summer Engine is installed from its publisher's own source and answers where it runs, so this marketplace is not in the path of a single call. There is no address here to send one to, and a panel that pretended otherwise would be showing you an answer we made up. Install it and call it from your own client — the Installation tab has the entry for each one.
What it does
The game engine built for AI. Any agent makes a multiplayer game and publishes it.
Quickstart
# 1 — add it to Claude Code
claude mcp add --scope user summer-engine-mcp '--' npx -y summer-engine mcp
# 2 — ask your agent for something these tools do
# summer_search_assets, summer_list_my_assets, summer_get_asset and 121 more
Summer Engine costs nothing on mcprush: there is no plan to choose here, no cap to set and nothing mcprush can bill you for.
Collected from a public index. Nobody has claimed this account, so nothing here was written by its author — claim it if it is yours.
Where are you running it?
Every route below installs the same thing and ends at the same approval screen. This one can run either way — at an address its publisher runs, or as a process under your own user, with your files and your network — and this marketplace is in the path of neither.
This is a public server: you run it yourself and this marketplace is not in the path. You need Node.js — the current LTS (24) is the safe choice; npx comes with it. Claude Code registers it in one command; --scope user makes it available in every project. The '--' is in quotes so that PowerShell passes it on.
claude mcp add --scope user summer-engine-mcp '--' npx -y summer-engine mcpReconnect, or start a new session, and the tools appear in the model’s tool list.
Its publisher also runs it at https://mcp.summerengine.com/mcp: nothing to start on your machine, and this marketplace is not in the path.
claude mcp add --scope user --transport http summer-engine-mcp https://mcp.summerengine.com/mcpOne config entry your client uses to start the process locally. A local server runs with your file system and your network, which is why it is priced without metering.
124 tools, with what each one reads, writes and reaches shown before you agree — the same list on every route above. Read the tool surface.
Tool surface
What the model actually sees. Descriptions are diffed on every release — see version history.
Search for game assets in the Summer Engine ecosystem. Free for all users with rate limits. Sources: - "library" (default) — Public asset library (25k+ community assets). Free. - "my_assets" — Your own generated/uploaded assets. Free. Query is optional. - "all" — Search both library and…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| query | string | yes | Natural language search, e.g. 'low-poly tree', 'sci-fi weapon'. For my_assets, can be empty to list recent. |
| assetType | string | no | Filter by asset type |
| limit | number | no | Max results (1-20) |
| source | string | no | Where to search: library (public 25k+), my_assets (your generated assets), all |
| style | string | no | The game's one art direction: clashing styles are left out, matches come first |
| preview | boolean | no | Also return one picture of the first 9 results, numbered in order, to see them before importing |
| includeCommunity | boolean | no | Also include people's own public AI generations |
List or search the signed-in user's generated and uploaded assets. Use this after generation jobs complete, when the user says "the model I made", "my last character", or when you need to retrieve an asset before importing it into the local project. Returns exact asset IDs plus file/import URLs.…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| query | string | no | Optional search term. Empty string lists recent assets. |
| assetType | string | no | Filter by asset type |
| limit | number | no | Max results (1-20) |
Fetch one asset by exact Summer asset ID. Use this after a generation job returns assetId/rigAssetId/animationAssetId, or after summer_list_my_assets/search results when you need the stable file URL, download URL, viewer URL, metadata, license, visibility, parent chain, or provider details.…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| assetId | string | yes | Summer ArtAssets id |
Get a downloadable URL for a specific asset file. Today this usually returns the Cloudinary URL plus Summer's download proxy. The response shape is future-proofed for signed URLs, so prefer this tool over handing users raw fileUrl when they explicitly ask to download. Cloud tool — works WITHOUT…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| assetId | string | yes | Summer ArtAssets id |
| role | string | no | Which file to download |
Import an exact Summer asset ID into the current project. Use this when the asset was just generated, selected from my assets, or returned by search. Unlike summer_import_asset, this does not search or guess: it fetches the asset by ID, downloads it through Summer Engine, and runs Godot's import…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| assetId | string | yes | Summer ArtAssets id |
| path | string | no | Optional target res:// path. If omitted, a path is inferred from asset type and filename. |
| parent | string | no | Optional parent node path. For 3D models only; imports and instantiates under this node. |
| scenePath | string | no | Required with parent. Exact res:// scene that receives the 3D model. |
| name | string | no | Optional scene node name when parent is provided. |
Search the asset library and import the best match into the project in one step. Use when the user wants a specific type of asset added: "Add a tree to the scene", "Import a wooden barrel". Searches, picks the top result, downloads and imports it, then optionally adds it to the scene. Requires…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| query | string | yes | What to find, e.g. 'low-poly tree', 'wooden crate' |
| parent | string | no | Parent node path to add the asset under, e.g. './World'. If omitted, only imports (no scene placement) |
| scenePath | string | no | Required with parent. Exact res:// target scene path. |
| assetType | string | no | Preferred asset type |
| source | string | no | Where to search before importing |
Search Poly Haven's CC0 HDRI library and import one as environment lighting. The single cheapest visual-quality upgrade for a 3D scene: a real HDRI sky lights and reflects the whole world. Searches ~1,000 CC0 HDRIs on Poly Haven's public API (no account, no key), downloads the .hdr/.exr through…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| query | string | no | What kind of sky/environment, e.g. 'sunset beach', 'overcast field', 'studio'. Omit when assetId is given. |
| assetId | string | no | Exact Poly Haven asset id (lowercase slug, e.g. 'kloppenheim_02'). Skips the search. |
| resolution | string | no | HDRI resolution. 2k (default) is right for most games; 4k for hero skies; 1k for quick blockouts. |
Discover the same Guided workflow recipes shown in Summer Engine Studio. Call without workflowId to list every workflow and its support level. Call with an id to get the exact starter prompt, ordered steps, required MCP tools, and honest limitations. A "manual" support level means Studio still…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| workflowId | string | no | Guided workflow id, e.g. sprite-sheet, character-pack, asset-pack, or component-compiler |
Read the person's approved planning board for this game: the look (palette, description, picture), the characters, the place, the first-minute storyboard and the cards they picked, with a version that changes when the board does. The look and the picked cards come back as images you can see. Read…
No parameter schema on file.
Generate an image using AI models via Summer Engine Studio. Known models: - "nano-banana-2" — High quality, supports txt2img and img2img (used when no model and no size is asked) - "gemini-flash" — Google Gemini 2.5 Flash, fast - "flux-2" — FLUX.2, good for specific styles Model ids…
No parameter schema on file.
Detect and crop every distinct game asset from an existing image asset sheet. Use the assetId returned by summer_generate_image (or another Summer image asset). The same guided workflow used in Studio removes the sheet background when needed, detects named/category-aware bounding boxes, crops…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| assetId | string | yes | Summer image asset ID to slice, usually returned by summer_generate_image |
Generate audio using AI providers via Summer Engine Studio. Capabilities: - "text_to_speech" — Convert text to spoken audio. Requires 'text'. Optional 'voiceId'. - "sound_effects" — Generate sound effects from description. Requires 'text'. Optional 'durationSeconds', 'modelId', 'loop'. -…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| capability | string | yes | Type of audio: text_to_speech, sound_effects, music, text_to_dialogue |
| text | string | no | Text for TTS, or description for sound effects |
| prompt | string | no | Music description (for 'music' capability) |
| voiceId | string | no | ElevenLabs voice ID for TTS |
| modelId | string | no | Model id. text_to_speech: an ElevenLabs model (e.g. 'eleven_multilingual_v2'). sound_effects: eleven_text_to_sound_v2, sonilo-sfx-1.1 or stable-audio-3-sfx; omit to use the person's approved default |
| durationSeconds | number | no | Duration in seconds for SFX or music |
| loop | boolean | no | sound_effects only: ask for a seamless loop (eleven_text_to_sound_v2 only) |
| inputs | array | no | Dialogue lines for text_to_dialogue |
| options | object | no | Provider params, spread at the SDK's top level. Voice tuning goes in options.voiceSettings with camelCase keys (stability, similarityBoost, style, speed, useSpeakerBoost); flat snake_case is silently |
Make one sound effect with several models (default three) and show the versions to the person on a Summer Studio page, where they listen and approve one or more. The approved model becomes their default for sound effects. Use it for the first sound effect in a chat after the person said yes to…
No parameter schema on file.
Read a sound-effect choice set from summer_generate_sfx_choices: whether the person decided ("pending" or "decided"), which versions they approved (with audioUrl, assetId and their note) and their default sound-effect model. waitSeconds (max …) waits for the decision before answering; call again…
No parameter schema on file.
Generate a 3D model via Summer Engine Studio. Available models: - "hunyuan" (default) — Hunyuan 3D v3.1 Pro, high quality - "trellis" — Trellis 2, fast and detailed - "meshy" — Meshy, legacy option Model ids are an ALLOWLIST, not a passthrough. An unrecognised id is rejected with 400…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| prompt | string | no | Description of the 3D model, e.g. 'a low-poly treasure chest' |
| kind | string | no | Generation type: text-to-3d, image-to-3d, texture |
| model | string | no | Model: hunyuan (default), trellis, meshy, or any fal-ai model ID |
| imageUrl | string | no | Source image URL for image-to-3d or texture |
| imageUrls | array | no | Up to four views for multi-image-to-3d |
| title | string | no | Asset or character title |
| idempotencyKey | string | no | Stable retry key so the same logical request is not billed or queued twice |
| assetIntent | string | no | Controls whether hidden reference preparation targets a rig-safe character pose or isolated object view |
| referencePreparation | string | no | Shared Studio reference-preparation policy; auto is recommended |
| rig | boolean | no | Auto-rig the generated model |
| animationNames | array | no | Animation names for the shared animated-character pipeline, e.g. Idle, Walk, Run, Jump |
| actionIds | array | no | Exact Meshy action ids for the shared animated-character pipeline |
| riggingHeightMeters | number | no | Character height used by auto-rigging |
| wait | boolean | no | Block until the job finishes (up to 10 min) and return the result. Default false returns the jobId at once; poll summer_check_job. |
| options | object | no | Provider-specific params (target_polycount, topology, art_style, etc.) |
Generate a video using AI models via Summer Engine Studio. Known models (text-to-video): - "ltx" (default) — LTX Video, fast - "kling" — Kling 2 Master, high quality - "kling-turbo" — Kling 2.5 Turbo Pro - "minimax" — MiniMax - "veo3" — Google Veo 3, premium Known models…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| prompt | string | yes | Description of the video content |
| model | string | no | Model name: ltx, kling, kling-turbo, minimax, veo3 (or any new model) |
| imageUrl | string | no | Source image URL — if provided, uses image-to-video mode |
| duration | number | no | Duration in seconds (5 or 10) |
| aspectRatio | string | no | Aspect ratio: 16:9, 9:16, 1:1, 4:3 |
| options | object | no | Provider-specific params (negative_prompt, num_frames, guidance_scale, etc.) |
Check the status of an async generation job. summer_generate_3d and summer_generate_motion return a jobId; call this with it every 15-30 seconds until status is "completed" or "failed". A completed job carries the result: assetId (3D), rigAssetId (rig=true), animationAssetId or result.assets…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| jobId | string | yes | The job ID returned by an async generation tool |
Generate animation clips for a rigged 3D model via Summer Engine Studio. Backends (pick one): - "meshy-library" (default) — a curated mocap clip by motionName on a Summer-rigged humanoid (rigAssetId from summer_generate_3d with options.rig=true). Fast (~30s), real mocap quality.…
No parameter schema on file.
Quick overview of all errors and warnings from the editor console, the runtime debugger, and script errors together. Returns error counts and a guidance message. ALWAYS call this FIRST before diving into summer_get_console or summer_get_debugger_errors. It tells you where to look. It is also THE…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| includeAll | boolean | no | Return the full engine diagnostics payload untrimmed (no severity reordering, no info-noise cap). |
Read recent messages from the editor's Output panel (print() output, editor-side warnings and errors). SCOPE: the editor console ONLY. Runtime errors from a played game are collected by the debugger, not the console — right after summer_play this tool can honestly report errors 0 while…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| max_lines | number | no | Max lines to return after dedupe (default 100) |
| filter | string | no | Only return lines containing this string |
| type | string | no | Filter by message type at the engine level |
| errors_only | boolean | no | Drop info/std noise, keep errors and warnings (default true) |
| strict_errors | boolean | no | Drop warnings too — return errors only |
| raw | boolean | no | Bypass dedupe and level filtering — return engine output verbatim |
Clear the editor's Output panel. Useful before running the game to get a clean slate for error checking.
No parameter schema on file.
Read runtime errors from the debugger. These occur while the game is running (null references, missing nodes, physics errors). Different from console output — these come from the debugger, not print statements. For warning text, use summer_get_debugger_warnings (separate tool — engine returns…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| max_errors | number | no | Max errors to return after dedupe |
| include_stack | boolean | no | Include stack traces for each error |
| include_warnings | boolean | no | Forward-compat flag — when engine supports it, returns warning bodies in the same call. Today the engine ignores it; use summer_get_debugger_warnings instead. |
| raw | boolean | no | Bypass dedupe — return engine output verbatim |
Read runtime warnings from the debugger panel. Warnings are non-fatal issues the game flags during play: missing optional resources, dead signal connections, deprecated API use, large allocations, physics warnings, etc. Returns structured entries with file/line/function/error_descr/callstack —…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| max_warnings | number | no | Max warnings to return after dedupe |
| include_stack | boolean | no | Include stack traces |
| raw | boolean | no | Bypass dedupe |
| Parameter | Type | Required | Notes |
|---|---|---|---|
| scene | string | no | Scene to run instead of main scene, e.g. 'res://levels/test_level.tscn' |
Stop the running game. Use after runtime verification or when you intentionally need to restart the running instance; ordinary editor scene mutations do not require a blanket stop. Pass instance to stop ONE offscreen instance started with summer_play {instance, mode:'offscreen'} (the result…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| instance | string | no | Offscreen instance name to stop (from summer_play {instance}); omit for the main embedded game. |
Check if the game is currently running. Returns the active scene path if running.
No parameter schema on file.
Check a GDScript file for parse/compile errors without running the game. Use after writing or editing a .gd file to verify it compiles. Returns line numbers, error messages, and severity. Much faster than running the game to discover script errors.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| path | string | yes | Script path, e.g. 'res://scripts/player.gd' or 'res://player_controller.gd' |
Create a support-ready Markdown report for /summer debug. Use this when the user says "/summer debug", asks to send Summer a bug report, or needs a portable artifact from a failing Codex, cloud or agent session. The report includes Summer doctor checks, engine health, diagnostics, console output,…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| issue | string | no | User-visible issue or repro summary. |
| output_path | string | no | Where to write the Markdown report. Defaults to the open project root, or the current working directory if no project is open. |
| include_play_session | boolean | no | Launch the game briefly and collect post-play diagnostics. |
| play_wait_ms | number | no | Milliseconds to wait after launching the game when include_play_session is true. |
| max_console_lines | number | no | Console lines to include after filtering/deduping. |
| max_debugger_entries | number | no | Debugger error/warning entries to include after filtering/deduping. |
| include_doctor | boolean | no | Include summer doctor checks in the report. |
Start here for any substantial AI game-building task. Takes the user's goal and returns the recommended Summer workflow: skill routes, MCP tool groups, host-file boundaries, asset policy, user confirmation gates, and verification steps. This is the router before deep skills and before mutating…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| goal | string | yes | The user's game-building goal or task. |
| mode | string | no | Optional task mode override. |
| target | string | no | Optional content/system target override. |
| assetPolicy | string | no | How aggressively to use paid asset generation. |
| verification | string | no | How much engine verification the agent should plan for. |
AI-first operating guide for Summer Engine MCP. Call this at the start of a fresh chat before touching scenes. It returns the observe-first loop, content routing (reuse -> import -> generate -> script), physical invariants, cost rules, the verification ladder, honesty rules, anti-patterns, and…
No parameter schema on file.
Get essential project context before editing. The default payload is COMPACT (a few KB): - project name and project path, current scene path, main scene path - sceneSummary: the open scene's root node and node count (not its tree) - health: the engine's scalar status fields plus capability COUNTS…
No parameter schema on file.
Open the project's configured main scene from project settings. Safer than guessing scene names like main.tscn/Main.tscn. Call this when you get "no scene open".
No parameter schema on file.
Set a project setting in project.godot. Common settings: - "application/config/name" — project name - "application/run/main_scene" — main scene path - "rendering/renderer/rendering_method" — "forward_plus", "mobile", or "gl_compatibility" - "display/window/size/viewport_width" — window width -…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| key | string | yes | Setting key path, e.g. 'application/config/name' |
| value | yes | Setting value |
Set up input controls. Creates the action if it doesn't exist, then binds events to it. Event format: - Keyboard: { type: "key", key: "W" } or { type: "key", key: "Space" } - Mouse button: { type: "mouse_button", button: 1 } (1=left, 2=right, 3=middle) - Common keys: "W", "A", "S", "D", "Space",…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | Action name, e.g. 'jump', 'move_forward', 'interact' |
| events | array | yes | Array of input event objects |
Get a scene tree. Pass scenePath to read that exact in-memory/open scene; omit it only when you intentionally want the currently visible editor scene. Scene mutations load their explicit target, so a follow-up targeted read does not require OpenScene. The engine defaults to depth 2 and limit 200…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| scenePath | string | no | Exact res:// scene path to inspect |
| depth | integer | no | Maximum tree depth to walk. Engine default is 2 — pass a larger value for deep hierarchies. |
| limit | integer | no | Maximum number of nodes to return. Engine default is 200. |
Download a file from a URL and import it into the project. Triggers Godot's full import pipeline — generates .import files, extracts textures from .glb models, creates materials. Use this for: - 3D models (.glb, .gltf, .obj) - Textures (.png, .jpg, .webp) - Audio (.ogg, .wav, .mp3) The path is…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| url | string | yes | HTTP(S) URL to download from |
| path | string | no | Target path in project, e.g. 'res://assets/player.glb'. Auto-inferred from URL if omitted. |
Download multiple files from URLs in one operation. Performs a single filesystem scan after all downloads, which is faster than importing one at a time.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| imports | array | yes | Array of {url, path} objects |
Create a new empty scene file. Writes a minimal .tscn through the identity-bound engine with a create-only guard: it fails if the path already exists, and it never touches the currently open scene. The new scene is on disk but NOT opened. Call summer_open_scene to start editing it, then…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| path | string | yes | New scene path, e.g. 'res://scenes/empty_level.tscn' |
| rootName | string | no | Root node name for the new scene |
| rootType | string | no | Root node type. Default 'Node3D' (3D scenes); common alternatives: 'Node2D' (2D scenes), 'Control' (UI scenes), 'Node' (logic-only). |
| allow_temporary_scene_mutation | boolean | no | DEPRECATED, ignored. Scene creation no longer mutates any open scene; kept only so older callers don't break. |
Add a new node to the scene tree. Pass the exact res:// scenePath to mutate. The scene does not need to be the active editor tab. Common node types: - 3D: Node3D, MeshInstance3D, CharacterBody3D, RigidBody3D, StaticBody3D, Camera3D, DirectionalLight3D, OmniLight3D, SpotLight3D, WorldEnvironment,…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| scenePath | string | yes | Target scene path, e.g. 'res://main.tscn' |
| parent | string | yes | Parent node path, e.g. './World' or './World/Enemies' |
| type | string | yes | Summer Engine node type, e.g. 'MeshInstance3D', 'CharacterBody3D' |
| name | string | yes | Name for the new node, e.g. 'Player', 'MainCamera' |
Set a property on a node. This is the primary way to configure nodes after adding them. VALUE FORMAT — Godot string syntax for complex types: - Vector3: "Vector3(0, 10, 0)" — position, scale, rotation_degrees - Vector2: "Vector2(100, 200)" — 2D position, size - Color: "Color(1, 0.5, 0, 1)" —…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| scenePath | string | yes | Target scene path, e.g. 'res://main.tscn' |
| path | string | yes | Node path, e.g. './World/Player' |
| key | string | yes | Property name, e.g. 'position', 'mesh', 'visible' |
| value | yes | Value in Summer Engine variant-string format for complex types, native JSON for primitives |
Set a nested property on a resource attached to a node. Use when you need to modify a sub-property of a resource, like: - CollisionShape3D shape size: nodePath="./Player/CollisionShape3D", resourceProperty="shape", subProperty="size", value="Vector3(1, 2, 1)" - Material albedo color:…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| scenePath | string | yes | Target scene path, e.g. 'res://main.tscn' |
| nodePath | string | yes | Node path, e.g. './Player/CollisionShape3D' |
| resourceProperty | string | yes | Resource property on the node, e.g. 'shape', 'mesh', 'material_override' |
| subProperty | string | yes | Property on the resource, e.g. 'size', 'radius', 'albedo_color' |
| value | yes | Value in Summer Engine variant-string format |
Remove a node from the scene tree. All children are removed too. Cannot remove the root node. Supports undo. Destructive operation: do not delete multiple top-level nodes unless the user explicitly requests destructive changes.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| scenePath | string | yes | Target scene path, e.g. 'res://main.tscn' |
| path | string | yes | Node path to remove, e.g. './World/OldEnemy' |
Save an explicit scene to disk. Mutation tools already append one save; use this for a standalone save or save-as.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| scenePath | string | yes | Scene to save, e.g. 'res://main.tscn' |
| path | string | no | Optional save-as path, e.g. 'res://levels/level2.tscn' |
Open a scene file in the editor. Use this to switch between scenes. Do not guess paths. Prefer: 1) summer_get_project_context (read mainScene) 2) summer_open_main_scene (open known main scene) 3) summer_open_scene only when user gave an explicit path.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| path | string | yes | Scene path, e.g. 'res://main.tscn' or 'res://levels/level1.tscn' |
Add an existing scene or 3D model as a child node. Use this to: - Add a .tscn prefab (reusable scene) as a child - Add a .glb/.gltf 3D model into the scene - Compose scenes from smaller scenes (e.g., add a "Player" scene into a "Level" scene) The scene must already exist in the project. Use…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| scenePath | string | yes | Target scene to receive the instance, e.g. 'res://main.tscn' |
| parent | string | yes | Parent node path, e.g. './World' |
| scene | string | yes | Scene/model path, e.g. 'res://player.tscn' or 'res://models/tree.glb' |
| name | string | no | Override the instance name |
| target_size | number | no | 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). Strongly recommended for imported .glb/.gltf mod |
| position | array | no | Parent-local position [x, y, z] set right after the instance is created. |
| rotation_degrees | array | no | Parent-local rotation in degrees [x, y, z] (Godot rotation_degrees). |
| scale | array | no | Local scale [x, y, z]. Not with target_size. |
| transform | string | no | Full local transform as "Transform3D(xx, xy, xz, yx, yy, yz, zx, zy, zz, ox, oy, oz)" (Godot row-major basis, then origin). Not with position/rotation_degrees/scale/target_size. |
Connect a signal between two nodes so the connection is SAVED in the scene. Signals are Godot's event system — they notify when something happens. Common signals: - "body_entered" / "body_exited" — Area3D/Area2D detects physics bodies - "pressed" — Button clicked - "timeout" — Timer finished -…
No parameter schema on file.
Select a node in the editor's scene tree and show it in the inspector panel. Useful for focusing the editor on a specific node.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| nodePath | string | yes | Node path to select |
| scenePath | string | no | Open this scene first, then select the node |
Replace a node with a different scene/model or node type, keeping its parent, sibling index, name, transform and property overrides, and the children the scene added under it. Use it to swap a kit piece for another (a wall host for a door host), a placeholder for a prefab, or a StaticBody3D for a…
No parameter schema on file.
Get all editable properties of a node with their current values, types, and resource info. Call this before modifying a node to understand its current state. Returns every property the Godot inspector would show. Each prop carries the engine's raw Variant.Type integer as "type" plus its name as…
No parameter schema on file.
Read a resource: a material, mesh, shape, texture, environment, or a scene/model file. Two forms, pass exactly one: - path: a resource FILE ('res://materials/ground.tres', a mesh 'res://kit/meshes/wall_01.res', 'res://models/player.glb'), loaded read-only in the editor. A Mesh returns its AABB,…
No parameter schema on file.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| scenePath | string | no | — |
| ops | array | yes | Array of operation objects, each with 'op' plus its parameters |
| receipt | string | no | full (default): every engine receipt. summary: counts, failures with op index, created node paths only (under 5 KB). |
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
- Every tool, no call limit
- No card, and mcprush charges nothing for it
- Source published under MIT
- Runs on your machine — nothing of it reaches our gateway
- Nothing to cap, because mcprush bills nothing
What counts against your monthly calls
| Tool | Unit | Calls used | Out of the allowance |
|---|
Nothing here is billable: mcprush charges nothing to install Summer Engine or to call it, at any volume.
Two independent axes, because powerful and malicious are different questions. The grade is threat only. The capability level is blast radius, and it is never a penalty on the grade — it is priced as one subtract-only term in the score, where you can see it.
| Term | Level | What it prices | Points |
|---|---|---|---|
| capability-exposure | critical | capability blast radius (critical) — client exposure if the model is manipulated | −10 |
| verification-discount | repo | publisher verification (public source) — no provenance, but the source is public and inspectable | −1 |
| coverage-honesty | source | inspection depth (source) — how much of the target the scan could see | −0 |
What the scan could actually read
A grade is only as meaningful as its coverage, so the scanner publishes its own depth before it publishes its result.
Tools were statically extracted from the published source (124 recovered), not enumerated from a running server. Tool-poisoning, Unicode-smuggling, capability and toxic-flow analysis ran on this inferred surface, but a mis-parsed registration could be missed or mis-attributed, so tool-derived findings are capped below “confirmed”. To grade the real runtime surface, scan the running server: --command "npx -y <package>".
1 of the 124 recovered tools are registered only when statusTool || STORE_TOOLS_STATUS in registries._registeredTools is false (dist/mcp/hosted-mount.js:101) — typically when a key or option is configured. They are part of the server's surface and were analysed; a server started without that configuration exposes only the other 121.
2 of the 124 recovered tools are registered only when !tool || tools[alias] is false (dist/mcp/ops-surface.js:172) — typically when a key or option is configured. They are part of the server's surface and were analysed; a server started without that configuration exposes only the other 121.
Capability — what it could do if the model were manipulated
Tags derived from each tool’s schema and the implementation, not from what the tool calls itself. critical is the level these add up to.
121 tools are registered unconditionally · (1) 1 more only when statusTool || STORE_TOOLS_STATUS in registries._registeredTools is false (dist/mcp/hosted-mount.js:101) · (2) 2 more only when !tool || tools[alias] is false (dist/mcp/ops-surface.js:172) — typically when a key or option is configured. All 124 are in the table below and were analysed; the conditional ones are marked.
| Tool | Capability tags | Why the tag was assigned |
|---|---|---|
| summer_store_tools conditional (1) | no tags | |
| summer_docs_search conditional (2) | no tags | |
| summer_docs_read conditional (2) | no tags | |
| summer_search | untrusted-input | untrusted-input: declares openWorldHint: true (interacts with entities outside the server) |
| summer_call | external-sink | external-sink: declares readOnlyHint: false, destructiveHint: true, openWorldHint: true |
| summer_app_guide | no tags | |
| summer_app_list | no tags | |
| summer_app_create | no tags | |
| summer_app_publish | no tags | |
| summer_app_get | no tags | |
| summer_app_update | no tags | |
| summer_app_events | no tags | |
| summer_app_page | no tags | |
| summer_app_screenshot | no tags | |
| summer_app_data | no tags | |
| summer_app_tools | no tags | |
| summer_app_call | no tags | |
| summer_app_report_gap | no tags | |
| summer_app_dock | no tags | |
| summer_enable_plugin | no tags | |
| summer_search_assets | no tags | |
| summer_list_my_assets | no tags | |
| summer_get_asset | untrusted-input | untrusted-input: keyword "fetch" |
| summer_get_asset_download_url | untrusted-input | untrusted-input: keyword "download" |
| summer_import_asset_by_id | no tags | |
| summer_import_asset | no tags | |
| summer_import_hdri | untrusted-input | untrusted-input: keyword "download" |
| summer_scene_audit | no tags | |
| summer_export_game | no tags | |
| summer_export_templates | untrusted-input | untrusted-input: keyword "download" |
| summer_capture_gameplay | no tags | |
| summer_publish_build | untrusted-input | untrusted-input: keyword "download" |
| summer_get_diagnostics | no tags | |
| summer_get_console | no tags | |
| summer_clear_console | no tags | |
| summer_get_debugger_errors | no tags | |
| summer_get_debugger_warnings | no tags | |
| summer_play | no tags | |
| summer_stop | no tags | |
| summer_is_running | no tags | |
| summer_get_script_errors | no tags | |
| summer_create_debug_report | no tags | |
| summer_wait_for_event | no tags | |
| summer_recent_events | no tags | |
| summer_fabricate_3d | no tags | |
| summer_library_feedback | no tags | |
| summer_read_file | sensitive-source | sensitive-source: keyword "read_file" |
| summer_grep | no tags | |
| summer_write_file | file-write | file-write: keyword "write_file" in tool name |
| summer_replace_text | no tags | |
| summer_get_studio_workflow | no tags | |
| summer_get_board | no tags | |
| summer_generate_image | external-sink | external-sink: handler sends an HTTP POST (fetch(${gatewayUrl}${endpoint}) at dist/mcp/tools/generate-tools.js:93 |
| summer_slice_asset_sheet | external-sink | external-sink: handler sends an HTTP POST (fetch(${gatewayUrl}${endpoint}) at dist/mcp/tools/generate-tools.js:93 |
| summer_generate_audio | external-sink | external-sink: handler sends an HTTP POST (fetch(${gatewayUrl}${endpoint}) at dist/mcp/tools/generate-tools.js:93 |
| summer_generate_sfx_choices | no tags | |
| summer_get_choices | no tags | |
| summer_generate_3d | external-sink | external-sink: handler sends an HTTP POST (fetch(${gatewayUrl}${endpoint}) at dist/mcp/tools/generate-tools.js:93 |
| summer_generate_video | external-sink | external-sink: handler sends an HTTP POST (fetch(${gatewayUrl}${endpoint}) at dist/mcp/tools/generate-tools.js:93 |
| summer_check_job | no tags | |
| summer_generate_motion | external-sink | external-sink: handler sends an HTTP POST (fetch(${gatewayUrl}${endpoint}) at dist/mcp/tools/generate-tools.js:93 |
| summer_search_library | no tags | |
| summer_read_library | no tags | |
| summer_open | no tags | |
| summer_world_snapshot | no tags | |
| summer_snapshot_diff | no tags | |
| summer_get_runtime_tree | no tags | |
| summer_inspect_runtime_node | no tags | |
| summer_inspect_asset | no tags | |
| summer_place_adjacent | no tags | |
| summer_attach_to_surface | no tags | |
| summer_repeat_along | no tags | |
| summer_connect_ports | no tags | |
| summer_raycast | no tags | |
| summer_measure | no tags | |
| summer_start_game_task | no tags | |
| summer_get_agent_playbook | no tags | |
| summer_get_project_context | no tags | |
| summer_open_main_scene | no tags | |
| summer_project_setting | no tags | |
| summer_input_map_bind | no tags | |
| summer_get_scene_tree | no tags | |
| summer_import_from_url | untrusted-input | untrusted-input: keyword "download", parameter "url" with "download" in the description |
| summer_import_from_url_batch | untrusted-input | untrusted-input: keyword "download" |
| summer_runtime_set | no tags | |
| summer_runtime_call | no tags | |
| summer_runtime_spawn | code-exec | code-exec: keyword "spawn" in tool name |
| summer_runtime_animate | no tags | |
| summer_game_control | no tags | |
| summer_game_input | no tags | |
| summer_game_probe | no tags | |
| summer_create_scene | no tags | |
| summer_add_node | no tags | |
| summer_set_prop | no tags | |
| summer_set_resource_property | no tags | |
| summer_remove_node | no tags | |
| summer_save_scene | no tags | |
| summer_open_scene | no tags | |
| summer_instantiate_scene | no tags | |
| summer_connect_signal | no tags | |
| summer_select_node | no tags | |
| summer_replace_node | no tags | |
| summer_inspect_node | no tags | |
| summer_inspect_resource | no tags | |
| summer_batch | no tags | |
| summer_run_script | code-exec | code-exec: keyword "run_script" in tool name |
| summer_run_editor_script | no tags | |
| summer_api_docs | untrusted-input | untrusted-input: keyword "fetch" |
| summer_frame_nodes | no tags | |
| summer_shot_sheet | no tags | |
| summer_debug_views | no tags | |
| summer_zoom | no tags | |
| summer_frame_shot | no tags | |
| summer_test_placement | no tags | |
| summer_snap_to_surface | no tags | |
| summer_align_distribute_3d | no tags | |
| summer_navigation_probe | no tags | |
| summer_starcast | no tags | |
| summer_ui_actions | no tags | |
| summer_ui_tree | no tags | |
| summer_ui_activate | no tags | |
| summer_ui_screenshot | no tags | |
| summer_screenshot | no tags | |
| summer_camera_bookmark | no tags |
Toxic-flow graph
The lethal trifecta, checked as a graph rather than as a checklist: untrusted input, a sensitive source and an external sink have to meet before there is a path worth worrying about.
Supply chain and provenance
This is the first scan of this surface here, so there is nothing yet to compare it against.
Every result on this tab comes from one deterministic pass over the published package — offline, rule by rule, and auditable line by line above. Same methodology version, same bytes, same score.
Release history
Always latest — the install command names no version, so it installs the newest release when it runs; the current release on file is 4.3.0. Pin a release below and the command asks for exactly that one.
No release note was published with this version.
No release note was published with this version.
- The version this listing was on when mcprush began following its releases. The registry was not asked when it shipped, so this row carries no date.
One review per account, from a signed-in account that does not publish this listing. Nothing else is asked — you can say what you think before you install it. Publishers can reply once per review, and a review can be edited or deleted by whoever wrote it.
Any signed-in account that does not publish Summer Engine can review it, once — before installing it or after. A review from an account that has installed it is marked as one.
Nobody has reviewed this listing. The rating on the card is the mean of the reviews written here and nothing else, so there is no rating until somebody writes the first — which takes a signed-in account that does not publish it, and nothing else.