Lists the CRM team in display order: the organization members added as sellers (kind human), with their CRM role (sales_rep, sales_manager or crm_admin), name, email and photo, and the AI agents (kind ai_agent) that can own records, with whether their position is enabled. The user_id is what deals, persons, companies and prospects take as owner_id. Each entry also carries the seller scope stored for it (scope own or all, blocked and read-only pipelines). Email signatures are not included. Org owners and admins act as CRM admins even when they are not on the list.
Scope
crm:read
Permission
View the module
MCP tool
crm_team_listOn the full surface; on the compact one, mb_execute_operation with id: "crm.team.list".
Declared cost: up to 201 reads and 0 writes per call (they count against the daily quota).
Lists the organization members who are not in the CRM team yet and can be added with crm.team.add, with user_id, profile name (empty when they never set one), email, organization role and photo. Viewers are left out: they cannot operate the CRM.
Scope
crm:read
Permission
View the module
MCP tool
crm_team_available_membersOn the full surface; on the compact one, mb_execute_operation with id: "crm.team.available_members".
Declared cost: up to 200 reads and 0 writes per call (they count against the daily quota).
Adds an organization member (not a viewer) to the CRM team with a CRM role: sales_rep (works their own records; limited by the seller scope when the org enforces it), sales_manager (operates the whole team's records) or crm_admin (also configures the CRM). Use crm.team.available_members to find who can be added. The seller scope starts turned off, also for a new team: turn it on with crm.settings.seller_scope.update. Only owners, admins and CRM admins can manage the team.
Scope
crm:write
Permission
Edit in the module
MCP tool
crm_team_addOn the full surface; on the compact one, mb_execute_operation with id: "crm.team.add".
Declared cost: up to 150 reads and 2 writes per call (they count against the daily quota).
Parameters
user_idstringbodyrequired
The organization member to add, from crm.team.available_members.
crm_roleenumbodyrequired
CRM role: sales_rep (works their own records; limited by the seller scope when enforced), sales_manager (the whole team's records) or crm_admin (also configures the CRM).
Removes a user from the CRM team: they are no longer offered as an owner in the CRM pickers and are taken out of every mailbox's custom privacy list; their email signatures, stored on their team entry, are deleted. Their deals, persons and prospects keep them as owner (reassign them first if needed), and assignment rules that list them as a participant keep them until edited with crm.assignment_rules.update. It does not go to the trash: add them back with crm.team.add. The dry run names them and counts the signatures that go away (crm_user_not_found when they are not in the team). Only owners, admins and CRM admins.
Needs confirmation: first dry_run: true (preview and confirm_token, valid 10 minutes and for one run), then the same body with confirm_token. In a few operations only with certain data: the description says when. Why and how: Dry run and confirm_token.
Scope
crm:writeand “Allow deletions” (crm:delete in OAuth)
Permission
Edit in the module
MCP tool
crm_team_removeOn the full surface; on the compact one, mb_execute_operation with id: "crm.team.remove".
Declared cost: up to 21 reads and 21 writes per call (they count against the daily quota).
Changes the CRM role of a team member (sales_rep, sales_manager or crm_admin) and recomputes their seller scope in the same write. Returns changed: false, without writing, when they already had that role. Fails with crm_user_not_found if they are not in the team. Only owners, admins and CRM admins.
Scope
crm:write
Permission
Edit in the module
MCP tool
crm_team_update_roleOn the full surface; on the compact one, mb_execute_operation with id: "crm.team.update_role".
Declared cost: up to 50 reads and 1 writes per call (they count against the daily quota).
Parameters
user_idstringpathrequired
The team member's user id, from crm.team.list.
crm_roleenumbodyrequired
CRM role: sales_rep (works their own records; limited by the seller scope when enforced), sales_manager (the whole team's records) or crm_admin (also configures the CRM).
Sets the display order of the CRM team (the Team table and the owner pickers): ordered_ids is the list of user_ids from crm.team.list in the new order, up to 500, each one once. Every id must already be in the team: otherwise nothing changes and it answers crm_user_not_found with details.missing_ids. Only owners, admins and CRM admins.
Scope
crm:write
Permission
Edit in the module
MCP tool
crm_team_reorderOn the full surface; on the compact one, mb_execute_operation with id: "crm.team.reorder".
Declared cost: up to 500 reads and 500 writes per call (they count against the daily quota).
Parameters
ordered_idsarray<string>bodyrequired
The team's user ids (crm.team.list) in the new order, each once, up to 500.
Mark a seller out of office, or back, in every assignment rule
crm.team.out_of_office
WriteIdempotentSince 2026-11-01
Marks a seller out of office (is_out_of_office: true, optionally until oof_until in epoch milliseconds) or back, in every assignment rule where they are a participant. While out, the rules skip them when assigning new leads, and an hourly job reassigns, through the same rule, their open deals with no activity for 3 days, and clears the flag once oof_until passes. Returns how many rules changed. Anyone can set their own; someone else's requires manage_assignment.
Scope
crm:write
Permission
Edit in the module
MCP tool
crm_team_out_of_officeOn the full surface; on the compact one, mb_execute_operation with id: "crm.team.out_of_office".
Declared cost: up to 200 reads and 200 writes per call (they count against the daily quota).
Parameters
user_idstringpathrequired
The seller (user id from crm.team.list).
is_out_of_officebooleanbodyrequired
true marks them out of office, false back.
oof_untilintegerbodyoptional
Until when, epoch ms: the flag clears itself then.