> ## Documentation Index
> Fetch the complete documentation index at: https://docs.summerengine.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Operations: docs and skills

> Summer's skills, templates, references and the engine class reference. For each operation: what it does, whether it asks you first, its inputs and an example call.

Summer's skills, templates, references and the engine class reference. 5 operations. How to call them, and what the answers mean: [Operations reference](/mcp/operations).

<Note>
  Generated from the `summer-engine` npm package `4.2.0`: its public operation catalog (`registry/operations/public-catalog.json`) and its engine and local operations. If something here is wrong, the operation's definition is wrong.
</Note>

| Operation | What it does | Asks you first |
| - | - | - |
| [`docs.engine_api`](#engine_api) | Offline engine class-reference lookup — verify a property, method, signal, or constant before writing script code instead of guessing names. | Never |
| [`docs.feedback`](#feedback) | Report how library entries worked out (worked, wrong, outdated, ...) so Summer can fix and re-rank them; fire-and-forget, opt-out honored. | Not by default |
| [`docs.plan`](#plan) | Plan the right Summer workflow for a game-building task: skill routes, tool groups, confirmation gates, and verification steps. | Never |
| [`docs.read`](#read) | Read one Summer skill, Studio guide or docs page by its id from docs.search, as Markdown. | Never |
| [`docs.search`](#search) | Search Summer's own skills, Studio guides and docs pages by describing the task in plain words. | Never |

***

### engine\_api

`docs.engine_api`: **Engine api**

Offline engine class-reference lookup — verify a property, method, signal, or constant before writing script code instead of guessing names.

| | |
| - | - |
| **MCP** | `summer_api_docs` in the npm MCP |
| **CLI** | `summer docs engine-api` |
| **Runs** | On your computer, in the `summer-engine` npm package. |
| **Effect** | Reads only. Changes nothing. |
| **Asks you first** | No. It changes nothing. |
| **3.x names** | `summer_api_docs` |

**Inputs:**

| Input | Type | Required | Description |
| - | - | - | - |
| `class_name` | string | Yes | Engine class name, e.g. 'BoxShape3D', 'CharacterBody3D', 'SurfaceTool'. Case-insensitive. |
| `member` | string | No | Optional property/method/signal/constant name to fetch just that member, e.g. 'size' or 'move\_and\_slide'. |

<Accordion title="Input JSON schema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "class_name": {
        "type": "string",
        "description": "Engine class name, e.g. 'BoxShape3D', 'CharacterBody3D', 'SurfaceTool'. Case-insensitive."
      },
      "member": {
        "type": "string",
        "description": "Optional property/method/signal/constant name to fetch just that member, e.g. 'size' or 'move_and_slide'."
      }
    },
    "required": [
      "class_name"
    ],
    "additionalProperties": false
  }
  ```
</Accordion>

**Example:** Engine api

<CodeGroup>
  ```json MCP theme={null}
  {
    "name": "summer_api_docs",
    "arguments": {}
  }
  ```

  ```bash CLI theme={null}
  summer docs engine-api
  ```
</CodeGroup>

***

### feedback

`docs.feedback`: **Feedback**

Report how library entries worked out (worked, wrong, outdated, ...) so Summer can fix and re-rank them; fire-and-forget, opt-out honored.

| | |
| - | - |
| **MCP** | `summer_library_feedback` in the npm MCP |
| **CLI** | `summer docs feedback` |
| **Runs** | On your computer, in the `summer-engine` npm package. |
| **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. |
| **3.x names** | `summer_library_feedback` |

**Inputs:**

| Input | Type | Required | Description |
| - | - | - | - |
| `reports` | object\[] | Yes | 1-10 outcome reports, batched at a natural checkpoint (one call, not one per entry). Items 1 to 10. |
| `reports[].entry_id` | string | Yes | The library entry ID exactly as the loader printed it (kind/slug, optionally @content-hash). Never guess or reconstruct it. |
| `reports[].outcome` | "worked" \| "worked\_with\_fixes" \| "wrong" \| "outdated" \| "incomplete" \| "did\_not\_apply" \| "misrouted" | Yes | worked = verified in-engine (playtest/screenshot passed). worked\_with\_fixes = worked after your changes (say what in deviation). wrong = incorrect content. outdated = no longer matches this engine version. incomplete = missing a needed case. did\_not\_apply = loaded but irrelevant to the task. misrouted = the description/metadata led you here wrongly. |
| `reports[].note` | string | No | Optional, max 280 chars. About the ENTRY only — never the user's project, files, or code. Length 0 to 280. |
| `reports[].deviation` | string | No | Optional, max 280 chars. What you did instead of / on top of the entry's instructions. Length 0 to 280. |
| `engine_version` | string | Yes | The Summer Engine version in use, e.g. "4.6.1". Length 1 to 32. |
| `agent_model` | string | Yes | The model you are, e.g. claude-fable-5, gpt-5.5-codex; use "unknown" if unsure. Length 1 to 64. |

<Accordion title="Input JSON schema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "reports": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "entry_id": {
              "type": "string",
              "pattern": "^(tool|skill|example|template|collection|reference)\\/[a-z0-9-]+(@[a-f0-9]{8,64})?$",
              "description": "The library entry ID exactly as the loader printed it (kind/slug, optionally @content-hash). Never guess or reconstruct it."
            },
            "outcome": {
              "type": "string",
              "enum": [
                "worked",
                "worked_with_fixes",
                "wrong",
                "outdated",
                "incomplete",
                "did_not_apply",
                "misrouted"
              ],
              "description": "worked = verified in-engine (playtest/screenshot passed). worked_with_fixes = worked after your changes (say what in deviation). wrong = incorrect content. outdated = no longer matches this engine version. incomplete = missing a needed case. did_not_apply = loaded but irrelevant to the task. misrouted = the description/metadata led you here wrongly."
            },
            "note": {
              "type": "string",
              "maxLength": 280,
              "description": "Optional, max 280 chars. About the ENTRY only — never the user's project, files, or code."
            },
            "deviation": {
              "type": "string",
              "maxLength": 280,
              "description": "Optional, max 280 chars. What you did instead of / on top of the entry's instructions."
            }
          },
          "required": [
            "entry_id",
            "outcome"
          ],
          "additionalProperties": false
        },
        "minItems": 1,
        "maxItems": 10,
        "description": "1-10 outcome reports, batched at a natural checkpoint (one call, not one per entry)."
      },
      "engine_version": {
        "type": "string",
        "minLength": 1,
        "maxLength": 32,
        "description": "The Summer Engine version in use, e.g. \"4.6.1\"."
      },
      "agent_model": {
        "type": "string",
        "minLength": 1,
        "maxLength": 64,
        "description": "The model you are, e.g. claude-fable-5, gpt-5.5-codex; use \"unknown\" if unsure."
      }
    },
    "required": [
      "reports",
      "engine_version",
      "agent_model"
    ],
    "additionalProperties": false
  }
  ```
</Accordion>

**Example:** Feedback

<CodeGroup>
  ```json MCP theme={null}
  {
    "name": "summer_library_feedback",
    "arguments": {}
  }
  ```

  ```bash CLI theme={null}
  summer docs feedback
  ```
</CodeGroup>

***

### plan

`docs.plan`: **Plan**

Plan the right Summer workflow for a game-building task: skill routes, tool groups, confirmation gates, and verification steps.

| | |
| - | - |
| **MCP** | `summer_start_game_task` in the npm MCP |
| **CLI** | `summer docs plan` |
| **Runs** | On your computer, in the `summer-engine` npm package. |
| **Effect** | Reads only. Changes nothing. |
| **Asks you first** | No. It changes nothing. |
| **3.x names** | `summer_start_game_task` |

**Inputs:**

| Input | Type | Required | Description |
| - | - | - | - |
| `goal` | string | Yes | The user's game-building goal or task. |
| `mode` | "auto" \| "new-game" \| "feature" \| "asset" \| "debug" \| "playtest" \| "polish" \| "ship" | No | Optional task mode override. Default `"auto"`. |
| `target` | "auto" \| "2d" \| "3d" \| "ui" \| "audio" \| "animation" \| "level" \| "npc" \| "multiplayer" | No | Optional content/system target override. Default `"auto"`. |
| `assetPolicy` | "reuse-first" \| "ask-before-paid-generation" \| "no-paid-generation" \| "generate-when-clearly-needed" | No | How aggressively to use paid asset generation. Default `"ask-before-paid-generation"`. |
| `verification` | "none" \| "fast" \| "full" | No | How much engine verification the agent should plan for. Default `"full"`. |

<Accordion title="Input JSON schema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "goal": {
        "type": "string",
        "description": "The user's game-building goal or task."
      },
      "mode": {
        "type": "string",
        "enum": [
          "auto",
          "new-game",
          "feature",
          "asset",
          "debug",
          "playtest",
          "polish",
          "ship"
        ],
        "default": "auto",
        "description": "Optional task mode override."
      },
      "target": {
        "type": "string",
        "enum": [
          "auto",
          "2d",
          "3d",
          "ui",
          "audio",
          "animation",
          "level",
          "npc",
          "multiplayer"
        ],
        "default": "auto",
        "description": "Optional content/system target override."
      },
      "assetPolicy": {
        "type": "string",
        "enum": [
          "reuse-first",
          "ask-before-paid-generation",
          "no-paid-generation",
          "generate-when-clearly-needed"
        ],
        "default": "ask-before-paid-generation",
        "description": "How aggressively to use paid asset generation."
      },
      "verification": {
        "type": "string",
        "enum": [
          "none",
          "fast",
          "full"
        ],
        "default": "full",
        "description": "How much engine verification the agent should plan for."
      }
    },
    "required": [
      "goal"
    ],
    "additionalProperties": false
  }
  ```
</Accordion>

**Example:** Plan

<CodeGroup>
  ```json MCP theme={null}
  {
    "name": "summer_start_game_task",
    "arguments": {}
  }
  ```

  ```bash CLI theme={null}
  summer docs plan
  ```
</CodeGroup>

***

### read

`docs.read`: **Read a Summer doc**

Read one Summer skill, Studio guide or docs page by its id from docs.search, as Markdown. Long texts are cut at maxCharacters and say so. Free.

| | |
| - | - |
| **MCP** | `summer_docs_read`, a tool on the hosted MCP. Elsewhere: `summer_call` with `"op": "docs.read"` |
| **CLI** | `summer docs read` |
| **Runs** | On Summer's servers: the hosted MCP, or the npm MCP after `summer login`. The npm MCP also runs it on your computer. Needs your Summer sign-in. |
| **Effect** | Reads only. Changes nothing. |
| **Asks you first** | No. It changes nothing. |
| **3.x names** | `summer_read_library` |

**Inputs:**

| Input | Type | Required | Description |
| - | - | - | - |
| `id` | string | Yes | skill/\<slug>, guide/\<id> or docs/\<path>, from docs.search. Length 3 to 200. |
| `maxCharacters` | integer | No | Most characters of text to return. Default `24000`. Range 500 to 200000. |

<Accordion title="Input JSON schema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "id": {
        "description": "skill/<slug>, guide/<id> or docs/<path>, from docs.search.",
        "type": "string",
        "minLength": 3,
        "maxLength": 200,
        "pattern": "^(skill|guide|docs)\\/[A-Za-z0-9/_.-]+$"
      },
      "maxCharacters": {
        "description": "Most characters of text to return.",
        "default": 24000,
        "type": "integer",
        "minimum": 500,
        "maximum": 200000
      }
    },
    "required": [
      "id"
    ]
  }
  ```
