Team Tools

A team groups creators, roles and projects, and every token is scoped to exactly one.

A team groups creators, roles and projects, and every token is scoped to exactly one. These tools read and manage the teams the account can act in.

Tools

create_team

DESTRUCTIVE

Create a team owned by the caller. Growth-tier capability.

Creates a team owned by the caller. Teams are the tenant every project, plan and subscription hangs off; the caller becomes the owner, which is not a membership row and cannot later be removed or re-roled.

Growth-tier capability. On a lower tier this returns TEAM_TIER_REQUIRED and creates nothing. See what the tier gates.

Requires ability

The token behind the MCP session must hold it, or the call is refused with TOKEN_MISSING_ABILITY.

Runs the same action as

The REST endpoint and this tool share one action, so validation, permissions and events are identical.

Fires one event

Delivered to every endpoint subscribed to it once the change is made.

Annotations

DestructiveOpen world

A client that honours annotations asks a person before running it. It reaches beyond Subscriby: a connector, a provider or a member.

Arguments

name*string

Team name, 1..255 characters.

What it returns

{  "data": {    "id": "a83f0d51-4c92-4b7e-8615-2fd9e70a3c86",    "name": "Research Collective",    "owner_user_id": "2a91c4e7-6f38-4b52-8e0d-9c1a7b3f5d80"  }}

How it fails

AUTHENTICATION_REQUIRED

no authenticated user on the request.

TOKEN_MISSING_ABILITY

token lacks team:create.

TEAM_TIER_REQUIRED

the caller's platform tier does not include Teams.

VALIDATION_FAILED

name empty or longer than 255 characters.

delete_team

DESTRUCTIVE

Delete a team and everything scoped to it. Owner only, irreversible.

Deletes a team. Only the owner may do it — destroying the container everyone else works in is not something a member can decide.

Irreversible, and it takes everything with it

A team is the tenant that projects, plans, subscriptions, roles and groups hang off. Deleting one is not a tidy-up; confirm with a human before calling this. The tool is annotated destructive so a client can prompt for confirmation.

Unlike create_team and update_team, this is not tier-gated. A creator whose tier lapsed has to be able to take access away. See what the tier gates.

Requires ability

The token behind the MCP session must hold it, or the call is refused with TOKEN_MISSING_ABILITY.

Runs the same action as

The REST endpoint and this tool share one action, so validation, permissions and events are identical.

Fires one event

Delivered to every endpoint subscribed to it once the change is made.

Annotations

DestructiveOpen world

A client that honours annotations asks a person before running it. It reaches beyond Subscriby: a connector, a provider or a member.

Arguments

team_id*string

UUID of the team to delete. Irreversible.

What it returns

{  "data": {    "id": "a83f0d51-4c92-4b7e-8615-2fd9e70a3c86",    "deleted": true  }}

How it fails

AUTHENTICATION_REQUIRED

no authenticated user on the request.

TOKEN_MISSING_ABILITY

token lacks team:delete.

RESOURCE_NOT_FOUND

no such team, or the caller is not a member.

VALIDATION_FAILED

the caller is a member but not the owner.

Fetch a single team by UUID from the caller's visibility set (owned + membership). Foreign teams return RESOURCE_NOT_FOUND.

Fetch one team the authenticated user owns or belongs to. Foreign teams always return RESOURCE_NOT_FOUND to prevent existence leaks.

Requires ability

The token behind the MCP session must hold it, or the call is refused with TOKEN_MISSING_ABILITY.

Runs the same action as

The REST endpoint and this tool share one action, so validation, permissions and events are identical.

Annotations

Read-only

It reads and never changes anything.

Arguments

team_id*string

UUID of the team to fetch.

What it returns

{  "data": {    "id": "a83f0d51-4c92-4b7e-8615-2fd9e70a3c86",    "name": "Research Studio",    "owner_user_id": "2a91c4e7-6f38-4b52-8e0d-9c1a7b3f5d80",    "personal": false,    "created_at": "2026-05-18T10:05:00Z"  }}

How it fails

RESOURCE_NOT_FOUND

team_id is not a valid UUID, or it falls outside the caller's visibility set.

AUTHENTICATION_REQUIRED

no authenticated user on the request.

TOKEN_MISSING_ABILITY

token lacks team:view.

List every team the authenticated user owns or belongs to. Read-only — team CRUD stays in the dashboard.

List every team the caller has visibility into. Useful before minting a token scoped to a specific team — agents can surface a picker instead of making the user hunt for a UUID. Read-only; team create/update/delete flows stay in the dashboard.

Requires ability

The token behind the MCP session must hold it, or the call is refused with TOKEN_MISSING_ABILITY.

Runs the same action as

The REST endpoint and this tool share one action, so validation, permissions and events are identical.

Annotations

Read-only

It reads and never changes anything.

Arguments

This tool takes no arguments.

What it returns

{  "data": [    {      "id": "a83f0d51-4c92-4b7e-8615-2fd9e70a3c86",      "name": "Research Collective",      "owner_user_id": "2a91c4e7-6f38-4b52-8e0d-9c1a7b3f5d80",      "personal": true,      "created_at": "2026-01-12T10:05:00Z"    }  ],  "meta": { "total": 1 }}

personal is true for the auto-created signup team and false for every other team the user created or joined.

How it fails

AUTHENTICATION_REQUIRED

no authenticated user on the request.

TOKEN_MISSING_ABILITY

token lacks team:view-any.

update_team

DESTRUCTIVE

Rename a team. Owner only, Growth-tier capability.

Renames a team. name is the only mutable field on a team — ownership does not transfer, and the tier a team sits on is a property of the owner's billing rather than of the team.

Only the owner may rename. Belonging to a team is enough to read it and to add to it; changing what everyone else's workspace is called is the owner's alone.

Growth-tier capability. On a lower tier this returns TEAM_TIER_REQUIRED and changes nothing.

Requires ability

The token behind the MCP session must hold it, or the call is refused with TOKEN_MISSING_ABILITY.

Runs the same action as

The REST endpoint and this tool share one action, so validation, permissions and events are identical.

Fires one event

Delivered to every endpoint subscribed to it once the change is made.

Annotations

DestructiveOpen world

A client that honours annotations asks a person before running it. It reaches beyond Subscriby: a connector, a provider or a member.

Arguments

team_id*string

UUID of the team to rename.

name*string

New team name, 1..255 characters.

What it returns

{  "data": {    "id": "a83f0d51-4c92-4b7e-8615-2fd9e70a3c86",    "name": "Research Collective",    "owner_user_id": "2a91c4e7-6f38-4b52-8e0d-9c1a7b3f5d80"  }}

Emits team.updated, which fires however the rename happened — this tool, the REST endpoint, or the dashboard.

How it fails

AUTHENTICATION_REQUIRED

no authenticated user on the request.

TOKEN_MISSING_ABILITY

token lacks team:update.

TEAM_TIER_REQUIRED

the caller's platform tier does not include Teams.

RESOURCE_NOT_FOUND

no such team, or the caller is not a member. A team in another account is invisible rather than forbidden, so the tool cannot be used to discover that an id exists.

VALIDATION_FAILED

name empty or too long, or the caller is a member but not the owner.

How is this guide?

On this page

Subscriby is a product designed by you — for you.No boardroom full of executives deciding what we ships next. Our roadmap always shaped by you with your feedback.

Share feedback or a request