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 |
|---|---|---|
team.create | Create a team (a shared workspace) in Summer Studio with the person as its owner. | Not by default |
team.invite | Invite someone by email to one of the person’s teams in Summer Studio; Summer emails them a link. | Yes, by default |
team.list | The person’s teams in Summer Studio (shared workspaces). | Never |
team.rename | Rename one of the person’s teams in Summer Studio. | Not by default |
team.withdraw_invite | Withdraw a pending invite to one of the person’s teams, so its link stops working. | Yes, by default |
create
team.create: Create a team
Create a team (a shared workspace) in Summer Studio with the person as its owner. Nobody else is in it yet. Returns the team id. Next: team.invite.
| MCP | summer_call with "op": "team.create" |
| CLI | summer team create |
| 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. |
| 3.x names | summer_team#create |
| Input | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Length 1 to 120. |
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": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 120
},
"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": [
"name"
]
}
Result JSON schema
Result JSON schema
{
"type": "object",
"properties": {
"created": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
}
},
"required": [
"id",
"name"
],
"additionalProperties": false
},
"studioUrl": {
"type": "string"
}
},
"required": [
"created",
"studioUrl"
],
"additionalProperties": false
}
{
"name": "summer_call",
"arguments": {
"op": "team.create",
"input": {
"name": "Night Shift Games"
}
}
}
summer team create --name 'Night Shift Games'
invite
team.invite: Invite someone to a team
Invite someone by email to one of the person’s teams in Summer Studio; Summer emails them a link. Runs when the person allows Contact people (off by default); otherwise answers needs_approval with a link and sends nothing.
| MCP | summer_call with "op": "team.invite" |
| CLI | summer team invite |
| 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. |
| 3.x names | summer_team#invite |
| Input | Type | Required | Description |
|---|---|---|---|
teamId | string | No | From team.list (a team’s exact name works too). Length 1 to 120. |
email | string | Yes | Who to invite. Length 0 to 254. |
role | ”admin” | “member” | No | Default "member". |
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": {
"teamId": {
"description": "From team.list (a team's exact name works too).",
"type": "string",
"minLength": 1,
"maxLength": 120
},
"email": {
"description": "Who to invite.",
"type": "string",
"maxLength": 254,
"format": "email",
"pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
},
"role": {
"default": "member",
"type": "string",
"enum": [
"admin",
"member"
]
},
"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": [
"email"
]
}
Result JSON schema
Result JSON schema
{
"type": "object",
"properties": {
"workspace": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
}
},
"required": [
"id",
"name"
],
"additionalProperties": false
},
"invited": {
"type": "object",
"properties": {
"email": {
"type": "string"
},
"role": {
"type": "string"
}
},
"required": [
"email",
"role"
],
"additionalProperties": false
},
"emailSent": {
"type": "boolean"
},
"inviteUrl": {
"type": "string"
},
"note": {
"type": "string"
},
"studioUrl": {
"type": "string"
}
},
"required": [
"workspace",
"invited",
"emailSent",
"inviteUrl",
"note",
"studioUrl"
],
"additionalProperties": false
}
{
"name": "summer_call",
"arguments": {
"op": "team.invite",
"input": {
"email": "sam@example.com"
}
}
}
summer team invite --email sam@example.com
list
team.list: List my teams
The person’s teams in Summer Studio (shared workspaces). With teamId, or when they have one shared team: its members and pending invites. Next: team.invite or team.create.
| MCP | summer_call with "op": "team.list" |
| CLI | summer team 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_team |
| Input | Type | Required | Description |
|---|---|---|---|
teamId | string | No | From team.list (a team’s exact name works too). Length 1 to 120. |
Input JSON schema
Input JSON schema
{
"type": "object",
"properties": {
"teamId": {
"description": "From team.list (a team's exact name works too).",
"type": "string",
"minLength": 1,
"maxLength": 120
}
}
}
Result JSON schema
Result JSON schema
{
"type": "object",
"properties": {
"teams": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"kind": {
"type": "string"
},
"yourRole": {
"type": "string"
},
"canInvite": {
"type": "boolean"
}
},
"required": [
"id",
"name",
"kind",
"yourRole",
"canInvite"
],
"additionalProperties": false
}
},
"team": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"kind": {
"type": "string"
},
"yourRole": {
"type": "string"
},
"canInvite": {
"type": "boolean"
}
},
"required": [
"id",
"name",
"kind",
"yourRole",
"canInvite"
],
"additionalProperties": false
},
"members": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"role": {
"type": "string"
},
"owner": {
"type": "boolean"
},
"you": {
"type": "boolean"
}
},
"required": [
"name",
"role",
"owner",
"you"
],
"additionalProperties": false
}
},
"invites": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"email": {
"type": "string"
},
"role": {
"type": "string"
},
"expiresAt": {}
},
"required": [
"id",
"email",
"role",
"expiresAt"
],
"additionalProperties": false
}
},
"note": {
"type": "string"
},
"studioUrl": {
"type": "string"
}
},
"required": [
"studioUrl"
],
"additionalProperties": false
}
{
"name": "summer_call",
"arguments": {
"op": "team.list",
"input": {}
}
}
summer team list
rename
team.rename: Rename a team
Rename one of the person’s teams in Summer Studio. Its members see the new name. Next: team.list.
| MCP | summer_call with "op": "team.rename" |
| CLI | summer team 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. |
| 3.x names | summer_team#rename |
| Input | Type | Required | Description |
|---|---|---|---|
teamId | string | Yes | From team.list (a team’s exact name works too). Length 1 to 120. |
name | string | Yes | Length 1 to 120. |
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": {
"teamId": {
"description": "From team.list (a team's exact name works too).",
"type": "string",
"minLength": 1,
"maxLength": 120
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 120
},
"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": [
"teamId",
"name"
]
}
Result JSON schema
Result JSON schema
{
"type": "object",
"properties": {
"workspace": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
}
},
"required": [
"id",
"name"
],
"additionalProperties": false
},
"studioUrl": {
"type": "string"
}
},
"required": [
"workspace",
"studioUrl"
],
"additionalProperties": false
}
{
"name": "summer_call",
"arguments": {
"op": "team.rename",
"input": {
"teamId": "ws_1",
"name": "Night Shift"
}
}
}
summer team rename --team-id ws_1 --name 'Night Shift'
withdraw_invite
team.withdraw_invite: Withdraw a team invite
Withdraw a pending invite to one of the person’s teams, so its link stops working. Runs when the person allows Delete for good (off by default); otherwise answers needs_approval with a link.
| MCP | summer_call with "op": "team.withdraw_invite" |
| CLI | summer team withdraw-invite |
| Runs | On Summer’s servers: the hosted MCP, or the npm MCP after summer login. Needs your Summer sign-in. |
| Effect | Removes or stops something for good. |
| Asks you first | Yes: Delete for good is off by default in Agent permissions. |
| 3.x names | summer_team#revoke |
| Input | Type | Required | Description |
|---|---|---|---|
teamId | string | No | From team.list (a team’s exact name works too). Length 1 to 120. |
inviteId | string | Yes | An invite id from team.list. Length 1 to 128. |
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": {
"teamId": {
"description": "From team.list (a team's exact name works too).",
"type": "string",
"minLength": 1,
"maxLength": 120
},
"inviteId": {
"description": "An invite id from team.list.",
"type": "string",
"minLength": 1,
"maxLength": 128
},
"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": [
"inviteId"
]
}
Result JSON schema
Result JSON schema
{
"type": "object",
"properties": {
"workspace": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
}
},
"required": [
"id",
"name"
],
"additionalProperties": false
},
"revoked": {
"type": "object",
"properties": {
"email": {
"type": "string"
}
},
"required": [
"email"
],
"additionalProperties": false
},
"studioUrl": {
"type": "string"
}
},
"required": [
"workspace",
"revoked",
"studioUrl"
],
"additionalProperties": false
}
{
"name": "summer_call",
"arguments": {
"op": "team.withdraw_invite",
"input": {
"inviteId": "inv_9"
}
}
}
summer team withdraw-invite --invite-id inv_9

