Create an alert
create_alertWatch one metric on one MCP and say so when it crosses a line. Checked once a night against the day just gone.
Admin or owner. A rule only fires on a day with at least min_calls calls in scope — two empties out of three calls is 67% and means nothing.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| mcp | Yes | The MCP, by name or id. Names are matched case-insensitively; call list_mcps if unsure. | |
| name | Yes | What a person will recognise in a list, not a restatement of the condition. | |
| metric | Yes | What to watch. Call list_alerts first: the catalogue it returns is the only place each metric's unit and sensible direction are stated. | |
| channels | Yes | Where it goes. `in_app` and `email` are personal — each person also chooses which they accept, so a notification arrives only where both agree. `slack` and `discord` are the account's connections and deliver once per firing, not once per person; they need connecting in the dashboard first. Only `in_app` actually sends today — the rest are recorded and queued. | |
| min_calls | No | The noise floor: a day with fewer calls than this in scope is skipped rather than judged. Default 20. | |
| threshold | Yes | In the metric's own unit, as `list_alerts` reports it: a rate is a fraction, so 0.6 means 60% — not 60. A rate threshold above 1 can never be crossed and the rule would never fire. | |
| tool_name | No | Omit for every tool / every client. Narrowing to both is where the value is: one model can fail on a tool another handles fine, and the server-wide average is what hides it. | |
| comparator | Yes | Which side of the threshold trips the rule. Follow the metric's own `direction` — a rule that first-call success went *above* 70% is one nobody wants. | |
| client_name | No | Omit for every tool / every client. Narrowing to both is where the value is: one model can fail on a tool another handles fine, and the server-wide average is what hides it. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| name | Yes | ||
| mcp_id | Yes | ||
| metric | Yes | ||
| enabled | Yes | ||
| summary | Yes | The rule as a sentence, rendered here so the inbox, an email and this tool all read the same words. | |
| channels | Yes | ||
| min_calls | Yes | The noise floor. Two empties out of three calls is 67% and means nothing. | |
| threshold | Yes | In the metric's own unit: a rate is a fraction, so 0.6 is 60%. | |
| tool_name | Yes | Null means every tool. | |
| comparator | Yes | ||
| created_at | Yes | ||
| client_name | Yes | Null means every client. | |
| fired_count | Yes | ||
| last_fired_at | Yes |