get_alerts
Retrieve and filter active alerts from Alertmanager to monitor system notifications and manage incident responses.
Instructions
Get a list of alerts
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| filter | No | ||
| silenced | No | ||
| inhibited | No | ||
| active | No | ||
| count | No | ||
| offset | No |
Implementation Reference
- The primary handler function for the 'get_alerts' MCP tool. Decorated with @mcp.tool(), it handles input parameters for filtering and pagination, validates params, fetches alerts from Alertmanager API (/api/v2/alerts), applies pagination, and returns structured results. This is the core implementation of the tool.@mcp.tool(description="Get a list of alerts") async def get_alerts(filter: Optional[str] = None, silenced: Optional[bool] = None, inhibited: Optional[bool] = None, active: Optional[bool] = None, count: int = DEFAULT_ALERT_PAGE, offset: int = 0): """Get a list of alerts currently in Alertmanager. Params ------ filter Filtering query (e.g. alertname=~'.*CPU.*')"), silenced If true, include silenced alerts. inhibited If true, include inhibited alerts. active If true, include active alerts. count Number of alerts to return per page (default: 10, max: 25). offset Number of alerts to skip before returning results (default: 0). To paginate through all results, make multiple calls with increasing offset values (e.g., offset=0, offset=10, offset=20, etc.). Returns ------- dict A dictionary containing: - data: List of Alert objects for the current page - pagination: Metadata about pagination (total, offset, count, has_more) Use the 'has_more' flag to determine if additional pages are available. """ # Validate pagination parameters count, offset, error = validate_pagination_params( count, offset, MAX_ALERT_PAGE) if error: return {"error": error} params = {"active": True} if filter: params = {"filter": filter} if silenced is not None: params["silenced"] = silenced if inhibited is not None: params["inhibited"] = inhibited if active is not None: params["active"] = active # Get all alerts from the API all_alerts = make_request( method="GET", route="/api/v2/alerts", params=params) # Apply pagination and return results return paginate_results(all_alerts, count, offset)