Back to Browse

Summer MCP Server

Developer ToolsModerate6.5MCP RegistryLocalRemote
Free

Server data from the Official MCP Registry

The game engine built for AI. Any agent makes a multiplayer game and publishes it.

About

The game engine built for AI. Any agent makes a multiplayer game and publishes it.

Remote endpoints: streamable-http: https://mcp.summerengine.com/mcp

Security Report

6.5
Moderate6.5Moderate Risk

Valid MCP server (2 strong, 2 medium validity signals). 3 known CVEs in dependencies (1 critical, 1 high severity) Package registry verified. Imported from the Official MCP Registry.

Endpoint verified · Requires authentication · 5 issues found

Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.

Permissions Required

This plugin requests these system permissions. Most are normal for its category.

HTTP Network Access

Connects to external APIs or services over the internet.

How to Install & Connect

Available as Local & Remote

This plugin can run on your machine or connect to a hosted endpoint. during install.

Documentation

View on GitHub

From the project's GitHub README.

Summer Engine: MCP server, CLI and skills

The game engine built for AI.

Any agent builds, tests and publishes a full multiplayer game. MCP server · game-dev skills · summer CLI, in one npm package: summer-engine.

npm downloads license

Website · Docs · CLI setup · MCP setup


Install

  • Chat apps (Claude, ChatGPT, Cursor...): add https://mcp.summerengine.com/mcp. Nothing to install.
  • Homebrew: brew install summerengine/tap/summer
  • npm (Node 20+): npm install -g summer-engine

CLI only (summer-engine 4.2.0 or newer), no MCP server: summer setup --cli. summer ops search "publish my game" finds any operation, signed in or not.

Connect

Cloud work: https://mcp.summerengine.com/mcp. Nothing to install. Add the URL to your agent and sign in to your Summer account once. Your agent then makes assets (images, 3D models, motion, sound effects, music, voices, video), searches and downloads your Summer asset library, plans games, and runs your projects, the store, publishing, prices, analytics, A/B tests, your team and Studio. It has no engine tools: for those, use the local server below.

AgentAdd the hosted server
Claude Codeclaude mcp add --transport http summer-cloud https://mcp.summerengine.com/mcp, then /mcp to sign in
Codexcodex mcp add summer-cloud --url https://mcp.summerengine.com/mcp, then codex mcp login summer-cloud
CursorAdd to Cursor, or add "summer-cloud": {"url": "https://mcp.summerengine.com/mcp"} under mcpServers in ~/.cursor/mcp.json
VS CodeAdd to VS Code, or code --add-mcp '{"name":"summer-cloud","type":"http","url":"https://mcp.summerengine.com/mcp"}'
Devin Desktop (formerly Windsurf)add "summer-cloud": {"serverUrl": "https://mcp.summerengine.com/mcp"} under mcpServers in ~/.config/devin/mcp_config.json (Windows %APPDATA%\devin\mcp_config.json)
Claude Desktop, claude.aiSettings > Connectors > Add custom connector, then paste the URL

Engine work: npx -y summer-engine@latest setup <agent> --yes (needs Node 20+). It writes the local server (summer mcp) into your agent's config with the skills. The local server drives the Summer Engine app on your machine: build scenes, write scripts, play the game, take screenshots, read errors. After summer login it also runs every cloud operation, so your agent needs one server. Or paste the prompt in Get started and your agent does every step.

CLI only (summer-engine 4.2.0 or newer): npx -y summer-engine@latest setup <agent> --cli --yes. No MCP server: your agent runs Summer as commands in its shell. Setup installs the skills for your agent, with summer-cli, the guide to the commands, and writes no MCP entry. Your agent signs you in with summer login, finds an operation with summer ops search "<what you want>" and runs it as summer <area> <action> --<field> <value>, with --dry-run, --wait and --json. Engine commands (summer engine …) drive the Summer Engine app on your machine. Each skill ends with a table of the command for every tool it names. Add --assets-only for only the asset skills. --no-mcp is the same as --cli.

ChatGPT and Claude's connector directory use two reviewed store versions with a fixed tool list: https://mcp.summerengine.com/chatgpt (games, assets and generation; no publishing, no billing links) and https://mcp.summerengine.com/directory (the store, publishing and Grow reads; no image, 3D, audio or video generation). They keep their 3.x tool names and have no summer_search or summer_call. For everything else, use /mcp.

