Skip to main content
Glama

Alerts Create

alerts_create
Destructive

Create an alert rule for the current user: an on-chain transfer alert (the default), a Hyperliquid or a Polymarket alert, chosen by alert_type. TRANSFER ('transfer'): fires when a transfer on ONE chain (eth, bsc, base or hyperevm) matches: token_symbol if given, min_value_usd if given, and, if address is given, that wallet on the side address_role says. address = ONE 20-byte EVM address ('0x' + 40 hex); ENS names, entity names and non-EVM addresses are refused. Without min_value_usd EVERY transfer touching the address matches (dust and unpriced tokens too); with min_value_usd or max_value_usd only transfers that already carry a USD value do. min_amount (needs token_symbol) is a floor in whole tokens, priced or not; set with a USD bound, both must hold. An alert with an address notifies on EVERY matching transfer: no cooldown, no daily cap. A token-wide alert (no address) sends one notification per cooldown_minutes for the newest match, at most 10 a day. HYPERLIQUID (perpetuals only; leave out chain, address, address_role and max_value_usd): hl_wallet = every fill of wallet (required), narrowed by actions, token_symbol (the coin) and min_value_usd; hl_cohort_fill = every fill by wallets in pnl_cohorts / size_cohorts (at least one cohort is REQUIRED, or it would match every large fill on Hyperliquid), REQUIRES min_value_usd >= 10000; hl_liquidation = every liquidation, optionally of one wallet, of cohorts, of one coin, above a min_value_usd floor; hl_cohort_bias = the cohort index of token_symbol (required) crossing threshold by band, filtered by direction; hl_liq_proximity = wallet (required) getting threshold of the way from entry to liquidation price. Fill and liquidation alerts notify on every event; a wallet alert once per coin, action and side of each evaluator pass (about every 10 s): the fills merged into one event, fills their count, min_value_usd applied to the merged total. Bias and proximity alerts notify once per crossing and re-arm after the value retreats by band. POLYMARKET (leave out chain, address, address_role, max_value_usd and token_symbol): pm_wallet_trade = every trade of the proxy wallet (required), optionally in one condition_id and above min_value_usd; pm_market_trade = every trade in condition_id (required) at or above min_value_usd (REQUIRED, >= 1000); pm_price_move = a move of 0.05 or more within 5 minutes in the price of the market's first outcome (Yes), filtered by direction; pm_resolution = the market resolved. Each notifies on every event. cooldown_minutes does not apply to Hyperliquid or Polymarket alerts. They are delivered by a webhook channel (register one with alerts_register_webhook) and/or e-mail, or only read with alerts_events (channels left empty); channels = ['email'] mails the account address: one mail per evaluator pass listing its events, and (but for hl_wallet) none after the alert's 10th event of the UTC day. label is the user-visible name. channels = ['email'], ['webhook'] or both (Discord is temporarily off and is refused). One address and one chain per transfer alert: create several alerts to watch more. Returns the new alert row including its id, its policy and, for a Hyperliquid or Polymarket alert, an hl or pm object.

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": {
      "label": "<label>"
    },
    "name": "alerts_create"
  }
}

Input Schema

