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

# Teams

> List teams and their members; create, update, archive, and reorganize teams; add or remove team members.

Teams group users in Attention and control which calls, scorecards, and labels apply to them. Teams can be nested arbitrarily — every team has an optional parent, and the read tools return the full hierarchy.

Read tools (`list_teams`, `get_team`, `get_team_members`) require only `mcp:read`. All write tools require `mcp:write` **plus** the admin role.

## Read tools

### list\_teams

<Note>Scope: `mcp:read`. No parameters.</Note>

List all teams in your organization with their structure and sub-teams.

**Returns:** A Markdown tree of teams with IDs, names, and parent relationships.

**Example prompt:** *"What teams do we have in Attention?"*

***

### get\_team

<Note>Scope: `mcp:read`.</Note>

Get details about a specific team, including its sub-teams. Use the team ID from `list_teams`.

<ParamField query="id" type="string" required>
  The team ID.
</ParamField>

**Returns:** Team details (name, parent team, sub-teams).

***

### get\_team\_members

<Note>Scope: `mcp:read`.</Note>

List all members of a specific team — names, emails, and roles.

<ParamField query="id" type="string" required>
  The team ID.
</ParamField>

**Returns:** Markdown list of team members with names, emails, and roles.

## Write tools

### create\_team

<Warning>Scope: `mcp:write`. Requires admin role.</Warning>

Create a new team in your organization. Teams organize users and control which calls, scorecards, and labels apply to them.

<ParamField query="name" type="string" required>
  The team name. Will be prefixed with the organization name automatically (e.g. `Sales` becomes `[Acme Corp] Sales`).
</ParamField>

<ParamField query="parent_team_id" type="string">
  UUID of the parent team. Omit for a top-level team. Use `list_teams` to find team IDs.
</ParamField>

**Returns:** ID, name, and parent team of the newly created team.

***

### update\_team

<Warning>Scope: `mcp:write`. Requires admin role.</Warning>

Update a team's name or parent team. Omitted fields preserve their current values.

<ParamField query="team_id" type="string" required>
  The UUID of the team to update.
</ParamField>

<ParamField query="name" type="string">
  New team name.
</ParamField>

<ParamField query="parent_team_id" type="string">
  New parent team UUID. Use `list_teams` to find team IDs.
</ParamField>

***

### archive\_team

<Warning>Scope: `mcp:write`. Requires admin role.</Warning>

Archive or unarchive a team. Archived teams are hidden from most views but their data is preserved — this is reversible.

<ParamField query="team_id" type="string" required>
  The UUID of the team.
</ParamField>

<ParamField query="archived" type="boolean" required>
  Set to `true` to archive, `false` to unarchive.
</ParamField>

***

### change\_team\_parent

<Warning>Scope: `mcp:write`. Requires admin role.</Warning>

Move a team under a different parent team, or make it top-level by omitting `parent_team_id`. Use `list_teams` to see the current hierarchy.

<ParamField query="team_id" type="string" required>
  UUID of the team to move.
</ParamField>

<ParamField query="parent_team_id" type="string">
  UUID of the new parent team. Omit to make the team top-level.
</ParamField>

***

### add\_team\_member

<Warning>Scope: `mcp:write`. Requires admin role.</Warning>

Add a user to a team. Provide either `user_id` or `user_email`.

<ParamField query="team_id" type="string" required>
  The UUID of the team to add the member to.
</ParamField>

<ParamField query="user_id" type="string">
  UUID of the user to add. Provide either `user_id` or `user_email`.
</ParamField>

<ParamField query="user_email" type="string">
  Email of the user to add. Provide either `user_id` or `user_email`.
</ParamField>

<ParamField query="role_id" type="string">
  UUID of the role to assign. If omitted, the user's default role is used. Use [`list_roles`](/mcp/tools/users-roles#list_roles) to find role IDs.
</ParamField>

<ParamField query="primary_team" type="boolean">
  Whether this should be the user's primary team.
</ParamField>

***

### remove\_team\_member

<Warning>Scope: `mcp:write`. Requires admin role.</Warning>

Remove a user from a team. Use `get_team_members` to find user IDs.

<ParamField query="team_id" type="string" required>
  The UUID of the team.
</ParamField>

<ParamField query="user_id" type="string" required>
  UUID of the user to remove from the team.
</ParamField>
