listUsers
Retrieve and filter user data from the Rootly MCP server using parameters like email, creation date, and sorting options to manage and analyze user information efficiently.
Instructions
List users
Query Parameters:
page_number: No description.
page_size: No description.
filter_search: No description.
filter_email: No description.
filter_created_at_gt: No description.
filter_created_at_gte: No description.
filter_created_at_lt: No description.
filter_created_at_lte: No description.
sort: comma separated if needed. eg: created_at,updated_at
include: comma separated if needed. eg: email_addresses,phone_numbers
Responses:
200 (Success): user found
Content-Type:
application/vnd.api+jsonExample:
401: responds with unauthorized for invalid token
Content-Type:
application/vnd.api+jsonExample:
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| filter_created_at_gt | No | ||
| filter_created_at_gte | No | ||
| filter_created_at_lt | No | ||
| filter_created_at_lte | No | ||
| filter_email | No | ||
| filter_search | No | ||
| include | No | comma separated if needed. eg: email_addresses,phone_numbers | |
| page_number | No | ||
| page_size | No | ||
| sort | No | comma separated if needed. eg: created_at,updated_at |
Implementation Reference
- src/rootly_mcp_server/server.py:121-172 (registration)DEFAULT_ALLOWED_PATHS includes the "/users" endpoint (lines 150-152), which enables the "listUsers" tool by including the corresponding OpenAPI path in the filtered spec.DEFAULT_ALLOWED_PATHS = [ "/incidents/{incident_id}/alerts", "/alerts", "/alerts/{alert_id}", "/severities", "/severities/{severity_id}", "/teams", "/teams/{team_id}", "/services", "/services/{service_id}", "/functionalities", "/functionalities/{functionality_id}", # Incident types "/incident_types", "/incident_types/{incident_type_id}", # Action items (all, by id, by incident) "/incident_action_items", "/incident_action_items/{incident_action_item_id}", "/incidents/{incident_id}/action_items", # Workflows "/workflows", "/workflows/{workflow_id}", # Workflow runs "/workflow_runs", "/workflow_runs/{workflow_run_id}", # Environments "/environments", "/environments/{environment_id}", # Users "/users", "/users/{user_id}", "/users/me", # Status pages "/status_pages", "/status_pages/{status_page_id}", # On-call schedules and shifts "/schedules", "/schedules/{schedule_id}", "/schedules/{schedule_id}/shifts", "/shifts", "/schedule_rotations/{schedule_rotation_id}", "/schedule_rotations/{schedule_rotation_id}/schedule_rotation_users", "/schedule_rotations/{schedule_rotation_id}/schedule_rotation_active_days", # On-call overrides "/schedules/{schedule_id}/override_shifts", "/override_shifts/{override_shift_id}", # On-call shadows and roles "/schedules/{schedule_id}/on_call_shadows", "/on_call_shadows/{on_call_shadow_id}", "/on_call_roles", "/on_call_roles/{on_call_role_id}", ]
- src/rootly_mcp_server/server.py:338-344 (registration)FastMCP.from_openapi() call registers all operations from the filtered OpenAPI specification as MCP tools, including "listUsers" for GET /v1/users based on Rootly API spec.mcp = FastMCP.from_openapi( openapi_spec=filtered_spec, client=http_client.client, name=name, timeout=30.0, tags={"rootly", "incident-management"}, )
- AuthenticatedHTTPXClient.request() is the core proxy method that executes HTTP requests to Rootly API for all dynamic tools, including listUsers.async def request(self, method: str, url: str, **kwargs): """Override request to transform parameters.""" # Transform query parameters if 'params' in kwargs: kwargs['params'] = self._transform_params(kwargs['params']) # Call the underlying client's request method and let it handle everything return await self.client.request(method, url, **kwargs)