NameRequiredDescriptionDefault
bandNohl_cohort_bias and hl_liq_proximity: hysteresis, greater than 0 (default 0.1). A bias alert fires when the index reaches threshold + band (up) or threshold - band (down); a proximity alert fires when the ratio reaches threshold and re-arms below threshold - band.
chainNoTransfer alerts only: the chain to watch (single value). Default: eth. Ask the user to create two alerts if they want both chains. Leave out for Hyperliquid alerts.
indexNohl_cohort_bias only, required: the index watched for token_symbol. smi = long share of smart wallets minus long share of rekt wallets; wsi = long share of whales minus long share of shrimp; smart_bias / whale_bias = (long - short) / (long + short) of that cohort; smi_wsi_gap = smi - wsi. Ratios run -1..1 (smi_wsi_gap -2..2).
labelYesName for this alert (e.g. 'Big USDC moves')
walletNoOne 0x + 40-hex address. Hyperliquid: the account to watch, required for hl_wallet and hl_liq_proximity, optional for hl_liquidation. Polymarket: the proxy wallet (the address of its vike.io/polymarket/wallet page and of polymarket_tape rows), required for pm_wallet_trade.
actionsNohl_wallet only: which fills notify. Default: open, close, flip, increase ('add' is accepted for increase); reduce is opt-in.
addressNoTransfer alerts only: wallet to watch, one 0x + 40-hex EVM address. Matches transfers (native or token) the address sent or received on `chain`, per address_role.
channelsNoWhich kinds of the user's enabled channels to notify. email: any alert (a Hyperliquid or Polymarket alert mails the account address). webhook: any alert (register one with alerts_register_webhook; asking for a Hyperliquid or Polymarket alert's webhook the user has not registered is an error). Discord is temporarily off and is refused, as is any other type. A kind the user has no enabled channel of is dropped from a transfer alert, and a transfer alert left with no channel e-mails the account address: call alerts_list_channels to see what is set up. Whatever the channels, every match is recorded as an event in the feed read with alerts_events (kept 15 days), so leave channels empty for a Hyperliquid or Polymarket alert you will only read there.
directionNohl_cohort_bias: which crossings notify. pm_price_move: which moves of the market's first outcome (Yes on a yes/no market) notify. Default both.
thresholdNohl_cohort_bias: the index level to cross (default 0). hl_liq_proximity: the share of the way from entry price to liquidation price, strictly between 0 and 1 (default 0.8).
alert_typeNotransfer (default), a Hyperliquid type (hl_wallet, hl_cohort_fill, hl_liquidation, hl_cohort_bias, hl_liq_proximity) or a Polymarket type (pm_wallet_trade, pm_market_trade, pm_price_move, pm_resolution). Fixed once created.transfer
min_amountNoTransfer alerts only, with token_symbol: alert when the transfer moves at least this many WHOLE tokens (1000000 USDT, 0.5 ETH), whether or not it carries a USD value. With min_value_usd or max_value_usd as well, both must hold. A token whose decimals are unknown never matches it.
pnl_cohortsNohl_cohort_fill and hl_liquidation: only wallets in these realised-PnL cohorts (the ladder runs from '3x smart' = top 1% to '3x rekt' = bottom 5%). hl_cohort_fill REQUIRES at least one PnL or size cohort; for hl_liquidation empty = any cohort.
address_roleNoTransfer alerts only: any = sent or received (default), from = only transfers the address sent, to = only transfers it received. Needs `address`.
condition_idNoPolymarket only: the market, its 0x + 64-hex condition id. Required for pm_market_trade, pm_price_move and pm_resolution; optional for pm_wallet_trade (one market of that wallet).
size_cohortsNohl_cohort_fill and hl_liquidation: only wallets in these account-size cohorts (the ladder runs from '4x whale' = $10M+ to 'shrimp' = under $1k). hl_cohort_fill REQUIRES at least one PnL or size cohort; for hl_liquidation empty = any size.
token_symbolNoTransfer: token ticker in UPPERCASE (e.g. USDC, ETH, PEPE). Hyperliquid: the perp coin as Hyperliquid names it (BTC, kPEPE, xyz:CL); required for hl_cohort_bias, optional for the rest (omit = every coin).
max_value_usdNoTransfer alerts only: an upper bound on the transfer's USD value. A transfer worth more than this does not notify (one worth exactly this does). Like min_value_usd it needs a transfer that already carries a USD value, so an unpriced transfer never matches a rule with a bound. Keep it at or above min_value_usd: a rule whose minimum is above its maximum never fires.
min_value_usdNoTransfer: alert when transfer USD value >= this. Hyperliquid: a floor on the fill or liquidation size in USD (hl_wallet, hl_liquidation); required and >= 10000 for hl_cohort_fill; not used by hl_cohort_bias or hl_liq_proximity. Polymarket: a floor on the trade's USD (size x price) for pm_wallet_trade; required and >= 1000 for pm_market_trade.
cooldown_minutesNoToken-wide transfer alerts (no address): minimum gap between notifications. Default 60. Address alerts and Hyperliquid and Polymarket alerts notify on every event and ignore it.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / min_amount
      Added value: +{
      +  "description": "Transfer alerts only, with token_symbol: alert when the transfer moves at least this many WHOLE tokens (1000000 USDT, 0.5 ETH), whether or not it carries a USD value. With min_value_usd or max_value_usd as well, both must hold. A token whose decimals are unknown never matches it.",
      +  "type": [
      +    "number",
      +    "string"
      +  ]
      +}
  2. Changed8 schema fields changed
    • changedInput schema / properties / alert_type / description
      Previous value: -"transfer (default) or a Hyperliquid type: hl_wallet, hl_cohort_fill, hl_liquidation, hl_cohort_bias, hl_liq_proximity. Fixed once created."New value: +"transfer (default), a Hyperliquid type (hl_wallet, hl_cohort_fill, hl_liquidation, hl_cohort_bias, hl_liq_proximity) or a Polymarket type (pm_wallet_trade, pm_market_trade, pm_price_move, pm_resolution). Fixed once created."
    • changedInput schema / properties / alert_type / enum
      Previous value: -[
      -  "transfer",
      -  "hl_wallet",
      -  "hl_cohort_bias",
      -  "hl_cohort_fill",
      -  "hl_liquidation",
      -  "hl_liq_proximity"
      -]New value: +[
      +  "transfer",
      +  "hl_wallet",
      +  "hl_cohort_bias",
      +  "hl_cohort_fill",
      +  "hl_liquidation",
      +  "hl_liq_proximity",
      +  "pm_wallet_trade",
      +  "pm_market_trade",
      +  "pm_price_move",
      +  "pm_resolution"
      +]
    • changedInput schema / properties / channels / description
      Previous value: -"Which kinds of the user's enabled channels to notify. email: transfer alerts only. webhook: any alert (register one with alerts_register_webhook; asking for a Hyperliquid alert's webhook the user has not registered is an error). Discord is temporarily off and is refused, as is any other type. A kind the user has no enabled channel of is dropped from a transfer alert, and a transfer alert left with no channel e-mails the account address: call alerts_list_channels to see what is set up. Whatever the channels, every match is recorded as an event in the feed read with alerts_events (kept 15 days), so leave channels empty for a Hyperliquid alert you will only read there."New value: +"Which kinds of the user's enabled channels to notify. email: any alert (a Hyperliquid or Polymarket alert mails the account address). webhook: any alert (register one with alerts_register_webhook; asking for a Hyperliquid or Polymarket alert's webhook the user has not registered is an error). Discord is temporarily off and is refused, as is any other type. A kind the user has no enabled channel of is dropped from a transfer alert, and a transfer alert left with no channel e-mails the account address: call alerts_list_channels to see what is set up. Whatever the channels, every match is recorded as an event in the feed read with alerts_events (kept 15 days), so leave channels empty for a Hyperliquid or Polymarket alert you will only read there."
    • addedInput schema / properties / condition_id
      Added value: +{
      +  "description": "Polymarket only: the market, its 0x + 64-hex condition id. Required for pm_market_trade, pm_price_move and pm_resolution; optional for pm_wallet_trade (one market of that wallet).",
      +  "type": "string"
      +}
    • changedInput schema / properties / cooldown_minutes / description
      Previous value: -"Token-wide transfer alerts (no address): minimum gap between notifications. Default 60. Address alerts and Hyperliquid alerts notify on every event and ignore it."New value: +"Token-wide transfer alerts (no address): minimum gap between notifications. Default 60. Address alerts and Hyperliquid and Polymarket alerts notify on every event and ignore it."
    • changedInput schema / properties / direction / description
      Previous value: -"hl_cohort_bias only: which crossings notify. Default both."New value: +"hl_cohort_bias: which crossings notify. pm_price_move: which moves of the market's first outcome (Yes on a yes/no market) notify. Default both."
    • changedInput schema / properties / min_value_usd / description
      Previous value: -"Transfer: alert when transfer USD value >= this. Hyperliquid: a floor on the fill or liquidation size in USD (hl_wallet, hl_liquidation); required and >= 10000 for hl_cohort_fill; not used by hl_cohort_bias or hl_liq_proximity."New value: +"Transfer: alert when transfer USD value >= this. Hyperliquid: a floor on the fill or liquidation size in USD (hl_wallet, hl_liquidation); required and >= 10000 for hl_cohort_fill; not used by hl_cohort_bias or hl_liq_proximity. Polymarket: a floor on the trade's USD (size x price) for pm_wallet_trade; required and >= 1000 for pm_market_trade."
    • changedInput schema / properties / wallet / description
      Previous value: -"Hyperliquid account to watch: one 0x + 40-hex address. Required for hl_wallet and hl_liq_proximity, optional for hl_liquidation."New value: +"One 0x + 40-hex address. Hyperliquid: the account to watch, required for hl_wallet and hl_liq_proximity, optional for hl_liquidation. Polymarket: the proxy wallet (the address of its vike.io/polymarket/wallet page and of polymarket_tape rows), required for pm_wallet_trade."
  3. Changed1 schema field changed
    • changedInput schema / properties / channels / description
      Previous value: -"Which kinds of the user's enabled channels to notify. email: transfer alerts only. webhook: any alert (register one with alerts_register_webhook; asking for a Hyperliquid alert's webhook the user has not registered is an error). Discord is temporarily off and is refused, as is any other type. A kind the user has no enabled channel of is dropped from a transfer alert, and a transfer alert left with no channel e-mails the account address: call alerts_list_channels to see what is set up. Whatever the channels, every match is recorded as an event in the feed read with alerts_events (kept 3 days), so leave channels empty for a Hyperliquid alert you will only read there."New value: +"Which kinds of the user's enabled channels to notify. email: transfer alerts only. webhook: any alert (register one with alerts_register_webhook; asking for a Hyperliquid alert's webhook the user has not registered is an error). Discord is temporarily off and is refused, as is any other type. A kind the user has no enabled channel of is dropped from a transfer alert, and a transfer alert left with no channel e-mails the account address: call alerts_list_channels to see what is set up. Whatever the channels, every match is recorded as an event in the feed read with alerts_events (kept 15 days), so leave channels empty for a Hyperliquid alert you will only read there."
  4. Changed21 schema fields changed
    • addedInput schema / properties / actions
      Added value: +{
      +  "description": "hl_wallet only: which fills notify. Default: open, close, flip, increase ('add' is accepted for increase); reduce is opt-in.",
      +  "items": {
      +    "enum": [
      +      "open",
      +      "close",
      +      "flip",
      +      "increase",
      +      "reduce"
      +    ],
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • changedInput schema / properties / address / description
      Previous value: -"Wallet to watch: one 0x + 40-hex EVM address. Matches transfers (native or token) the address sent or received on `chain`, per address_role."New value: +"Transfer alerts only: wallet to watch, one 0x + 40-hex EVM address. Matches transfers (native or token) the address sent or received on `chain`, per address_role."
    • removedInput schema / properties / address_role / default
      Removed value: -"any"
    • changedInput schema / properties / address_role / description
      Previous value: -"any = sent or received (default), from = only transfers the address sent, to = only transfers it received. Needs `address`."New value: +"Transfer alerts only: any = sent or received (default), from = only transfers the address sent, to = only transfers it received. Needs `address`."
    • addedInput schema / properties / alert_type
      Added value: +{
      +  "default": "transfer",
      +  "description": "transfer (default) or a Hyperliquid type: hl_wallet, hl_cohort_fill, hl_liquidation, hl_cohort_bias, hl_liq_proximity. Fixed once created.",
      +  "enum": [
      +    "transfer",
      +    "hl_wallet",
      +    "hl_cohort_bias",
      +    "hl_cohort_fill",
      +    "hl_liquidation",
      +    "hl_liq_proximity"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / band
      Added value: +{
      +  "description": "hl_cohort_bias and hl_liq_proximity: hysteresis, greater than 0 (default 0.1). A bias alert fires when the index reaches threshold + band (up) or threshold - band (down); a proximity alert fires when the ratio reaches threshold and re-arms below threshold - band.",
      +  "type": [
      +    "number",
      +    "string"
      +  ]
      +}
    • removedInput schema / properties / chain / default
      Removed value: -"eth"
    • changedInput schema / properties / chain / description
      Previous value: -"Chain to watch (single value). Default: eth. Ask the user to create two alerts if they want both chains."New value: +"Transfer alerts only: the chain to watch (single value). Default: eth. Ask the user to create two alerts if they want both chains. Leave out for Hyperliquid alerts."
    • changedInput schema / properties / chain / enum
      Previous value: -[
      -  "eth",
      -  "bsc"
      -]New value: +[
      +  "eth",
      +  "bsc",
      +  "base",
      +  "hyperevm"
      +]
    • changedInput schema / properties / channels / description
      Previous value: -"Which enabled notification channels to use. If the user has no verified email/discord set up, the alert is still created but won't fire notifications — call alerts_list_channels to check what's available."New value: +"Which kinds of the user's enabled channels to notify. email: transfer alerts only. webhook: any alert (register one with alerts_register_webhook; asking for a Hyperliquid alert's webhook the user has not registered is an error). Discord is temporarily off and is refused, as is any other type. A kind the user has no enabled channel of is dropped from a transfer alert, and a transfer alert left with no channel e-mails the account address: call alerts_list_channels to see what is set up. Whatever the channels, every match is recorded as an event in the feed read with alerts_events (kept 3 days), so leave channels empty for a Hyperliquid alert you will only read there."
    • changedInput schema / properties / channels / items / enum
      Previous value: -[
      -  "email",
      -  "discord"
      -]New value: +[
      +  "email",
      +  "webhook"
      +]
    • changedInput schema / properties / cooldown_minutes / description
      Previous value: -"Minimum gap between triggers. Default 60."New value: +"Token-wide transfer alerts (no address): minimum gap between notifications. Default 60. Address alerts and Hyperliquid alerts notify on every event and ignore it."
    • addedInput schema / properties / direction
      Added value: +{
      +  "description": "hl_cohort_bias only: which crossings notify. Default both.",
      +  "enum": [
      +    "up",
      +    "down",
      +    "both"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / index
      Added value: +{
      +  "description": "hl_cohort_bias only, required: the index watched for token_symbol. smi = long share of smart wallets minus long share of rekt wallets; wsi = long share of whales minus long share of shrimp; smart_bias / whale_bias = (long - short) / (long + short) of that cohort; smi_wsi_gap = smi - wsi. Ratios run -1..1 (smi_wsi_gap -2..2).",
      +  "enum": [
      +    "smi",
      +    "wsi",
      +    "smart_bias",
      +    "whale_bias",
      +    "smi_wsi_gap"
      +  ],
      +  "type": "string"
      +}
    • changedInput schema / properties / max_value_usd / description
      Previous value: -"Stored on the alert but NOT applied: the alert checker has no upper USD bound yet."New value: +"Transfer alerts only: an upper bound on the transfer's USD value. A transfer worth more than this does not notify (one worth exactly this does). Like min_value_usd it needs a transfer that already carries a USD value, so an unpriced transfer never matches a rule with a bound. Keep it at or above min_value_usd: a rule whose minimum is above its maximum never fires."
    • changedInput schema / properties / min_value_usd / description
      Previous value: -"Alert when transfer USD value >= this."New value: +"Transfer: alert when transfer USD value >= this. Hyperliquid: a floor on the fill or liquidation size in USD (hl_wallet, hl_liquidation); required and >= 10000 for hl_cohort_fill; not used by hl_cohort_bias or hl_liq_proximity."
    • addedInput schema / properties / pnl_cohorts
      Added value: +{
      +  "description": "hl_cohort_fill and hl_liquidation: only wallets in these realised-PnL cohorts (the ladder runs from '3x smart' = top 1% to '3x rekt' = bottom 5%). hl_cohort_fill REQUIRES at least one PnL or size cohort; for hl_liquidation empty = any cohort.",
      +  "items": {
      +    "enum": [
      +      "3x smart",
      +      "2x smart",
      +      "smart",
      +      "3x winner",
      +      "2x winner",
      +      "winner",
      +      "loser",
      +      "2x loser",
      +      "3x loser",
      +      "rekt",
      +      "2x rekt",
      +      "3x rekt"
      +    ],
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / properties / size_cohorts
      Added value: +{
      +  "description": "hl_cohort_fill and hl_liquidation: only wallets in these account-size cohorts (the ladder runs from '4x whale' = $10M+ to 'shrimp' = under $1k). hl_cohort_fill REQUIRES at least one PnL or size cohort; for hl_liquidation empty = any size.",
      +  "items": {
      +    "enum": [
      +      "4x whale",
      +      "3x whale",
      +      "2x whale",
      +      "whale",
      +      "2x shark",
      +      "shark",
      +      "2x dolphin",
      +      "dolphin",
      +      "2x fish",
      +      "fish",
      +      "2x shrimp",
      +      "shrimp"
      +    ],
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / properties / threshold
      Added value: +{
      +  "description": "hl_cohort_bias: the index level to cross (default 0). hl_liq_proximity: the share of the way from entry price to liquidation price, strictly between 0 and 1 (default 0.8).",
      +  "type": [
      +    "number",
      +    "string"
      +  ]
      +}
    • changedInput schema / properties / token_symbol / description
      Previous value: -"Token ticker in UPPERCASE (e.g. USDC, ETH, PEPE)"New value: +"Transfer: token ticker in UPPERCASE (e.g. USDC, ETH, PEPE). Hyperliquid: the perp coin as Hyperliquid names it (BTC, kPEPE, xyz:CL); required for hl_cohort_bias, optional for the rest (omit = every coin)."
    • addedInput schema / properties / wallet
      Added value: +{
      +  "description": "Hyperliquid account to watch: one 0x + 40-hex address. Required for hl_wallet and hl_liq_proximity, optional for hl_liquidation.",
      +  "type": "string"
      +}
  5. First observed

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, idempotentHint=false and readOnlyHint=false, so the safety profile is covered. The description adds behaviour beyond that: address alerts have no cooldown/daily cap, token-wide alerts cap at 10/day, bias/proximity alerts re-arm, alert_type is fixed once created, and Discord is refused. It does, however, largely restate schema-level text rather than adding new operational context.

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

Conciseness3/5

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

The purpose and default type are front-loaded, but the body is a single ~700-word block with heavy repetition of schema prose and no paragraph or bullet structure, making it slow to scan. Density is partly justified by ten variants and 20 parameters, but it is not economical.

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

Completeness4/5

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

Covers the create semantics, per-type requirements, delivery channels and the returned row (id, policy, hl/pm object) despite there being no output schema. It is essentially complete for a tool of this complexity, with the only gap being the overlap with schema descriptions rather than missing information.

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 per-parameter meaning is already fully documented in structured data. The description's parameter discussion (min_amount vs min_value_usd interaction, address format rejection of ENS, chain single-value constraint) is useful but largely duplicative of the schema, so baseline 3 applies.

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

Purpose5/5

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

States a specific verb and resource ("Create an alert rule for the current user") and immediately enumerates the ten alert_type variants (transfer, Hyperliquid, Polymarket), so an agent can tell this apart from alerts_edit, alerts_list and alerts_events without opening the schema.

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

Usage Guidelines5/5

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

Explicitly routes usage: which fields to leave out per alert type, when a cohort is REQUIRED, when min_value_usd is REQUIRED with thresholds (>=10000, >=1000), when cooldown applies vs not, and which siblings to use instead for related needs (alerts_register_webhook, alerts_events, alerts_list_channels).

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.