Workspaces and people
Find out which workspaces you can act in, who is on the team, and invite someone new.
With these tools an assistant can tell which workspaces you belong to, see who work can be given to and how the desk is split into teams, and invite a new teammate.
| Tool | What it does | Role needed | Changes data? |
|---|---|---|---|
list_my_workspaces | Lists your workspaces, your role in each, and whether this connection may act there | viewer | read-only |
list_members | Lists the active members of a workspace | viewer | read-only |
list_teams | Lists the desk's teams and who is on each | viewer | read-only |
invite_teammate | Invites one email address at a named role, or resends a pending invitation | admin | adds |
Source: _TOOLS in services/runtime/src/runtime/mcp/tools.py, handlers
_list_my_workspaces, _list_members, _list_teams and _invite_teammate.
list_teams and invite_teammate send the client no read-only or destructive
hint. Their entries in the last column describe what the handler does.
list_my_workspaces
The one tool that takes no workspace_id, because it answers the question
every other tool needs answered first.
- Returns
workspaces, each withid,name,slug,roleandmcp_access, plusselection_required. mcp_accessisallowedorrevoked. A workspace where an admin has revoked your MCP access still appears, markedrevoked, so you can see why calls there are refused. See Workspace access.selection_requiredis true when you belong to more than one workspace. Every other tool then needs aworkspace_id, and this list is where to get it.
Source: _list_my_workspaces in services/runtime/src/runtime/mcp/tools.py.
list_members
- Returns
members, each withid,display_name,emailandrole, andtotal. - Only people who can actually be given work: an active membership on an active account. Pending invitations and deactivated people are left out.
- Sorted by display name. At most 500 rows come back;
totalis the full count, so a largertotalthan rows means the list was cut. - The
idhere is whatadd_todotakes asassignee_id. - The result is held to 64 KB. See Limits.
Source: _list_members, _active_members and _MEMBERS_MAX in
services/runtime/src/runtime/mcp/tools.py.
list_teams
No inputs beyond workspace_id. Returns the teams and their members exactly as
the helpdesk's own teams route does. A team id is what update_ticket and
create_ticket take as team_id.
Source: _list_teams in services/runtime/src/runtime/mcp/tools.py.
invite_teammate
- Inputs:
emailandrole, both required.roleis one ofadmin,editor,owner,support_managerorviewer. - Refusals: you cannot grant a role above your own; the refusal comes from the same invitation route Studio uses.
- If an invitation to that address is already pending, it is resent rather than duplicated.
- What comes back is the invitation's state, role and delivery. The invite link is never in the response. It travels only in the email.
- The delivery work runs after the call returns, so the call's duration tells you nothing about the address.
Source: _invite_teammate and _schedule_background in
services/runtime/src/runtime/mcp/tools.py.