Skip to main content
Glama
JLKmach

ServiceNow MCP Server

by JLKmach

remove_group_members

Remove users from a ServiceNow group by specifying group ID and member identifiers to manage access permissions and team composition.

Instructions

Remove members from an existing group in ServiceNow

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
group_idYesGroup ID or sys_id
membersYesList of user sys_ids or usernames to remove as members

Implementation Reference

  • The core handler function that implements the logic to remove specified members from a ServiceNow group. It resolves usernames to sys_ids, queries sys_user_grmember table, and deletes the membership records.
    def remove_group_members( config: ServerConfig, auth_manager: AuthManager, params: RemoveGroupMembersParams, ) -> GroupResponse: """ Remove members from a group in ServiceNow. Args: config: Server configuration. auth_manager: Authentication manager. params: Parameters for removing members from the group. Returns: Response with the result of the operation. """ 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 # Find and delete the group membership api_url = f"{config.api_url}/table/sys_user_grmember" query_params = { "sysparm_query": f"group={params.group_id}^user={user_id}", "sysparm_limit": "1", } try: # First find the membership record response = requests.get( api_url, params=query_params, headers=auth_manager.get_headers(), timeout=config.timeout, ) response.raise_for_status() result = response.json().get("result", []) if not result: success = False failed_members.append(member) continue # Then delete the membership record membership_id = result[0].get("sys_id") delete_url = f"{api_url}/{membership_id}" response = requests.delete( delete_url, headers=auth_manager.get_headers(), timeout=config.timeout, ) response.raise_for_status() except requests.RequestException as e: logger.error(f"Failed to remove member '{member}' from group: {e}") success = False failed_members.append(member) if failed_members: message = f"Some members could not be removed from the group: {', '.join(failed_members)}" else: message = "All members removed from the group successfully" return GroupResponse( success=success, message=message, group_id=params.group_id, )
  • Pydantic BaseModel defining the input parameters for the remove_group_members tool: group_id (str) and members (List[str]).
    class RemoveGroupMembersParams(BaseModel): """Parameters for removing members from 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 remove as members" )
  • Registration of the tool in the central get_tool_definitions() dictionary, mapping name to (function, params class, return type, description, serialization method).
    "remove_group_members": ( remove_group_members_tool, RemoveGroupMembersParams, Dict[str, Any], # Expects dict "Remove members from an existing group in ServiceNow", "raw_dict", ),
  • Import of the remove_group_members function in tools/__init__.py for exporting.
    remove_group_members,
  • Inclusion of 'remove_group_members' in the __all__ list for public export.
    "remove_group_members",

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/JLKmach/servicenow-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server