update_realm_role
Modify a realm role in Keycloak by updating its description, composite status, or target realm. Specify the role name and optional parameters to make changes and receive a status message.
Instructions
Update a realm role.
Args:
role_name: Current role name
description: New description
composite: Whether this is a composite role
realm: Target realm (uses default if not specified)
Returns:
Status message
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| composite | No | ||
| description | No | ||
| realm | No | ||
| role_name | Yes |
Implementation Reference
- src/tools/role_tools.py:84-118 (handler)The main handler function for the 'update_realm_role' tool. It is decorated with @mcp.tool() for registration and implements the logic to update a realm role by fetching the current role, updating specified fields (description or composite), and sending a PUT request via KeycloakClient.@mcp.tool() async def update_realm_role( role_name: str, description: Optional[str] = None, composite: Optional[bool] = None, realm: Optional[str] = None, ) -> Dict[str, str]: """ Update a realm role. Args: role_name: Current role name description: New description composite: Whether this is a composite role realm: Target realm (uses default if not specified) Returns: Status message """ # Get current role current_role = await client._make_request("GET", f"/roles/{role_name}", realm=realm) # Update only provided fields if description is not None: current_role["description"] = description if composite is not None: current_role["composite"] = composite await client._make_request( "PUT", f"/roles/{role_name}", data=current_role, realm=realm ) return { "status": "updated", "message": f"Realm role {role_name} updated successfully", }