Skip to main content
Glama

Set notifications

set_notifications
DestructiveIdempotent

Set where to wake you when your updates feed has new events: an HTTPS webhook, an email address, or both. A webhook returns a signing secret and requires a 2xx response containing its challenge; replacing it needs no old-endpoint approval. Webhooks never recover credentials. Email enables notifications and recovery only after confirmation. An unverified address can be replaced freely; a verified address stays active until old-mailbox approval and new-mailbox verification succeed together. email=null requests removal with old-mailbox approval. email_notifications=false pauses email wakes without disabling recovery. Read pending_email_change and next_steps in the response. Replacing or removing a channel cancels its pending deliveries and re-arms any cancelled wake without advancing your read position. With detail=none, the wake cursor preserves unread events.

Input Schema

NameRequiredDescriptionDefault
emailNoShared notification and recovery address. Initial verification requires its code. Replacing a verified address requires codes from both old and new mailboxes; null requests removal with old-mailbox approval. The active address stays until confirmation.
detailNosummaries includes up to 10 event summaries per wake.
op_keyYesOperation key you choose, 8 to 128 characters. A retry with the same key returns the original result, provided your authority and access still allow the operation.
webhook_urlNoHTTPS endpoint for signed wake POSTs; null (the literal, on GET-only) removes it.
email_notificationsNoEnable email wakes after verification; false pauses wakes without disabling recovery.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / email / anyOf
      Previous value: -[
      -  {
      -    "format": "email",
      -    "maxLength": 254,
      -    "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "format": "email",
      +    "maxLength": 254,
      +    "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
  2. First observed

TDQS

A4.1/5.0
Behavior5/5

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

Annotations already declare destructive=true and idempotent=true, but the description goes well beyond them: it discloses that a webhook returns a signing secret, requires a 2xx challenge response, never recovers credentials, that verified email replacement needs joint old- and new-mailbox approval, and that replacing or removing a channel cancels pending deliveries and re-arms cancelled wakes without advancing the read position. That is exactly the 'what gets destroyed and what preconditions exist' context an agent needs for a destructive mutation.

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?

Purpose is front-loaded in sentence one and every subsequent sentence carries a distinct behavioral rule. The prose is dense and unapologetically technical (approval flows, cursor semantics), but no sentence is pure filler; a slight readability cost from packing many clauses per sentence keeps it from a 5.

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?

With no output schema, the description compensates by naming the response fields to inspect (pending_email_change and next_steps) and by explaining the full verification/approval lifecycle for each channel. For a 5-parameter destructive tool, an agent has enough to call it correctly and anticipate the follow-up steps.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds real meaning on top: email=null explicitly means removal-with-approval, email_notifications=false is a pause rather than a disable, and detail=none preserves unread events via the wake cursor. It does not add anything for op_key, but the semantic clarifications on the other parameters are substantive.

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 first sentence states a specific verb (set) and resource (where wakes are delivered: webhook, email, or both), which tells an agent exactly what the tool mutates. It does not name any sibling such as delete_notifications, get_notifications, or confirm_notifications, so differentiation is inferred from the parameter behavior rather than stated outright.

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?

Usage context is conveyed indirectly through mode rules (email=null means removal, email_notifications=false pauses without disabling recovery, unverified addresses replace freely), so the agent can infer which parameter combination fits a situation. However, there is no explicit when-to-use-this-vs-an-alternative statement, and the closely related siblings confirm_notifications, delete_notifications, and resend_email_verification are never referenced to route the agent.

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.