What this is

Summer Engine is the game engine built for AI. This repo connects your AI coding agent (Claude Code, Cursor, Codex, Copilot and many more) to it: the agent builds a whole game in the engine, tests it, publishes it to summer.games and reads how players play it.

PartWhat it does
MCP server (summer mcp)Tools your agent calls to drive the running editor: build scenes, write scripts, play the game, take screenshots, read errors. After summer login it also runs the cloud operations: assets, plans, the store, publishing, prices and analytics.
SkillsGame-dev know-how your agent loads: movement, combat, multiplayer, VFX, audio, UI, level design and more.
CLI (summer)Installs the engine, signs you in, sets up your agent, creates projects from templates and publishes games.

This repo is not the engine itself. The CLI downloads the Summer Engine app for you.

With Summer installed, your agent can:

  • Build real games: scenes, scripts, physics and UI, through live MCP tools.
  • Build multiplayer games on Summer's own networking: matchmaking, parties, leaderboards, player data and world saves.
  • Add analytics to the game and read it back: store page views, launches, play sessions, play time and your own events.
  • Publish games to the summer.games store: the store page, art, the build, a private preview link and the release. Summer's store review runs before anything goes live.
  • Use proven recipes: skills, templates and references, all searchable through one index.
  • Check its own work: play the game, take screenshots, read the debugger, press real keys.
  • Resume any project: .summer/ project memory lets a fresh agent pick up where the last one stopped.

You decide what your agent may do

Studio > Settings > Agent permissions has six switches. They apply to every app you connect, like Claude or ChatGPT. These defaults apply now. You can change them soon. Until then, Summer Games still asks the game's owner before an agent publishes, and price, A/B test and member changes ask you first.

SwitchDefaultWhat the agent may do without asking
Make and buildonEdit drafts, scenes, plans and uploads, and start builds.
Spend creditsonGenerate assets and run paid builds, within your credits and your auto top-up limit.
PublishonPublish store pages, versions and releases. Summer's store review still runs first.
Prices and live changesonChange prices and sales, start or stop A/B tests, change member roles.
Delete for goodoff: asksDelete games, assets, pages and releases.
Contact peopleoff: asksSend invites and other emails to real people.

When a switch is off, the agent asks you first. It gives you a link (https://www.summerengine.com/studio/approvals/<id>), and an open Studio tab shows the request with Approve and Decline. Nothing changes until you approve. The agent always asks before it changes agent permissions or auto top-up, enters a jam, or changes the analytics event limit. Studio > Settings > Agent activity lists what agents changed or asked for, newest first, with Undo for prices, sales, country prices, member roles, team names and the event limit.

Generation and paid builds spend your Summer credits. Turn on auto top-up in Studio Billing: when your credits fall below an amount you pick, Summer adds the amount you choose, up to a monthly limit you set. Agents can never change auto top-up on their own. When credits run out, your agent gets the error no_credits with one link: https://www.summerengine.com/studio/credits.

Summer never installs software without your explicit confirmation. Library entries are structurally prevented (by a capability lint in CI) from instructing agents to touch the network, credentials, or package managers.

Get started: one prompt

Open your AI agent (Claude Code, Cursor, Codex, Copilot, Devin Desktop, etc.) and paste:

Install Summer Engine and let's make a game. Read github.com/summerengine/summer, check what I already have installed, install whatever is missing, log me in, and scaffold a starter project so we can start building.

The agent reads this README, checks what is already on your machine, and runs only the missing steps in its shell.

The first run will:

  1. Fetch the summer-engine npm package (~2 MB) through npx.
  2. Install Summer's game-dev skills into ~/.claude/skills/ (or your agent's user-skill directory) so the agent loads them next session.
  3. Download the Summer Engine app (~1 GB, including Git and other runtime tools) if it's not installed.
  4. Open your browser for one-click sign-in.
  5. Scaffold a starter project and open the engine.

