> ## 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: plugins

> Plugins for desktop projects. For each operation: what it does, whether it asks you first, its inputs and an example call.

Plugins for desktop projects. 2 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 |
| - | - | - |
| [`plugins.search`](#search) | Find add-ons for a desktop project in Summer's plugin catalog by words, category or tier: name, what it does, its tier and how well agents work with it. | Never |
| [`plugins.suggest`](#suggest) | Ask the person to send the Summer team a plugin to review for the catalog: its link, why, and what project it fits. | Yes, by default |

***

### search

`plugins.search`: **Find plugins**

Find add-ons for a desktop project in Summer's plugin catalog by words, category or tier: name, what it does, its tier and how well agents work with it. Next: the Summer Engine plugin tools to add one.

| | |
| - | - |
| **MCP** | `summer_call` with `"op": "plugins.search"` |
| **CLI** | `summer plugins search` |
| **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. |

**Inputs:**

| Input | Type | Required | Description |
| - | - | - | - |
| `query` | string | No | What the plugin should do: "steam achievements", "dialogue". Length 0 to 200. |
| `category` | string | No | Length 0 to 80. |
| `tier` | "summer-verified" \| "curated-godot" \| "godot-assetlib" | No | |
| `limit` | integer | No | Default `10`. Range 1 to 50. |

<Accordion title="Input JSON schema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "query": {
        "description": "What the plugin should do: \"steam achievements\", \"dialogue\".",
        "type": "string",
        "maxLength": 200
      },
      "category": {
        "type": "string",
        "maxLength": 80
      },
      "tier": {
        "type": "string",
        "enum": [
          "summer-verified",
          "curated-godot",
          "godot-assetlib"
        ]
      },
      "limit": {
        "default": 10,
        "type": "integer",
        "minimum": 1,
        "maximum": 50
      }
    }
  }
  ```
</Accordion>

<Accordion title="Result JSON schema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "items": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "slug": {
              "type": "string"
            },
            "name": {
              "type": "string"
            },
            "author": {
              "type": "string"
            },
            "description": {
              "type": "string"
            },
            "category": {
              "type": "string"
            },
            "tags": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "tier": {
              "description": "summer-verified, curated-godot or godot-assetlib.",
              "type": "string"
            },
            "link": {
              "type": "string"
            },
            "aiSafe": {
              "description": "verified, likely or unknown: how well agents work with it.",
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "url": {
              "description": "Its page on summerengine.com.",
              "type": "string"
            }
          },
          "required": [
            "slug",
            "name",
            "author",
            "description",
            "category",
            "tags",
            "tier",
            "link",
            "aiSafe",
            "url"
          ],
          "additionalProperties": false
        }
      }
    },
    "required": [
      "items"
    ],
    "additionalProperties": false
  }
  ```
</Accordion>

**Example:** Is there a Steam plugin?

<CodeGroup>
  ```json MCP theme={null}
  {
    "name": "summer_call",
    "arguments": {
      "op": "plugins.search",
      "input": {
        "query": "steam achievements"
      }
    }
  }
  ```

  ```bash CLI theme={null}
  summer plugins search --query 'steam achievements'
  ```
</CodeGroup>

***

### suggest

`plugins.suggest`: **Suggest a plugin to Summer**

Ask the person to send the Summer team a plugin to review for the catalog: its link, why, and what project it fits. Returns a link; nothing is sent until they confirm. Next: jobs.wait.

| | |
| - | - |
| **MCP** | `summer_call` with `"op": "plugins.suggest"` |
| **CLI** | `summer plugins suggest` |
| **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** | Yes: **Contact people** is off by default in Agent permissions. |

**Inputs:**

| Input | Type | Required | Description |
| - | - | - | - |
| `pluginUrl` | string | Yes | The plugin's page or repository. Length 0 to 2048. |
| `reason` | string | Yes | Why it should be in the catalog. Length 1 to 4000. |
| `projectKind` | string | No | The kind of project it fits. Length 0 to 240. |
| `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. |

<Accordion title="Input JSON schema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "pluginUrl": {
        "description": "The plugin's page or repository.",
        "type": "string",
        "maxLength": 2048
      },
      "reason": {
        "description": "Why it should be in the catalog.",
        "type": "string",
        "minLength": 1,
        "maxLength": 4000
      },
      "projectKind": {
        "description": "The kind of project it fits.",
        "type": "string",
        "maxLength": 240
      },
      "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": [
      "pluginUrl",
      "reason"
    ]
  }
  ```
</Accordion>

<Accordion title="Result JSON schema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "requestId": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ]
      },
      "status": {
        "type": "string"
      },
      "received": {
        "type": "boolean"
      }
    },
    "required": [
      "requestId",
      "status",
      "received"
    ],
    "additionalProperties": false
  }
  ```
</Accordion>

**Example:** Ask Summer to review a plugin.

<CodeGroup>
  ```json MCP theme={null}
  {
    "name": "summer_call",
    "arguments": {
      "op": "plugins.suggest",
      "input": {
        "pluginUrl": "https://github.com/example/dialogue-plugin",
        "reason": "Branching dialogue for story games."
      }
    }
  }
  ```

  ```bash CLI theme={null}
  summer plugins suggest --plugin-url https://github.com/example/dialogue-plugin --reason 'Branching dialogue for story games.'
  ```
</CodeGroup>


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