</Accordion>

<Accordion title="Result JSON schema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "id": {
        "type": "string"
      },
      "kind": {
        "type": "string",
        "enum": [
          "skill",
          "guide",
          "docs"
        ]
      },
      "title": {
        "type": "string"
      },
      "url": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ]
      },
      "text": {
        "type": "string"
      },
      "truncated": {
        "type": "boolean"
      },
      "totalCharacters": {
        "type": "number"
      }
    },
    "required": [
      "id",
      "kind",
      "title",
      "url",
      "text",
      "truncated",
      "totalCharacters"
    ],
    "additionalProperties": false
  }
  ```
</Accordion>

**Example:** The publishing guide, start to finish.

<CodeGroup>
  ```json MCP theme={null}
  {
    "name": "summer_docs_read",
    "arguments": {
      "id": "skill/publish-your-game"
    }
  }
  ```

  ```bash CLI theme={null}
  summer docs read --id skill/publish-your-game
  ```
</CodeGroup>

***

### search

`docs.search`: **Search Summer docs**

Search Summer's own skills, Studio guides and docs pages by describing the task in plain words. Returns ids, titles and summaries. Free. Next: docs.read with an id.

| | |
| - | - |
| **MCP** | `summer_docs_search`, a tool on the hosted MCP. Elsewhere: `summer_call` with `"op": "docs.search"` |
| **CLI** | `summer docs search` |
| **Runs** | On Summer's servers: the hosted MCP, or the npm MCP after `summer login`. The npm MCP also runs it on your computer. Needs your Summer sign-in. |
| **Effect** | Reads only. Changes nothing. |
| **Asks you first** | No. It changes nothing. |
| **3.x names** | `summer_search_library` |

**Inputs:**

| Input | Type | Required | Description |
| - | - | - | - |
| `query` | string | Yes | The task in plain words: "publish my game", "multiplayer lobby", "store art sizes". Length 1 to 300. |
| `kind` | "skill" \| "guide" \| "docs" | No | Only skills (how to build with Summer), guides (Studio tools) or docs pages. |
| `limit` | integer | No | Default `8`. Range 1 to 20. |

<Accordion title="Input JSON schema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "query": {
        "description": "The task in plain words: \"publish my game\", \"multiplayer lobby\", \"store art sizes\".",
        "type": "string",
        "minLength": 1,
        "maxLength": 300
      },
      "kind": {
        "description": "Only skills (how to build with Summer), guides (Studio tools) or docs pages.",
        "type": "string",
        "enum": [
          "skill",
          "guide",
          "docs"
        ]
      },
      "limit": {
        "default": 8,
        "type": "integer",
        "minimum": 1,
        "maximum": 20
      }
    },
    "required": [
      "query"
    ]
  }
  ```
</Accordion>

<Accordion title="Result JSON schema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "items": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "id": {
              "description": "For docs.read.",
              "type": "string"
            },
            "kind": {
              "type": "string",
              "enum": [
                "skill",
                "guide",
                "docs"
              ]
            },
            "title": {
              "type": "string"
            },
            "summary": {
              "type": "string"
            },
            "url": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          "required": [
            "id",
            "kind",
            "title",
            "summary",
            "url"
          ],
          "additionalProperties": false
        }
      }
    },
    "required": [
      "items"
    ],
    "additionalProperties": false
  }
  ```
</Accordion>

**Example:** Find the publishing guide.

<CodeGroup>
  ```json MCP theme={null}
  {
    "name": "summer_docs_search",
    "arguments": {
      "query": "publish my game on Summer Games"
    }
  }
  ```

  ```bash CLI theme={null}
  summer docs search --query 'publish my game on Summer Games'
  ```
</CodeGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.