# Tools · Members

> MCP tools for members: listing and searching members, inviting one person or a whole class, changing roles, removing someone from the community, organizing groups and tags, and building the org chart.

Who is in the community and how it is organized: listing and searching members, inviting one person or a whole class, changing roles, removing someone, creating groups, tagging people and saying who reports to whom in the org chart.

Inviting and changing a role happen on the first call, as in the dashboard; since the invite sends a real e-mail, the assistant shows beforehand who will receive it. Only removing a member and deleting a group or a tag **ask for your confirmation** in two steps. See [Money and confirmation](/mcp/dinheiro-e-confirmacao).

Each tool carries a badge: <span class="tool-kind tool-kind-read">Read-only</span> changes nothing, <span class="tool-kind tool-kind-write">Changes</span> creates or changes something right away, and <span class="tool-kind tool-kind-confirm">Asks to confirm</span> only acts after your yes to a summary. See [Money and confirmation](/mcp/dinheiro-e-confirmacao).

## In short

| Tool | What it does | Minimum role | Type |
|---|---|---|---|
| [`list_members`](#list-members) | Members with role and join date | Moderator | <span class="tool-kind tool-kind-read">Read-only</span> |
| [`invite_member`](#invite-member) | Invites one person, with role, groups and tags | Admin | <span class="tool-kind tool-kind-write">Changes</span> |
| [`invite_members`](#invite-members) | Invites up to 100 people at once, with the result line by line | Admin | <span class="tool-kind tool-kind-write">Changes</span> |
| [`update_member_role`](#update-member-role) | Changes a member's role | Admin | <span class="tool-kind tool-kind-write">Changes</span> |
| [`remove_member`](#remove-member) | Removes a person from the community | Admin | <span class="tool-kind tool-kind-confirm">Asks to confirm</span> |
| [`list_groups`](#list-groups) | Groups, with color, leader, parent group and how many people | Moderator | <span class="tool-kind tool-kind-read">Read-only</span> |
| [`create_group`](#create-group) | Creates a member group | Moderator | <span class="tool-kind tool-kind-write">Changes</span> |
| [`update_group`](#update-group) | Renames or changes a group | Moderator | <span class="tool-kind tool-kind-write">Changes</span> |
| [`delete_group`](#delete-group) | Deletes a group; the people stay in the community | Moderator | <span class="tool-kind tool-kind-confirm">Asks to confirm</span> |
| [`update_group_members`](#update-group-members) | Adds or removes people from a group | Moderator | <span class="tool-kind tool-kind-write">Changes</span> |
| [`list_tags`](#list-tags) | Tags in use, with color and how many people | Moderator | <span class="tool-kind tool-kind-read">Read-only</span> |
| [`update_member_tags`](#update-member-tags) | Tags or untags one or more people | Moderator | <span class="tool-kind tool-kind-write">Changes</span> |
| [`update_tag`](#update-tag) | Renames a tag or changes its color | Moderator | <span class="tool-kind tool-kind-write">Changes</span> |
| [`delete_tag`](#delete-tag) | Removes a tag from everyone | Moderator | <span class="tool-kind tool-kind-confirm">Asks to confirm</span> |
| [`get_org_chart`](#get-org-chart) | Who reports to whom, with the groups | Moderator | <span class="tool-kind tool-kind-read">Read-only</span> |
| [`set_manager`](#set-manager) | Sets who a person reports to | Moderator | <span class="tool-kind tool-kind-write">Changes</span> |
| [`list_activity_logs`](#list-activity-logs) | Who did what: team, assistant and members | Admin | <span class="tool-kind tool-kind-read">Read-only</span> |

## `list_members`

<span class="tool-kind tool-kind-read">Read-only</span>

**List members.** The members, with role and join date. *Minimum role: moderator.*

| Parameter | Type | Required | Description |
|---|---|---|---|
| `search` | text | No | Part of the name or email |
| `role` | `owner`, `admin`, `moderator`, `member`, `finance` | No | Only one role |
| `sort_by` | `joinedAt`, `lastSeenAt`, `displayName`, `role`, `fullName` | No | `joinedAt` for "who joined", `lastSeenAt` for "who showed up" |
| `order` | `asc`, `desc` | No | Ascending or descending |
| `page`, `limit` | number | No | Pagination |

**Returns:** the profiles (display name, name, role, join date, avatar) and the pagination.

**Ask like this:** *"Who joined the community in the last 7 days?"* · *"Who are the moderators?"*

## `invite_member`

<span class="tool-kind tool-kind-write">Changes</span>

**Invite one person.** Invites a person to the community, with a name, role, groups and tags. *Minimum role: admin.*

| Parameter | Type | Required | Description |
|---|---|---|---|
| `email` | e-mail | Yes | The person's e-mail |
| `name` | text, 2 to 100 | No | Full name. Without it, the name comes from the e-mail |
| `role` | `member`, `moderator`, `admin`, `finance` | No | Default: `member`. Nobody joins as owner through an invite |
| `groups` | list of names or ids, up to 20 | No | The groups the person joins (from `list_groups`) |
| `tags` | list of texts, up to 20 | No | The person's tags |

**Returns:** the invite sent: who received it, with what role, groups and tags.

**Ask like this:** *"Invite maria@memberfy.net as a moderator, in the March class group."*

**Notes:** the invite sends a real e-mail on the first call; the assistant shows beforehand who will receive it. Someone without an account gets the link to set a password; someone who already has an account gets a notice that they were added. See [Invite members](/membros/convidar-membros).

## `invite_members`

<span class="tool-kind tool-kind-write">Changes</span>

**Invite a class.** Invites up to 100 people at once, each with their own name, role, groups and tags, or with a default for everyone. *Minimum role: admin.*

| Parameter | Type | Required | Description |
|---|---|---|---|
| `people` | list of 1 to 100 | Yes | Each person with `email` (required), `name`, `role`, `groups` and `tags` |
| `role` | `member`, `moderator`, `admin`, `finance` | No | The role for anyone without their own. Default: `member` |
| `groups` | list, up to 20 | No | The groups for anyone without their own |
| `tags` | list, up to 20 | No | The tags for anyone without their own |

**Returns:** the result **line by line**: invited, already a member (`already_member`) or error, with the reason.

**Ask like this:** *"Invite these 30 people as members, all in the March class group: [list of names and e-mails]."*

**Notes:** the e-mails go out on the first call, which is why the assistant shows the list before inviting. Each line succeeds or fails on its own: someone who is already a member doesn't stop the rest. For more than 100 people, the assistant splits the list. See the recipe [Invite a class](/mcp/receitas#10-invite-a-class).

## `update_member_role`

<span class="tool-kind tool-kind-write">Changes</span>

**Change someone's role.** Changes a member's role. *Minimum role: admin.*

| Parameter | Type | Required | Description |
|---|---|---|---|
| `member` | text | Yes | The profile id (from `list_members`) or the person's e-mail |
| `role` | `member`, `moderator`, `admin`, `finance` | Yes | The new role |

**Returns:** the profile with the new role.

**Ask like this:** *"Promote ana@memberfy.net to moderator."*

**Notes:** it changes what the person can do right away; to undo it, ask for the old role. Only another owner can change the owner's role. See [Roles and permissions](/conceitos/papeis-e-permissoes).

## `remove_member`

<span class="tool-kind tool-kind-confirm">Asks to confirm</span>

**Remove member.** Removes a person from the community. *Minimum role: admin.*

| Parameter | Type | Required | Description |
|---|---|---|---|
| `member` | text | Yes | The profile id (from `list_members`) or the person's e-mail |

**Returns:** on the first call, the person's name, e-mail and role, and the confirmation code.

**Ask like this:** *"Remove bruno\@memberfy.net from the community."*

**Notes:** the person's certificates remain valid. Only an owner can remove another owner, and nobody can remove themselves this way. See [Manage members](/membros/gerenciar-membros).

## `list_groups`

<span class="tool-kind tool-kind-read">Read-only</span>

**List groups.** The member groups (departments, classes, squads), with color, leader, parent group and how many people each has. *Minimum role: moderator.*

Parameters: none.

**Returns:** the groups, with id, name, color, leader, parent group and number of people.

**Ask like this:** *"Which groups does the community have, and how many people are in each?"*

## `create_group`

<span class="tool-kind tool-kind-write">Changes</span>

**Create group.** Creates a member group. *Minimum role: moderator.*

| Parameter | Type | Required | Description |
|---|---|---|---|
| `name` | text | Yes | Unique in the community |
| `description` | plain text | No | No formatting: Markdown marks are stripped |
| `color` | hex color | No | E.g. `#2563EB` |
| `parent_group` | name or id | No | The group above it (board → area → squad) |

**Returns:** the group created, with its id.

**Ask like this:** *"Create the March class group, in blue, inside Students."*

See [Groups and org chart](/membros/grupos-e-organograma).

## `update_group`

<span class="tool-kind tool-kind-write">Changes</span>

**Rename or change group.** Changes a group's name, description, color or parent group. *Minimum role: moderator.*

| Parameter | Type | Required | Description |
|---|---|---|---|
| `group` | name or id | Yes | The group |
| `name` | text | No | The new name |
| `description` | plain text | No | No formatting: Markdown marks are stripped |
| `color` | hex color | No | |
| `parent_group` | name or id | No | The new group above it |

**Returns:** the updated group.

**Ask like this:** *"Rename the March class group to Class 2026.1."*

## `delete_group`

<span class="tool-kind tool-kind-confirm">Asks to confirm</span>

**Delete group.** Deletes a group. *Minimum role: moderator.*

| Parameter | Type | Required | Description |
|---|---|---|---|
| `group` | name or id | Yes | The group |

**Returns:** on the first call, the summary (the group and how many people it has) and the code; on the second, the deletion.

**Ask like this:** *"Delete the Class of 2024 group."*

**Notes:** the people leave the group but stay in the community; the groups below it move up one level.

## `update_group_members`

<span class="tool-kind tool-kind-write">Changes</span>

**Add or remove people from a group.** Adds people to a group or removes them, without touching their other groups. *Minimum role: moderator.*

| Parameter | Type | Required | Description |
|---|---|---|---|
| `group` | name or id | Yes | The group |
| `add` | list of profile ids or e-mails | No | Who joins |
| `remove` | list of profile ids or e-mails | No | Who leaves |

**Returns:** the result person by person.

**Ask like this:** *"Put everyone who bought the mentoring this month in the Mentoring group."*

## `list_tags`

<span class="tool-kind tool-kind-read">Read-only</span>

**List member tags.** The tags used in the community, with their color and how many people have each one. *Minimum role: moderator.*

Parameters: none.

**Returns:** the tags, with name, color and number of people.

**Ask like this:** *"Which tags exist, and how many people have each one?"*

## `update_member_tags`

<span class="tool-kind tool-kind-write">Changes</span>

**Tag or untag.** Adds and removes tags on one or more people, keeping their other tags. *Minimum role: moderator.*

| Parameter | Type | Required | Description |
|---|---|---|---|
| `members` | list of profile ids or e-mails | Yes | The people |
| `add` | list of tags | No | The tags to add |
| `remove` | list of tags | No | The tags to remove |

**Returns:** the result person by person.

**Ask like this:** *"Tag ana@memberfy.net and bruno@memberfy.net with Mentor."*

**Notes:** system tags, such as **Speaker**, can't be set by hand. See [Tags](/membros/tags).

## `update_tag`

<span class="tool-kind tool-kind-write">Changes</span>

**Rename or recolor tag.** Renames a tag on everyone who has it and changes its color. *Minimum role: moderator.*

| Parameter | Type | Required | Description |
|---|---|---|---|
| `tag` | text | Yes | The tag |
| `new_name` | text | No | The new name |
| `color` | hex color | No | |

**Returns:** the updated tag.

**Ask like this:** *"Rename the Mentor tag to Coach and make it purple."*

## `delete_tag`

<span class="tool-kind tool-kind-confirm">Asks to confirm</span>

**Delete tag.** Removes a tag from everyone who has it. *Minimum role: moderator.*

| Parameter | Type | Required | Description |
|---|---|---|---|
| `tag` | text | Yes | The tag |

**Returns:** on the first call, the summary and the code; on the second, the deletion.

**Ask like this:** *"Delete the Event 2024 tag."*

**Notes:** the people stay in the community; only the tag goes.

## `get_org_chart`

<span class="tool-kind tool-kind-read">Read-only</span>

**View org chart.** Who reports to whom, with each person's groups. *Minimum role: moderator.*

| Parameter | Type | Required | Description |
|---|---|---|---|
| `root_member` | profile id or e-mail | No | Who sits at the top |
| `group` | name or id | No | Draws only that group |
| `depth` | number | No | How many levels to go down |

**Returns:** the tree, person by person, with their manager and groups.

**Ask like this:** *"Show the org chart of the Product area."*

See [Groups and org chart](/membros/grupos-e-organograma).

## `set_manager`

<span class="tool-kind tool-kind-write">Changes</span>

**Set who someone reports to.** Sets a person's manager in the org chart, or removes it. *Minimum role: moderator.*

| Parameter | Type | Required | Description |
|---|---|---|---|
| `member` | profile id or e-mail | Yes | The person |
| `manager` | profile id or e-mail | No | Who they report to |
| `no_manager` | yes or no | No | `true` removes the manager |

**Returns:** the person with the new manager.

**Ask like this:** *"Bruno now reports to Ana."*

**Notes:** a cycle (A reports to B, who reports to A) is refused. The org chart grants no permission: what someone can do is still their role.

## `list_activity_logs`

<span class="tool-kind tool-kind-read">Read-only</span>

**Activity logs.** Who did what in the community, newest first: the same timeline as the **Members › Logs** tab. *Minimum role: admin (owner or admin).*

| Parameter | Type | Required | Description |
|---|---|---|---|
| `source` | `team`, `assistant`, `members` | No | **Team** (actions on subscriptions: cancel, reactivate, discount, complimentary, extension, add-on, payment link), **assistant** (what an AI assistant did through MCP, including connections authorized and disconnected) or **members** (the actions that earn ranking points). Without it, all three |
| `profile` | profile id, e-mail or app link | No | Only what this person did |
| `from`, `to` | ISO 8601 date | No | The period. A date without a time in `to` covers the whole day |
| `page`, `limit` | numbers | No | Up to 100 per page |

**Returns:** each entry with when, who, the action (in your language), on what, and the details: the before and after of a team action, the result of an assistant call (completed, error, refused or awaiting confirmation) or the points of a member action. The arguments of assistant calls come summarized, with no confirmation codes or images.

**Ask like this:** *"Who canceled Ana's subscription?"* · *"What did the assistant do yesterday?"* · *"What did ana@memberfy.net do this week?"*

**Notes:** if an assistant call failed, the response suggests [`get_connection_diagnostics`](/mcp/ferramentas-comunidade#get-connection-diagnostics); with a person in the filter, it suggests [`member_activity`](/mcp/relatorios-e-graficos#member-activity). A profile or link from another community is refused.

## Related

- [Tools](/mcp/ferramentas)
- [Recipes](/mcp/receitas)
- [Money and confirmation](/mcp/dinheiro-e-confirmacao)
