Skip to main content
Glama

Delete a Slack message

delete_message
DestructiveIdempotent

Deletes a Slack message the bot posted, using its channel and timestamp; Slack permits only bot-owned deletions, and this action is irreversible.

Instructions

Delete a message the bot posted, identified by channel and ts (as returned by send_message). Slack only lets a bot delete its own messages. Deleting the parent of a thread leaves its replies in place. This cannot be undone, so confirm with the user unless they asked for it.

Input Schema

NameRequiredDescriptionDefault
tsYesTimestamp of the bot's message to delete
channelYesChannel ID, #channel-name, or user (ID, @handle, email) for a DM

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.6.1

TDQS

A4.6/5.0
Behavior5/5

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

Goes well beyond the destructive/idempotent annotations by disclosing the permission constraint (bot can only delete its own messages), the thread consequence (deleting a parent leaves replies), and irreversibility. These are exactly the behaviors an agent needs before invoking a destructive call.

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

Conciseness5/5

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

Four short sentences, each carrying a distinct and necessary fact: identity, permission scope, thread side effect, irreversibility/confirmation. The destructive warning is placed at the end where it lands before invocation.

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?

For a two-parameter destructive tool with no output schema, the definition covers identity, preconditions, side effects, and safety. The only minor gap is what the agent should expect on success or failure (e.g., error when the message isn't the bot's own).

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 both parameters are already documented; the description adds provenance for ts ('as returned by send_message'), which helps the agent source the value correctly. No additional format or validation detail beyond that.

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 (delete) and resource (a message the bot posted), plus the identifying keys (channel, ts). It also implicitly distinguishes itself from siblings like send_message and edit_message by scoping the operation to the bot's own messages.

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?

Establishes clear preconditions: the message must be one the bot posted, and Slack enforces that constraint. It also gives a confirmation directive ('confirm with the user unless they asked for it'), though it never names an alternative sibling (e.g., edit_message to blank content) for cases where deletion isn't possible.

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