In most agents (Claude Code, Codex, Cursor, GitHub Copilot (VS Code, CLI, JetBrains), Zed, Cline, Kilo Code, OpenCode, Devin Desktop, Antigravity, Kiro, Trae, Warp, Goose, Hermes, Crush, Amp, Factory, Junie, Qwen Code, Kimi Code, Grok Build and Mistral Vibe), setup also connects Summer Games (summer-games), so the agent can see your friends, start parties and send messages as you. You sign in once; setup prints the step for your agent (Claude Code: /mcp, choose summer-games; Codex: /mcp login summer-games; Cursor: Connect next to summer-games in its MCP settings). A summer.games page opens in your browser; sign in and choose Allow.

Then ask the agent to build something.

Claude Code: the Summer plugin

In Claude Code, type:

/plugin install summer --marketplace summerengine/summer

Then type /summer:start. It signs you in and gets a first game playing in about five minutes: from a template that already plays, or from a plan of concept art Summer draws for your idea right in the chat, built in the Summer Engine desktop app. The plugin brings Summer's skills and two MCP servers: summer-engine drives the desktop app (needs Node), and summer-cloud is Summer's hosted server (sign in once with /mcp). Use the plugin or summer setup claude-code, not both: they install the same skills.

Only want assets?

Sound effects, music, voices, images, 3D models, motion and video are made on Summer's servers, so you do not need the Summer Engine app for them. The quickest way is the hosted server in Connect: no Node, no install. To get the asset skills too, paste this instead:

Connect Summer to this agent so I can make game assets. Read github.com/summerengine/summer, connect yourself to Summer and log me in. Skip the Summer Engine app and the starter project, I only want assets.

