Skip to main content
Glama

Update an alert rule

update_alert_rule
DestructiveIdempotent

Update an alert rule by ID, the fields left out keep their current value. Changing its event or integration replaces their settings, send the settings of the new event or integration.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "project_id": "<project_id>",
      "alert_rule_id": "<alert_rule_id>"
    },
    "name": "update_alert_rule"
  }
}

Input Schema

NameRequiredDescriptionDefault
eventNoName of the event that will trigger the execution of the alert rule
scopeNoScope of the alert rule, `organization` to execute it for the events of every project or `project` to only execute it for the events of the current project
project_idYesID of the project to act on, see whoami
rate_limitNoMinimum time in minutes between two executions of the alert rule, used to minimize the number of alerts received.
alert_rule_idYesID of the alert rule to update
event_settingsNoAdditional settings for the event
integration_idNoThe ID of the integration used to send a notification when the alert rule is executed
integration_settingsNoAdditional settings for the integration

Output Schema

NameRequiredDescriptionDefault
idNo
eventNoName of the event that will trigger the execution of the alert rule
created_atNoDate of creation for the entity
project_idNoThe ID of a project to use as a scope
rate_limitNoMinimum time in minutes between two executions of the alert rule, used to minimize the number of alerts received.
updated_atNoDate of last update for the entity
event_settingsNoAdditional settings for the event
integration_idNoThe ID of the integration used to send a notification when the alert rule is executed
integration_settingsNoAdditional settings for the integration

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / integration_settings / anyOf
      Previous value: -[
      -  {
      -    "title": "Empty",
      -    "type": [
      -      "object",
      -      "null"
      -    ]
      -  },
      -  {
      -    "properties": {
      -      "priority": {
      -        "description": "Notification priority level",
      -        "enum": [
      -          "min",
      -          "low",
      -          "default",
      -          "high",
      -          "max"
      -        ],
      -        "examples": [
      -          "default"
      -        ],
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "priority"
      -    ],
      -    "title": "Ntfy",
      -    "type": "object"
      -  },
      -  {
      -    "properties": {
      -      "schema": {
      -        "description": "JSON schema defining the webhook payload structure",
      -        "examples": [
      -          "{\"id\": \"{{ alert_rule_request.id }}\", \"event\": \"{{ event.key }}\"}"
      -        ],
      -        "format": "json",
      -        "maxLength": 5000,
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "schema"
      -    ],
      -    "title": "Outgoing Webhooks",
      -    "type": "object"
      -  },
      -  {
      -    "properties": {
      -      "expire": {
      -        "description": "Expiration time in seconds (required for emergency priority)",
      -        "examples": [
      -          3600
      -        ],
      -        "maximum": 10800,
      -        "minimum": 30,
      -        "type": [
      -          "integer",
      -          "null"
      -        ]
      -      },
      -      "priority": {
      -        "description": "Notification priority level",
      -        "enum": [
      -          "lowest",
      -          "low",
      -          "normal",
      -          "high",
      -          "emergency"
      -        ],
      -        "examples": [
      -          "normal"
      -        ],
      -        "type": "string"
      -      },
      -      "retry": {
      -        "description": "Retry interval in seconds (required for emergency priority)",
      -        "examples": [
      -          300
      -        ],
      -        "maximum": 86400,
      -        "minimum": 30,
      -        "type": [
      -          "integer",
      -          "null"
      -        ]
      -      }
      -    },
      -    "required": [
      -      "priority"
      -    ],
      -    "title": "Pushover",
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "title": "Empty",
      +    "type": [
      +      "object",
      +      "null"
      +    ]
      +  },
      +  {
      +    "properties": {
      +      "priority": {
      +        "description": "Notification priority level",
      +        "enum": [
      +          "min",
      +          "low",
      +          "default",
      +          "high",
      +          "max"
      +        ],
      +        "examples": [
      +          "default"
      +        ],
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "priority"
      +    ],
      +    "title": "Ntfy",
      +    "type": "object"
      +  },
      +  {
      +    "properties": {
      +      "schema": {
      +        "description": "JSON schema defining the webhook payload structure",
      +        "examples": [
      +          "{\"id\": \"{{ alert_rule_request.id }}\", \"event\": \"{{ event.key }}\"}"
      +        ],
      +        "format": "json",
      +        "maxLength": 5000,
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "schema"
      +    ],
      +    "title": "Outgoing Webhooks",
      +    "type": "object"
      +  },
      +  {
      +    "properties": {
      +      "expire": {
      +        "description": "Seconds after which an unacknowledged `emergency` priority notification stops repeating. Required by the `emergency` priority, unused by the others.",
      +        "examples": [
      +          3600
      +        ],
      +        "maximum": 10800,
      +        "minimum": 30,
      +        "type": [
      +          "integer",
      +          "null"
      +        ]
      +      },
      +      "priority": {
      +        "description": "Notification priority level",
      +        "enum": [
      +          "lowest",
      +          "low",
      +          "normal",
      +          "high",
      +          "emergency"
      +        ],
      +        "examples": [
      +          "normal"
      +        ],
      +        "type": "string"
      +      },
      +      "retry": {
      +        "description": "Seconds between the repeats of an `emergency` priority notification until it is acknowledged. Required by the `emergency` priority, unused by the others.",
      +        "examples": [
      +          300
      +        ],
      +        "maximum": 86400,
      +        "minimum": 30,
      +        "type": [
      +          "integer",
      +          "null"
      +        ]
      +      }
      +    },
      +    "required": [
      +      "priority"
      +    ],
      +    "title": "Pushover",
      +    "type": "object"
      +  }
      +]
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "created_at": {
      +      "description": "Date of creation for the entity",
      +      "format": "date-time",
      +      "type": "string"
      +    },
      +    "event": {
      +      "description": "Name of the event that will trigger the execution of the alert rule",
      +      "enum": [
      +        "uptime.monitor.created",
      +        "uptime.monitor.deleted",
      +        "uptime.monitor_certificate.discovered",
      +        "uptime.monitor_certificate.expiring",
      +        "uptime.incident.created",
      +        "uptime.incident.propagated",
      +        "uptime.incident.partially_recovered",
      +        "uptime.incident.recovered",
      +        "uptime.incident_comment.created",
      +        "uptime.incident_update.published",
      +        "uptime.maintenance_window.in_progress",
      +        "uptime.maintenance_window.completed",
      +        "uptime.maintenance_window.cancelled"
      +      ],
      +      "type": "string"
      +    },
      +    "event_settings": {
      +      "anyOf": [
      +        {
      +          "title": "Empty",
      +          "type": [
      +            "object",
      +            "null"
      +          ]
      +        },
      +        {
      +          "properties": {
      +            "type": {
      +              "description": "Type of incident to notify about",
      +              "enum": [
      +                "all",
      +                "monitor",
      +                "manual"
      +              ],
      +              "examples": [
      +                "all"
      +              ],
      +              "type": "string"
      +            }
      +          },
      +          "title": "Uptime incident",
      +          "type": "object"
      +        },
      +        {
      +          "properties": {
      +            "days_before_expiry": {
      +              "description": "Days to notify before the certificate expires",
      +              "examples": [
      +                25
      +              ],
      +              "type": "integer"
      +            }
      +          },
      +          "title": "Uptime certificate expiring",
      +          "type": "object"
      +        }
      +      ],
      +      "description": "Additional settings for the event"
      +    },
      +    "id": {
      +      "examples": [
      +        1
      +      ],
      +      "type": "integer"
      +    },
      +    "integration_id": {
      +      "description": "The ID of the integration used to send a notification when the alert rule is executed",
      +      "examples": [
      +        1
      +      ],
      +      "type": "integer"
      +    },
      +    "integration_settings": {
      +      "anyOf": [
      +        {
      +          "title": "Empty",
      +          "type": [
      +            "object",
      +            "null"
      +          ]
      +        },
      +        {
      +          "properties": {
      +            "priority": {
      +              "description": "Notification priority level",
      +              "enum": [
      +                "min",
      +                "low",
      +                "default",
      +                "high",
      +                "max"
      +              ],
      +              "examples": [
      +                "default"
      +              ],
      +              "type": "string"
      +            }
      +          },
      +          "title": "Ntfy",
      +          "type": "object"
      +        },
      +        {
      +          "properties": {
      +            "schema": {
      +              "description": "JSON schema defining the webhook payload structure",
      +              "examples": [
      +                "{\"id\": \"{{ alert_rule_request.id }}\", \"event\": \"{{ event.key }}\"}"
      +              ],
      +              "format": "json",
      +              "type": "string"
      +            }
      +          },
      +          "title": "Outgoing Webhooks",
      +          "type": "object"
      +        },
      +        {
      +          "properties": {
      +            "expire": {
      +              "description": "Seconds after which an unacknowledged `emergency` priority notification stops repeating. Required by the `emergency` priority, unused by the others.",
      +              "examples": [
      +                3600
      +              ],
      +              "type": [
      +                "integer",
      +                "null"
      +              ]
      +            },
      +            "priority": {
      +              "description": "Notification priority level",
      +              "enum": [
      +                "lowest",
      +                "low",
      +                "normal",
      +                "high",
      +                "emergency"
      +              ],
      +              "examples": [
      +                "normal"
      +              ],
      +              "type": "string"
      +            },
      +            "retry": {
      +              "description": "Seconds between the repeats of an `emergency` priority notification until it is acknowledged. Required by the `emergency` priority, unused by the others.",
      +              "examples": [
      +                300
      +              ],
      +              "type": [
      +                "integer",
      +                "null"
      +              ]
      +            }
      +          },
      +          "title": "Pushover",
      +          "type": "object"
      +        }
      +      ],
      +      "description": "Additional settings for the integration"
      +    },
      +    "project_id": {
      +      "description": "The ID of a project to use as a scope",
      +      "examples": [
      +        1
      +      ],
      +      "type": [
      +        "integer",
      +        "null"
      +      ]
      +    },
      +    "rate_limit": {
      +      "description": "Minimum time in minutes between two executions of the alert rule, used to minimize the number of alerts received.",
      +      "enum": [
      +        0,
      +        5,
      +        10,
      +        30,
      +        60,
      +        180,
      +        720,
      +        1440
      +      ],
      +      "examples": [
      +        5
      +      ],
      +      "type": "integer"
      +    },
      +    "updated_at": {
      +      "description": "Date of last update for the entity",
      +      "format": "date-time",
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
  2. First observed

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, idempotentHint=true and openWorldHint=true, so the safety bar is lower; the description nonetheless adds real behavioral context by disclosing partial-update merge semantics and the non-obvious caveat that changing event or integration replaces the associated settings. It does not explain what 'destructive' concretely means here (e.g., discarded settings for the previous integration), which is the remaining gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the identity of the operation and the merge rule. The second clause ('send the settings of the new event or integration') is grammatically awkward and slightly harder to parse than needed, but nothing is wasteful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an eight-parameter mutation tool with full schema coverage, an output schema and descriptive annotations, the definition covers the key risk points an agent must know: partial updates preserve existing values, and swapping event or integration requires supplying replacement settings. Nothing essential to a correct invocation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all eight parameters, including the event_settings and integration_settings unions. The description adds meaning about the coupling between event/integration and their settings fields, which the schema does not express, but gives no detail on scope or rate_limit beyond what the schema provides. Baseline 3 with modest added value is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('Update an alert rule by ID'), which clearly distinguishes it from create_alert_rule, delete_alert_rule, get_alert_rule and list_alert_rules. It stops short of explicitly naming those siblings, so the differentiation is inferred rather than spelled out.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives useful partial-update guidance ('fields left out keep their current value'), which tells an agent this is a PATCH-style operation rather than a full replace. However, it offers no explicit when-to-use vs. when-not guidance or alternative routing (e.g., use create_alert_rule for new rules), so usage is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources