Generated from the operation catalog:
src/lib/ops/public-catalog.json in publicsummerengine at 0d85f61e2b and the summer-engine npm package 4.0.0 for engine and local operations. If something here is wrong, the operation’s definition is wrong.| Operation | What it does | Asks you first |
|---|---|---|
projects.build | Build a playable game in the cloud from a plan’s saved direction, as Build in Studio does. | Not by default |
projects.builds | The recent cloud builds of a plan, newest first, with their job ids and states, and whether cloud builds can start right now. | Never |
projects.create | Start a new game from the person’s idea: Summer creates the project and its plan and starts drawing the plan’s first pictures at once. | Not by default |
projects.get | Read one Summer project: name, kind, share state, where it opens, its game plan (planId for plans.get) and the idea it was made from. | Never |
projects.list | List the person’s Summer projects, newest edit first: project id, name, kind (browser, cloud or desktop), share state and where it opens. | Never |
projects.open_in_engine | Hand a game started with projects.create to Summer Engine on the person’s computer: the download for Mac and Windows, the setup steps and the saved direction to build from. | Never |
projects.preview_build | A link that plays a finished cloud build of a plan in the browser, as Play in Studio does. | Never |
projects.rename | Rename a game started on the create page or with projects.create: its project, its plan and the concept kept for Summer Engine take the new name. | Not by default |
build
projects.build: Build a game from a plan
Build a playable game in the cloud from a plan’s saved direction, as Build in Studio does. Spends the plan payer’s credits. The same direction returns the same build unless you send a new idempotencyKey. Returns a job. Next: jobs.wait.
| MCP | summer_call with "op": "projects.build" |
| CLI | summer projects build |
| Runs | On Summer’s servers: the hosted MCP, or the npm MCP after summer login. Needs your Summer sign-in. |
| Effect | Spends your credits. |
| Asks you first | No: Spend credits is on by default in Agent permissions. When it is off, your agent asks you first. |
| Long work | Answers with a job at once. Wait with jobs.wait. |
| 3.x names | summer_board_build |
| Input | Type | Required | Description |
|---|---|---|---|
planId | string | Yes | From plans.list. |
directionId | string | Yes | From plans.directions. |
dryRun | boolean | No | Check and describe the call without doing it: nothing changes, nothing is spent. |
idempotencyKey | string | No | Retry key. Reuse it only to retry the identical request, so it never happens twice. Length 1 to 128. |
Input JSON schema
Input JSON schema
{
"type": "object",
"properties": {
"planId": {
"description": "From plans.list.",
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"directionId": {
"description": "From plans.directions.",
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"dryRun": {
"description": "Check and describe the call without doing it: nothing changes, nothing is spent.",
"type": "boolean"
},
"idempotencyKey": {
"description": "Retry key. Reuse it only to retry the identical request, so it never happens twice.",
"type": "string",
"minLength": 1,
"maxLength": 128
}
},
"required": [
"planId",
"directionId"
]
}
Result JSON schema
Result JSON schema
{
"type": "object",
"properties": {
"build": {
"type": "object",
"properties": {
"buildId": {
"type": "string"
},
"jobId": {
"type": "string"
},
"state": {
"type": "string"
},
"directionId": {
"type": "string"
},
"error": {
"type": "string"
},
"result": {
"description": "What the build made, once done.",
"type": "object",
"additionalProperties": {}
},
"createdAt": {
"type": "string"
},
"updatedAt": {
"type": "string"
}
},
"required": [
"buildId",
"jobId",
"state"
],
"additionalProperties": false
},
"created": {
"type": "boolean"
}
},
"required": [
"build",
"created"
],
"additionalProperties": false
}
{
"name": "summer_call",
"arguments": {
"op": "projects.build",
"input": {
"planId": "7b0c2f7e-5d4b-4c5e-9a43-2f0d8f1c9a10",
"directionId": "5f1d2c3b-4a59-4e6f-8a7b-9c0d1e2f3a4b"
}
}
}
summer projects build --plan-id 7b0c2f7e-5d4b-4c5e-9a43-2f0d8f1c9a10 --direction-id 5f1d2c3b-4a59-4e6f-8a7b-9c0d1e2f3a4b
builds
projects.builds: List a plan’s builds
The recent cloud builds of a plan, newest first, with their job ids and states, and whether cloud builds can start right now. Next: jobs.get with a build’s jobId.
| MCP | summer_call with "op": "projects.builds" |
| CLI | summer projects builds |
| Runs | On Summer’s servers: the hosted MCP, or the npm MCP after summer login. Needs your Summer sign-in. |
| Effect | Reads only. Changes nothing. |
| Asks you first | No. It changes nothing. |
| 3.x names | summer_board_builds |
| Input | Type | Required | Description |
|---|---|---|---|
planId | string | Yes | From plans.list. |
Input JSON schema
Input JSON schema
{
"type": "object",
"properties": {
"planId": {
"description": "From plans.list.",
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
},
"required": [
"planId"
]
}
Result JSON schema
Result JSON schema
{
"type": "object",
"properties": {
"available": {
"description": "Cloud builds can start now.",
"type": "boolean"
},
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"buildId": {
"type": "string"
},
"jobId": {
"type": "string"
},
"state": {
"type": "string"
},
"directionId": {
"type": "string"
},
"error": {
"type": "string"
},
"result": {
"description": "What the build made, once done.",
"type": "object",
"additionalProperties": {}
},
"createdAt": {
"type": "string"
},
"updatedAt": {
"type": "string"
}
},
"required": [
"buildId",
"jobId",
"state"
],
"additionalProperties": false
}
}
},
"required": [
"available",
"items"
],
"additionalProperties": false
}
{
"name": "summer_call",
"arguments": {
"op": "projects.builds",
"input": {
"planId": "7b0c2f7e-5d4b-4c5e-9a43-2f0d8f1c9a10"
}
}
}
summer projects builds --plan-id 7b0c2f7e-5d4b-4c5e-9a43-2f0d8f1c9a10
create
projects.create: Start a new game
Start a new game from the person’s idea: Summer creates the project and its plan and starts drawing the plan’s first pictures at once. One sentence is enough. Returns the projectId. Next: plans.show or plans.message.
| MCP | summer_call with "op": "projects.create" |
| CLI | summer projects create |
| Runs | On Summer’s servers: the hosted MCP, or the npm MCP after summer login. Needs your Summer sign-in. |
| Effect | Spends your credits. |
| Asks you first | No: Spend credits is on by default in Agent permissions. When it is off, your agent asks you first. |
| 3.x names | summer_make_game |
| Input | Type | Required | Description |
|---|---|---|---|
idea | string | Yes | The game idea in the person’s words, plus anything already decided (feel, player, goal). Length 1 to 8000. |
dryRun | boolean | No | Check and describe the call without doing it: nothing changes, nothing is spent. |
idempotencyKey | string | No | Retry key. Reuse it only to retry the identical request, so it never happens twice. Length 1 to 128. |
Input JSON schema
Input JSON schema
{
"type": "object",
"properties": {
"idea": {
"description": "The game idea in the person's words, plus anything already decided (feel, player, goal).",
"type": "string",
"minLength": 1,
"maxLength": 8000
},
"dryRun": {
"description": "Check and describe the call without doing it: nothing changes, nothing is spent.",
"type": "boolean"
},
"idempotencyKey": {
"description": "Retry key. Reuse it only to retry the identical request, so it never happens twice.",
"type": "string",
"minLength": 1,
"maxLength": 128
}
},
"required": [
"idea"
]
}
Result JSON schema
Result JSON schema
{
"type": "object",
"properties": {
"projectId": {
"type": "string"
},
"title": {
"type": "string"
},
"cards": {
"type": "array",
"items": {
"type": "object",
"properties": {
"itemId": {
"type": "string"
},
"title": {
"type": "string"
},
"imageUrl": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"line": {
"type": "string"
}
},
"required": [
"itemId",
"title",
"imageUrl"
],
"additionalProperties": false
}
},
"drawing": {
"description": "Summer is still drawing pictures.",
"type": "boolean"
},
"lookItemId": {
"description": "The picture chosen as the game's look.",
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"statusLine": {
"type": "string"
},
"url": {
"description": "The plan in the browser.",
"type": "string"
},
"planId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"projectId",
"title",
"cards",
"drawing",
"lookItemId",
"statusLine",
"url",
"planId"
],
"additionalProperties": false
}
{
"name": "summer_call",
"arguments": {
"op": "projects.create",
"input": {
"idea": "A frog knight hops across sinking lily pads to save the pond"
}
}
}
summer projects create --idea 'A frog knight hops across sinking lily pads to save the pond'
get
projects.get: Read a project
Read one Summer project: name, kind, share state, where it opens, its game plan (planId for plans.get) and the idea it was made from. Next: plans.get with the planId.
| MCP | summer_call with "op": "projects.get" |
| CLI | summer projects get |
| Runs | On Summer’s servers: the hosted MCP, or the npm MCP after summer login. Needs your Summer sign-in. |
| Effect | Reads only. Changes nothing. |
| Asks you first | No. It changes nothing. |
| 3.x names | summer_get_project |
| Input | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | From projects.list. |
Input JSON schema
Input JSON schema
{
"type": "object",
"properties": {
"projectId": {
"description": "From projects.list.",
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
},
"required": [
"projectId"
]
}
Result JSON schema
Result JSON schema
{
"type": "object",
"properties": {
"projectId": {
"type": "string"
},
"name": {
"type": "string"
},
"kind": {
"description": "create: made in the browser; cloud: a cloud project; desktop: opens in Summer Engine on the computer.",
"type": "string",
"enum": [
"create",
"cloud",
"desktop"
]
},
"editedAt": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"coverUrl": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"visibility": {
"description": "draft, unlisted or public: how far a browser game is shared.",
"type": "string"
},
"url": {
"description": "Where it opens on the web; null opens in Summer Engine.",
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"planId": {
"description": "The project's game plan, for plans.get.",
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"idea": {
"description": "The idea it was made from, when made in the browser.",
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"address": {
"description": "Where the browser game plays once shared.",
"anyOf": [
{
"type": "object",
"properties": {
"visibility": {
"type": "string"
},
"slug": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"visibility",
"slug"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"localPath": {
"description": "Where a desktop project lives on the person's computer.",
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"projectId",
"name",
"kind",
"editedAt",
"coverUrl",
"visibility",
"url",
"planId",
"idea",
"address",
"localPath"
],
"additionalProperties": false
}
{
"name": "summer_call",
"arguments": {
"op": "projects.get",
"input": {
"projectId": "3f0c2a9e-7b1d-4c55-9a7e-2d1f0b6c8e41"
}
}
}
summer projects get --project-id 3f0c2a9e-7b1d-4c55-9a7e-2d1f0b6c8e41
list
projects.list: List my projects
List the person’s Summer projects, newest edit first: project id, name, kind (browser, cloud or desktop), share state and where it opens. A project is not a store game (games.list). Next: projects.get.
| MCP | summer_projects_list, a tool on the hosted MCP. Elsewhere: summer_call with "op": "projects.list" |
| CLI | summer projects list |
| Runs | On Summer’s servers: the hosted MCP, or the npm MCP after summer login. Needs your Summer sign-in. |
| Effect | Reads only. Changes nothing. |
| Asks you first | No. It changes nothing. |
| 3.x names | summer_list_projects, summer_list_games |
| Input | Type | Required | Description |
|---|---|---|---|
limit | integer | No | Default 10. Range 1 to 50. |
cursor | string | No | nextCursor from the previous page. |
Input JSON schema
Input JSON schema
{
"type": "object",
"properties": {
"limit": {
"default": 10,
"type": "integer",
"minimum": 1,
"maximum": 50
},
"cursor": {
"description": "nextCursor from the previous page.",
"type": "string",
"pattern": "^\\d{1,3}$"
}
}
}
Result JSON schema
Result JSON schema
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"projectId": {
"type": "string"
},
"name": {
"type": "string"
},
"kind": {
"description": "create: made in the browser; cloud: a cloud project; desktop: opens in Summer Engine on the computer.",
"type": "string",
"enum": [
"create",
"cloud",
"desktop"
]
},
"editedAt": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"coverUrl": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"visibility": {
"description": "draft, unlisted or public: how far a browser game is shared.",
"type": "string"
},
"url": {
"description": "Where it opens on the web; null opens in Summer Engine.",
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"projectId",
"name",
"kind",
"editedAt",
"coverUrl",
"visibility",
"url"
],
"additionalProperties": false
}
},
"nextCursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"items",
"nextCursor"
],
"additionalProperties": false
}
{
"name": "summer_projects_list",
"arguments": {
"limit": 10
}
}
summer projects list --limit 10
open_in_engine
projects.open_in_engine: Build a new game in Summer Engine
Hand a game started with projects.create to Summer Engine on the person’s computer: the download for Mac and Windows, the setup steps and the saved direction to build from. Nothing is built in the cloud. Next: follow the steps with the person.
| MCP | summer_call with "op": "projects.open_in_engine" |
| CLI | summer projects open-in-engine |
| Runs | On Summer’s servers: the hosted MCP, or the npm MCP after summer login. Needs your Summer sign-in. |
| Effect | Reads only. Changes nothing. |
| Asks you first | No. It changes nothing. |
| 3.x names | summer_build_game |
| Input | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | The new game’s project, from projects.create. |
Input JSON schema
Input JSON schema
{
"type": "object",
"properties": {
"projectId": {
"description": "The new game's project, from projects.create.",
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
},
"required": [
"projectId"
]
}
Result JSON schema
Result JSON schema
{
"type": "object",
"properties": {
"projectId": {
"type": "string"
},
"title": {
"type": "string"
},
"downloads": {
"type": "object",
"properties": {
"macos": {
"type": "string"
},
"windows": {
"type": "string"
}
},
"required": [
"macos",
"windows"
],
"additionalProperties": false
},
"setup": {
"description": "The steps and the direction, for the agent on the person's computer.",
"type": "string"
},
"next": {
"type": "string"
}
},
"required": [
"projectId",
"title",
"downloads",
"setup",
"next"
],
"additionalProperties": false
}
{
"name": "summer_call",
"arguments": {
"op": "projects.open_in_engine",
"input": {
"projectId": "0c6a1f60-1d8e-4f4c-8f0e-5a0b8b6f2d11"
}
}
}
summer projects open-in-engine --project-id 0c6a1f60-1d8e-4f4c-8f0e-5a0b8b6f2d11
preview_build
projects.preview_build: Play a cloud build
A link that plays a finished cloud build of a plan in the browser, as Play in Studio does. The link works for about two minutes: give it to the person at once. Next: projects.builds.
| MCP | summer_call with "op": "projects.preview_build" |
| CLI | summer projects preview-build |
| Runs | On Summer’s servers: the hosted MCP, or the npm MCP after summer login. Needs your Summer sign-in. |
| Effect | Reads only. Changes nothing. |
| Asks you first | No. It changes nothing. |
| Input | Type | Required | Description |
|---|---|---|---|
planId | string | Yes | From plans.list. |
buildId | string | Yes | From projects.builds. |
Input JSON schema
Input JSON schema
{
"type": "object",
"properties": {
"planId": {
"description": "From plans.list.",
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"buildId": {
"description": "From projects.builds.",
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
},
"required": [
"planId",
"buildId"
]
}
Result JSON schema
Result JSON schema
{
"type": "object",
"properties": {
"url": {
"type": "string"
},
"expiresAt": {
"type": "string"
},
"runtimeVersion": {
"type": "string"
}
},
"required": [
"url",
"expiresAt",
"runtimeVersion"
],
"additionalProperties": false
}
{
"name": "summer_call",
"arguments": {
"op": "projects.preview_build",
"input": {
"planId": "7b0c2f7e-5d4b-4c5e-9a43-2f0d8f1c9a10",
"buildId": "3b5c7d9e-2f4a-4b6c-9d8e-0f1a2b3c4d5e"
}
}
}
summer projects preview-build --plan-id 7b0c2f7e-5d4b-4c5e-9a43-2f0d8f1c9a10 --build-id 3b5c7d9e-2f4a-4b6c-9d8e-0f1a2b3c4d5e
rename
projects.rename: Rename a new game
Rename a game started on the create page or with projects.create: its project, its plan and the concept kept for Summer Engine take the new name. Next: plans.show.
| MCP | summer_call with "op": "projects.rename" |
| CLI | summer projects rename |
| Runs | On Summer’s servers: the hosted MCP, or the npm MCP after summer login. Needs your Summer sign-in. |
| Effect | Changes your own drafts, files or settings. Nobody else sees it yet. |
| Asks you first | No: Make and build is on by default in Agent permissions. When it is off, your agent asks you first. |
| Input | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | The new game’s project, from projects.create. |
name | string | Yes | The game’s new name. Length 1 to 80. |
dryRun | boolean | No | Check and describe the call without doing it: nothing changes, nothing is spent. |
idempotencyKey | string | No | Retry key. Reuse it only to retry the identical request, so it never happens twice. Length 1 to 128. |
Input JSON schema
Input JSON schema
{
"type": "object",
"properties": {
"projectId": {
"description": "The new game's project, from projects.create.",
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"name": {
"description": "The game's new name.",
"type": "string",
"minLength": 1,
"maxLength": 80
},
"dryRun": {
"description": "Check and describe the call without doing it: nothing changes, nothing is spent.",
"type": "boolean"
},
"idempotencyKey": {
"description": "Retry key. Reuse it only to retry the identical request, so it never happens twice.",
"type": "string",
"minLength": 1,
"maxLength": 128
}
},
"required": [
"projectId",
"name"
]
}
Result JSON schema
Result JSON schema
{
"type": "object",
"properties": {
"projectId": {
"type": "string"
},
"title": {
"type": "string"
}
},
"required": [
"projectId",
"title"
],
"additionalProperties": false
}
{
"name": "summer_call",
"arguments": {
"op": "projects.rename",
"input": {
"projectId": "0c6a1f60-1d8e-4f4c-8f0e-5a0b8b6f2d11",
"name": "Pond Knight"
}
}
}
summer projects rename --project-id 0c6a1f60-1d8e-4f4c-8f0e-5a0b8b6f2d11 --name 'Pond Knight'