The agent installs the asset skills and the MCP config (summer-engine 4.0.0 or newer) and signs you in. It does not download the engine. Each asset lands in your Summer library as a normal file: GLB for 3D models, PNG, JPG or WebP for images, MP3 or WAV for audio, MP4 for video. The agent saves each file into your project (your engine's asset folder, or the folder you name), so any engine or web app can use it.


AGENTS READING THIS: install playbook

You are an AI coding agent. The user told you to install Summer Engine. Run this playbook via your shell: Bash on macOS/Linux or PowerShell on Windows. Detection first, then only install what's missing. (Once installed, your working guide is AGENTS.md.)

Assets only. If the user only wants assets (sound effects, music, voices, images, 3D models, video), not a game built in Summer Engine, or tells you to skip the engine: run Step -1, Step 0, Step 1 with --assets-only added, and Step 3, then stop installing. --assets-only writes the assets tool profile (generation and asset tools, no engine tools), installs only the asset skills, and leaves out Summer Games (it is for playing with friends, and leaving it out saves a sign-in). Skip Step 2 (the engine download), Step 5 and Step 6. On this path the doctor warnings for engine-install and local-api are expected; leave them. The asset operations (assets.generate_audio, assets.generate_sfx_choices, assets.generate_image, assets.generate_3d, assets.generate_video, assets.search) run on Summer's servers and need only the login. Most agents load a new MCP server only after a restart. Until then, run the same operation from the shell: npx -y summer-engine@latest <area> <action> --<field> <value> (summer ops search <words> finds one and its input). For example, three versions of one sound for the user to pick from: npx -y summer-engine@latest assets generate-sfx-choices --text "sword clash". Each asset lands in the user's Summer library; out (a folder or a file path) on the call saves it on this machine and the answer gives localPath, and assets.get returns a downloadUrl for use outside Summer Engine.

Windows PowerShell: type npx.cmd wherever this playbook says npx. Plain npx in PowerShell runs npx.ps1, which Windows blocks by default ("running scripts is disabled on this system"). npx.cmd is the same command without that block. Never change the execution policy or turn off Windows Defender to work around it. Bash (including Git Bash on Windows) can use plain npx.

Step -1: Verify Node.js is on PATH

node --version

If this prints Node.js 20 or newer, continue to Step 0.

Windows, Node missing or older than 20: a clean Windows machine has no Node, and the whole CLI and MCP server run through it. Ask the user once: "Summer needs Node.js. OK if I install the LTS version with winget?" On yes, run:

winget install -e --id OpenJS.NodeJS.LTS --accept-source-agreements --accept-package-agreements
$env:Path = [Environment]::GetEnvironmentVariable('Path','Machine') + ';' + [Environment]::GetEnvironmentVariable('Path','User')
node --version

The second line makes the new Node visible to this shell without a restart. Windows may show an administrator prompt; tell the user to accept it. Then continue the playbook in the same shell. When setup finishes, tell the user: "Restart once so it sees Node, then the Summer MCP connects." An app that was already open when Node was installed cannot start the MCP server until it restarts. If winget itself is not available, tell the user: "Install Node.js LTS from https://nodejs.org, then restart this app and re-run the prompt," and stop.

macOS/Linux, Node missing or older than 20: stop and tell the user: "Summer needs Node.js 20+. Install from https://nodejs.org and re-run the prompt."

Step 0: Check what is installed (read-only)

npx -y summer-engine@latest doctor --json

The first call downloads the package into npx's cache (~2 MB, a few seconds); later calls are fast. -y answers npx's "ok to install summer-engine?" prompt so the call doesn't hang in a non-interactive shell.

Read the JSON output. Top-level ok: true means "no check failed" — it does NOT mean Summer is installed. A machine with no skills, no MCP config, and no login can report ok: true (those checks warn, they do not fail). So never skip Step 1 on ok: it is idempotent and fast. Use the checks array (each entry: id, label, status of ok / warning / fail, message, optional details) only to decide whether the expensive steps — engine download (Step 2) and browser login (Step 3) — are needed.

The check ids are node-version, cli-version, cli-version-current, skills-version-stale, login, store-access, engine-install, local-api, project-memory, mcp-boot, and mcp-tools-list. For any check whose status is not ok, run the action in the table below, then re-run doctor.

Check idIf status is okAction when attention is needed
node-versioncontinueStep -1 already covered this
cli-versionalways ok via npxno action
cli-version-currentcontinuerun npx clear-npx-cache && npx -y summer-engine@latest doctor --json (forces a fresh resolve)
skills-version-stalerun Step 1 anyway (idempotent)run Step 1 (--force is already in the command)
loginskip Step 3run Step 3
store-accesscontinueonly for publishing: surface the message (it carries the store's own reason); signing in again does not fix a refusal the store gives a valid sign-in
engine-installskip Step 2run Step 2
local-apiskip Step 5b wait-loopexpected before summer run; run the wait-loop after it
project-memorycontinueif a project is open, use the brainstorm-game skill before building
mcp-bootcontinuethe MCP server failed to start locally — surface the message to the user
mcp-tools-listcontinuethe MCP server started but listed no tools — surface the message; usually a stale npx cache (npx clear-npx-cache)

On version drift: if either cli-version-current or skills-version-stale needs attention, refresh before proceeding. Tell the user once: "There's a newer Summer (X.Y.Z to A.B.C); updating before we start." Then run the command in that check's details.recommendedAction (a fresh npx clear-npx-cache && npx -y summer-engine@latest ...) and re-run doctor. Don't ask the user to choose; they paste "install" and want the latest.

Step 1: Install skills + MCP config (always run it — idempotent, fast)

npx -y summer-engine@latest setup claude-code --yes --force

Replace claude-code with the user's actual agent: claude-desktop, codex, cursor, windsurf, antigravity, cline, cline-cli, kilo-code, github-copilot, vscode-copilot, visual-studio, copilot-jetbrains, opencode, zed, kiro, goose, hermes, trae, qwen-code, kimi-code, crush, amp, factory, junie, warp, rovo-dev, qoder, grok-build, mistral-vibe, lm-studio. Use github-copilot for Copilot CLI, vscode-copilot for GitHub Copilot Chat/Agent in VS Code, visual-studio for Copilot in Visual Studio, and copilot-jetbrains for Copilot in JetBrains IDEs. Legacy targets gemini and roo-code still work; for Google's agent use antigravity. This installs every skill in the library to ~/.claude/skills/<slug>/SKILL.md (or the agent's own skill directory), writes the MCP server config, runs doctor, and prints what it installed and where. Preview skills are included and labelled; --stable-only skips them. --force wipes stale skill copies first. Don't use --recommended from this playbook; it installs only a subset.

Summer Games: for every agent whose sign-in summer.games accepts (all targets except claude-desktop, visual-studio, qoder, rovo-dev, lm-studio and the legacy ones), setup also adds the remote summer-games MCP (https://mcp.summer.games/mcp) and prints a Sign in once: line. Tell the user that line once, in plain words. Their browser opens summer.games; they sign in and choose Allow. Do not wait for it; continue the playbook. If the user already added the same URL under another name (for example summer), setup keeps theirs and adds no second entry.

First-install detection: if ~/.claude/skills/ didn't exist before this command, Claude Code wasn't watching it and won't auto-detect the new files this session. Tell the user once: "Skills installed - restart your agent so they load." On subsequent installs (directory already existed), skills auto-detect mid-session and no restart is needed. You can detect first-install vs upgrade by checking if ~/.claude/skills/ existed before Step 1; record the result before running setup.

Do NOT run /plugin install or any other slash command. An agent cannot type them; this playbook installs through the CLI. The Claude Code plugin (above) is the user's own one-step choice. If the user already installed it, skip Step 1: the plugin and summer setup install the same skills.

Step 2: Install the engine app (only if engine-install needs attention)

npx -y summer-engine@latest install

~1 GB from Summer's signed releases, including Git and other runtime tools. The CLI prints the URL and size before it writes anything. Tell the user "downloading the engine app, ~1 GB, this takes a couple minutes" so they don't bail thinking it stalled.

Already installed? summer install never silently replaces an engine. An equal version exits 0 as "up to date"; a different version is replaced only with --yes or a TTY confirmation, and the new bundle is swapped in only after it copied completely, so a failed download leaves the old engine in place.

Linux note: on Linux (x86_64) summer install places the engine binary under ~/.summer/engine/ (or symlinks a local build via --path). There is no desktop app bundle; the editor runs from that binary. Other architectures: point the user at https://summerengine.com/download and stop.

Step 3: Sign in (only if login needs attention)

npx -y summer-engine@latest login

This opens the user's default browser for one sign-in that covers every Summer tool: first the Summer account ("Yes, Sign In"), then, in the same browser, a "Welcome to Summer CLI" page for the store, publishing and Grow tools (one Allow click; none if this machine was approved before). Tell the user: "Your browser is opening now. Sign in, click Yes, Sign In, then Allow on the next page, and come back to this terminal." The CLI checks the returned identity and stores the session in ~/.summer/, which the engine shares. If the store step does not finish within 3 minutes, the account sign-in is still saved; summer login --store adds the store later. Don't loop.

Step 4: Re-run doctor to confirm

npx -y summer-engine@latest doctor --json

cli-version, login, engine-install, mcp-boot, and mcp-tools-list should now have status: "ok". local-api may still need attention because the engine is not running yet. If a setup check still needs attention, surface the specific message to the user and do not loop or paper over it.

Step 5: Scaffold a project and run

Important: summer create writes the project into the current working directory. Pick a stable parent directory first, such as the user's home or a Projects folder, and cd there before running create. Don't let it land in a temp dir or wherever the agent happened to start.

cd ~/Projects   # or wherever the user keeps code

If the user said "let's make a game" without specifying a template, default to 3d-basic. Pick a sensible project name from the user's request, for example "FPS" to my-fps-game. Avoid spaces in the name.

npx -y summer-engine@latest create 3d-basic my-fps-game
npx -y summer-engine@latest run my-fps-game

summer run launches the engine app with the project loaded and polls the engine's local API for up to 20 seconds before returning.

Step 5b: Wait for the engine to be reachable (only if summer run printed "API not responding yet")

If the engine takes longer than 20 seconds to boot, summer run returns before the local API is up, and MCP tools cannot connect yet. Wait for it:

doctor --json is pretty-printed (one field per line: "id", "label", "status", …), so match across lines:

# Poll doctor until local-api flips to ok (max ~30s):
for i in 1 2 3 4 5 6; do
  npx -y summer-engine@latest doctor --json | grep -A2 '"id": "local-api"' | grep -q '"status": "ok"' && break
  sleep 5
done

(Equivalent PowerShell: for ($i=0; $i -lt 6; $i++) { $r = (npx -y summer-engine@latest doctor --json) -join "n"; if ($r -match '"id": "local-api",\s*"label": "[^"]",\s"status": "ok"') { break }; Start-Sleep 5 }`)

Once local-api is ok, MCP tools are safe to call.

Step 6: Brainstorm the game, then build

Now you have skills + MCP. Don't jump into summer create content from a vague prompt. Plan the task first: summer_call with {"op": "docs.plan", "input": {"goal": "<the user's goal>"}} (from a shell: summer plan <goal>), then invoke the recommended skill. For vague "make a game" requests, that should usually be the brainstorm-game skill (installed skills are invoked by their bare slug — there is no summer: prefix). It scopes mechanics, art direction, and the V1 cut list, and writes the result to .summer/GameSoul.md. Every other Summer skill reads from that file.

Project memory lives in .summer/ as readable Markdown. Use .summer/memory/ for locked facts that should not drift across sessions, such as character voice IDs, world canon, and provider bindings. Users can inspect it with summer memory; agents should read relevant memory surfaced by summer_get_project_context before changing creative/audio/dialogue/level/character work.

Only skip brainstorm if the user explicitly said "skip brainstorm" or "just build the X already." After brainstorm, the appropriate build skills (fps-controller, design-mechanic, design-level, make-game, etc.) auto-trigger from natural language.

Anti-patterns (do NOT do these)

  • Don't run npm install -g summer-engine. Use npx -y summer-engine@latest ... instead. -g requires sudo on most Mac/Linux setups, so the user will get permission errors and you'll get stuck. npx works without root and the MCP config we ship already points at npx summer-engine mcp.
  • Don't install Node.js without asking, and don't use anything but winget for it. On Windows, Step -1 installs Node LTS with winget after the user says yes. On macOS/Linux, point them at https://nodejs.org and stop.
  • Don't run plain npx in Windows PowerShell, and don't change the execution policy or Defender to make it work. Use npx.cmd.
  • Don't ask the user "do you want the engine too?" or "do you also want the CLI?" This playbook installs all of it. The one exception is an assets-only request (see Assets only at the top of this playbook).
  • Don't double-download. Always run npx -y summer-engine@latest doctor --json first and skip the engine download and the browser login when their checks are status: "ok". Step 1 (setup) is the exception: run it every time — it is idempotent, and doctor's top-level ok cannot tell you whether skills or the MCP config are installed.
  • Don't run summer install or summer login in the background. They print user-facing output (engine download progress, browser-opening notice). Run them in the foreground so the user sees what's happening.
  • Don't skip the --json flag on summer doctor. Text output is fragile to parse and changes per version.
  • Don't skip the -y flag on npx. Without it, npx prompts "ok to install summer-engine?" interactively and the call hangs in a non-interactive shell.
  • Don't drop @latest from the npx commands. npx -y summer-engine (no version pin) serves whatever's in npx's local cache, which can be a stale older version. The @latest tag forces npm to re-resolve from the registry. If a user reports "unknown command 'doctor'" or sees a much smaller skill list than expected, they got cache-served. Tell them to run npx clear-npx-cache then retry with @latest.
  • Don't call MCP tools (summer_get_scene_tree, etc.) until local-api is ok. The engine takes a few seconds to boot after summer run. Use Step 5b's wait-loop.
  • Don't summer create without cd'ing to a stable parent directory first. It writes into CWD; agents that start in a temp dir will leave the project there.
  • Don't loop summer login if it times out. It waits up to 15 minutes for the account sign-in. Re-run it once and tell the user to finish "Yes, Sign In" in the browser tab it opens; loop forever and the user is stuck.
  • Don't jump straight into summer create from a vague prompt. Invoke the brainstorm-game skill first (Step 6). The build skills assume .summer/GameSoul.md exists.

Using a different agent? Use its id from Step 1 (aliases such as devin, agy and droid also work; see the CLI reference). Skill folders vary per agent; the CLI handles the difference, and integrations/README.md documents exactly what gets written where for every client. After install, Cline users should restart VS Code so the extension reloads its MCP config. VS Code Copilot users should start the summer-engine MCP server from Agent mode if VS Code does not autostart it.

If the user wants summer on their PATH for everyday terminal use, a global npm install works too. The agent flow doesn't need it.


The lifecycle: create → test → publish → grow

StageStatusWhat it means today
CreateAvailableScaffold from a pinned template, build scenes and scripts through MCP, generate 2D/3D/audio/video assets, guided by the library.
TestAvailableThe verification ladder: compile checks, screenshots, live play with debugger reads, and input-driven probes (RunVerification) that press real keys and assert on real frames.
PublishAvailablesummer_export_game builds the store file with the installed engine; store.upload_file uploads it after you confirm the exact game, file and version. store.update_listing, store.set_art and store.set_trailer write the store page (text, tags, long description, support contact, release date, art, trailer); store.preview_link makes a private preview link; store.publish sends the game to Summer's store review; store.status shows the review and the releases; store.release ships an approved build. With the Publish switch off, the agent asks you first.
GrowAvailableanalytics.overview and analytics.summary read store page views, launches, play sessions, play time and your game's own events (see the summer-analytics skill). pricing.* sets prices, country prices and sales; experiments.* runs store page A/B tests; games.members and the member operations manage who works on a game; marketing.* applies for Summer's growth services.

These are operations on the hosted Summer server; the local server runs them too after summer login.

How agents call Summer

Every capability is an operation named <area>.<action>: assets.generate_image, store.publish, pricing.set_base.

  • Direct tools cover the common jobs: summer_ plus the operation name, with _ for . (games.list is summer_games_list). Engine tools keep their 3.x names (summer_add_node, summer_run_script, summer_play, summer_screenshot), and makers keep summer_tool_<slug>.
  • Everything else: summer_search finds the operation for a job you describe in words and returns its exact input. summer_call runs it: {op, input, dryRun?, idempotencyKey?}.
  • One answer shape: done with a result, running with a job (summer_jobs_wait waits up to 50 seconds per call), needs_approval with a link for you, dry_run with a preview, or an error with a code, a message and exactly one next step.
  • Safe to try: every change takes dryRun: true (it changes nothing and spends nothing; a spend shows your own credit estimate) and an idempotencyKey, so a retry never runs twice.
  • Error codes: invalid_input, not_signed_in, forbidden, not_found, conflict, idempotency_conflict, in_progress, rate_limited, no_credits, over_limit, engine_not_running, engine_lacks_op, unsupported, not_in_profile, moved, outcome_unknown, unavailable, internal.
  • 3.x names keep working for all of 4.x: summer_call accepts them on every server, summer mcp --toolsets legacy lists them on the local server, and the local server lists them by itself while your installed skills are older than 4.0. Its first start after an upgrade refreshes the Summer skills you installed, so after an upgrade the legacy list stays off unless you ask for it. The map from old names to operations is registry/operations/legacy-names.json.

The same operations run from a shell: summer <area> <action> --<field> <value> (for example summer assets generate-image --prompt "a cozy pixel-art tavern" --aspect-ratio 16:9), with --dry-run, --wait (follows a job or an approval to the end) and --json (prints the answer only; exit code 0 for any ok answer, 1 for an error). summer whoami shows who is signed in. summer ops search <words> and summer ops describe <op> find an operation and its input. Every command that reads something takes --json.

What's in this repo

summer/
├── README.md          # you are here: overview + the install playbook
├── AGENTS.md          # the agent guide: trust, the library, navigation, engine rules
├── src/               # the Summer software (TypeScript)
│   ├── core/          #   shared implementations (capabilities used by both CLI and MCP)
│   ├── cli/           #   the `summer` command surface
│   ├── mcp/           #   the MCP server and tool adapters
│   ├── project-memory/#   .summer/ read/write
│   └── installer/     #   agent detection and config writing for every supported client
├── library/           # the Library: tools, skills, templates, references
├── registry/          # schemas + generated/ (the compiled index everything reads; never hand-edited)
├── evals/             # evidence the library works: routing, skills, examples, templates, tools, end-to-end
├── integrations/      # one folder per supported agent: what gets installed where
├── commands/          # the shipped slash commands (/summer, /gameskill, the plugin's /summer:start)
├── hooks/             # lifecycle hooks: session-start orientation, opt-in pre-commit doctor
├── assets/            # files the tools ship with: offline API docs, engine-side probe and audit scripts
├── scripts/           # generate-registry (the compiler), validate-library (schema + capability lint)
├── tests/             # v2 prose behaviour specs (the code tests sit next to the code in src/)
├── docs/              # development guide, migration notes, design contract
└── .claude-plugin/ …  # plugin manifests for Claude Code, Codex, Cursor and Factory (generated)

One rule ties it together: every entry is described once (a resource.yaml in library/), and the registry compiler generates everything else — the searchable index, every agent plugin manifest, the skill installer data, counts, and legacy aliases. CI fails on any drift. See docs/design/CONTRACT.md.

The library

Six kinds of entry, all searchable through the same generated index:

  • Skills — how to do something well (FPS controllers, scene composition, debugging discipline, VFX recipes, audio direction…). Open Agent Skills format, so any conformant tool picks them up.
  • Examples — proven working instances with required evidence (screenshots, verification receipts) — an example that can't show it works doesn't ship.
  • Templates — complete project foundations (platformers, FPS, racing, roguelikes, multiplayer starters…), each pinned to an exact commit with a verified tree digest. summer create <slug> fetches exactly that commit, recomputes the digest and refuses on mismatch, then records the pin into the project's .summer/project.json — never whatever a branch happens to contain today. Two small templates (3d-basic, empty) are built in and generate offline. Browse with summer list templates; pinning rules and the digest formula in library/templates/README.md.
  • Collections — curated, compatible creative materials: asset sets with style rules and presets. None ship yet.
  • References — facts: engine version compatibility, GDScript style, tool references.
  • Tools — the executable capabilities themselves, described in the same registry so agents can discover what they can do.

Agents don't browse folders; they search the compiled index (registry/generated/index.json) through summer_docs_search (or summer tool search-library) by summary, use-cases, and facets, then load the hit with summer_docs_read. IDs are permanent, so feedback and evidence follow an entry across any reorganization.

The ecosystem

 Claude Code · Codex · Cursor · Gemini · Copilot · OpenCode · …
        │            (any AI coding agent)
        ▼
 ┌──────────────────────────────────────────────┐
 │  Summer (this repo, npm: summer-engine)      │
 │  library · registry · MCP tools · CLI        │
 │  project memory (.summer/) · evals           │
 └──────────────────────────────────────────────┘
        │ MCP / local API
        ▼
 Summer Engine (desktop app: editor + runtime)
        │
        ▼
 summer.games store · your players

Summer works with any agent: integrations/ adapts one generated system to each. The map of what gets installed where is integrations/README.md.

Project memory: .summer/

Every Summer project carries its own memory, as readable Markdown and JSON:

  • GameSoul.md — the game's promise, written at brainstorm, read by every build skill.
  • memory/ — locked facts that must not drift: character voices, world canon, provider bindings.
  • project.json — the template pin (id, version, repo + commit + tree_digest, or builtin: true), the toolkit_version that scaffolded it, and created_at: exactly which template, at which commit, started this project.

The point: a fresh agent — any agent, any session — can answer what game is this, what's done, what's verified, what's next without the original conversation. Inspect it yourself with summer memory.

Bring your own skills

Two ways to extend Summer with your own material:

  1. Drop skills into your agent the normal way (~/.claude/skills/, .cursor/rules/, etc.) — Summer's skills are standard Agent Skills format and coexist with yours.
  2. Give them to Summer (planned): external Summer-format resources will install project-, user-, or studio-scoped and be recorded in .summer/project.json, so every agent on the project sees them. The schema side is in place — external entries are namespaced (<publisher>/<kind>/<slug>) and can never silently shadow an official ID — the installer is not built yet.

Official entries land in this repo by PR, gated by schema validation and the capability lint.

Library feedback

  • Agents can report how an entry worked (summer_call with docs.feedback): worked / worked with fixes / wrong / outdated / incomplete / did not apply / misrouted. What is sent, in full: the entry ids, one outcome word each, an optional note and deviation (280 characters max, about the entry), the engine version, the agent's self-reported model id, this CLI's version, the host app name/version, a random per-process session id, and — only when logged out — a random install uuid (when logged in, the account token is sent instead). The schema cannot carry your code, files, or chat. The very first call on a machine sends nothing and returns a notice; SUMMER_NO_TELEMETRY=1 or DO_NOT_TRACK=1 turns it off entirely.
  • Today those reports land in a write-only mailbox that maintainers read. Only verified outcomes count; popularity never ranks an entry.

What gets downloaded

Documentation truncated — see the full README on GitHub.

Reviews

No reviews yet

Be the first to review this server!