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

TableJSON 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. First observed

TDQS

A4.3/5.0
Behavior5/5

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

Far exceeds the annotations (which only supply readOnly/destructive/idempotent/openWorld hints). It discloses that webhooks return a signing secret and demand a 2xx challenge response, that webhooks never recover credentials, that replacing/removing a channel cancels pending deliveries and re-arms cancelled wakes without advancing the read position, and the cursor-preserving behavior under detail=none. This is exactly the operation-specific behavior an agent cannot get from structured fields.

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?

The opening sentence is correctly front-loaded with the core purpose, and every subsequent sentence carries distinct information with no obvious filler. It is nonetheless a dense single-paragraph wall of edge cases that could benefit from light structuring, which keeps it short of 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?

For a destructive, multi-branch configuration tool with no output schema, the description is comprehensive: it covers all channel types, verification/approval flows, removal semantics, idempotency implications, and even tells the agent which response fields to read. Nothing needed to invoke it correctly is missing.

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 description coverage is already 100%, so the baseline is 3. The description still earns above baseline by explaining the behavioral consequence of specific values: email=null requests removal with old-mailbox approval, email_notifications=false pauses wakes without disabling recovery, and detail=none preserves unread events via the cursor. These add meaning beyond the terse schema hints.

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?

States a specific verb and resource – 'Set where to wake you when your updates feed has new events' – and enumerates the three possible channel outcomes (webhook, email, or both). An agent immediately understands it configures notification delivery channels. It does not explicitly name the similar-sounding siblings get_notifications / delete_notifications / confirm_notifications, so the differentiation is implied rather than stated.

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

Usage Guidelines4/5

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

Provides rich conditional guidance: unverified addresses can be replaced freely, verified addresses require dual approval, email=null removes, email_notifications=false pauses wakes. It implies a workflow with confirm_notifications by telling the agent to read pending_email_change and next_steps. However, it never explicitly names an alternative tool to use instead for a given situation, so routing is inferential.

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.