add_group_members
Add users to an existing ServiceNow group by specifying group ID and member identifiers to manage access permissions and team assignments.
Instructions
Add members to an existing group in ServiceNow
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| group_id | Yes | Group ID or sys_id | |
| members | Yes | List of user sys_ids or usernames to add as members |
Implementation Reference
- The main handler function that implements the add_group_members tool logic. It adds users to a group by creating sys_user_grmember records, resolving usernames to sys_ids using get_user.def add_group_members( config: ServerConfig, auth_manager: AuthManager, params: AddGroupMembersParams, ) -> GroupResponse: """ Add members to a group in ServiceNow. Args: config: Server configuration. auth_manager: Authentication manager. params: Parameters for adding members to the group. Returns: Response with the result of the operation. """ api_url = f"{config.api_url}/table/sys_user_grmember" success = True failed_members = [] for member in params.members: # Get user ID if username is provided user_id = member if not member.startswith("sys_id:"): user = get_user(config, auth_manager, GetUserParams(user_name=member)) if not user.get("success"): user = get_user(config, auth_manager, GetUserParams(email=member)) if user.get("success"): user_id = user.get("user", {}).get("sys_id") else: success = False failed_members.append(member) continue # Create group membership data = { "group": params.group_id, "user": user_id, } try: response = requests.post( api_url, json=data, headers=auth_manager.get_headers(), timeout=config.timeout, ) response.raise_for_status() except requests.RequestException as e: logger.error(f"Failed to add member '{member}' to group: {e}") success = False failed_members.append(member) if failed_members: message = f"Some members could not be added to the group: {', '.join(failed_members)}" else: message = "All members added to the group successfully" return GroupResponse( success=success, message=message, group_id=params.group_id, )
- Pydantic model defining the input parameters for the add_group_members tool: group_id and list of members.class AddGroupMembersParams(BaseModel): """Parameters for adding members to a group.""" group_id: str = Field(..., description="Group ID or sys_id") members: List[str] = Field( ..., description="List of user sys_ids or usernames to add as members" )
- src/servicenow_mcp/utils/tool_utils.py:815-821 (registration)Registration of the 'add_group_members' tool in the central tool_definitions dictionary, mapping name to (function, params model, return type, description, serialization)."add_group_members": ( add_group_members_tool, AddGroupMembersParams, Dict[str, Any], # Expects dict "Add members to an existing group in ServiceNow", "raw_dict", ),