Skip to main content
Glama

Delete notifications

delete_messages
DestructiveIdempotent

Remove ntfy notifications and cancel scheduled ones not yet delivered. Call once to receive a confirmation token, then call again with it to complete the deletion.

Instructions

Deletes notifications and cancels scheduled ones that have not been delivered yet. Requires a confirmation token: call once without it to receive the token, then again with it.

"Deleted" means subscribers are told to remove their copy. ntfy publishes a message_delete event and does not remove anything from its own cache, so list_messages and get_message still return the message afterwards, until it expires. Do not read that as the delete having failed, and do not delete again: the delete event is in the list too, alongside the message it refers to.

Needs ntfy 2.16.0 or newer. Against an older server every id comes back with ok:false inside a result that is not an error — check the per-id results rather than only whether the call succeeded.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
topicNoTheir topic. Defaults to the first NTFY_TOPICS entry.
sequence_idsYesIds of the notifications to delete.
confirm_tokenNoThe token from this tool’s previous, unconfirmed response.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
topicYes
resultsYes

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. First observedv0.2.0

TDQS

A4.6/5.0
Behavior5/5

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

Discloses rich behavioral context beyond annotations: two-step confirmation, that nothing is removed from cache, that list/get still return the message, that a delete event itself appears in listings, that ntfy 2.16.0+ is required, and that older servers return ok:false in non-error results. This far exceeds the minimal destructiveHint/idempotentHint annotations.

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 description is long but every sentence carries critical caveats: cache behavior, repeated-delete warning, and version compatibility. It is front-loaded with the core action and confirmation requirement. Slightly verbose, but the density of essential operational details justifies the length.

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?

The description covers the full invocation flow, the meaning of deletion, edge-case behavior, and failure modes for older servers. An output schema exists, so return values need not be described. For a destructive tool with a confirmation token, nothing essential 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 100%, so the baseline is 3. The description adds value by explaining the confirm_token flow ('call once without it to receive the token, then again with it') and clarifying that sequence_ids may refer to scheduled, not-yet-delivered notifications. Still, most parameter meaning is already captured in the schema.

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?

Description states a specific verb and resource: 'Deletes notifications and cancels scheduled ones that have not been delivered yet.' It also distinguishes itself from siblings by explaining that list_messages and get_message still return the message afterward due to the event-based delete semantics. This clearly differentiates the tool from read-only or update siblings.

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 clear usage procedure: call without confirm_token to receive it, then call again with it. Warns against re-deleting and explains how to interpret per-id results on older servers. However, it does not explicitly name alternatives like mark_messages_read or update_message or state when to prefer delete over them, so it lacks full when/when-not guidance.

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

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ni-c/ntfy-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server