Skip to main content
Glama

delete_message

Soft-delete a message you're party to, hiding it from inbox/search/counters while preserving thread history. Preserves acks/events; won't delete proposals, approvals, or open action_required messages.

Instructions

Soft-delete a message you sent or received: it becomes a tombstone — invisible to inbox, search, filters and counters, but kept inside get_thread so reply chains never break. Acks and lifecycle events are kept as history. Refuses to delete: messages you are not a party to; a proposal (kind='proc') you did not author (deleting one withdraws its round, so only the author may; vote on it instead); approval records (approved_by) of pin versions; OPEN action_required messages (resolve a debt first — deletion must not silently close it); and resolved-but-unconfirmed ones (the other side still sees them in resolved_for_you — confirm_resolution or reopen first, deletion must not silently clear pending verification).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
message_idYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.9/5.0
Behavior5/5

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

With no annotations provided, the description carries the full burden and does so thoroughly. It discloses soft-delete semantics, tombstone visibility, preservation in get_thread, retention of acks and lifecycle events, and the full set of refusal conditions. This is far beyond a generic 'delete' statement.

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?

The description is dense but every sentence earns its place: primary behavior, visibility consequences, chain preservation, history retention, and the nuanced refusal cases with alternatives. It is front-loaded with the core purpose before enumerating edge cases.

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-looking operation with many edge cases, the description covers the important behavioral constraints and gives actionable alternatives. An output schema exists, so return-value documentation is not needed. The tool is complex, and the description addresses that complexity well.

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 0%, but the only parameter is message_id, an integer. The description repeatedly references messages and their IDs, making the parameter's role clear even without an explicit parameter description. It does not add type/format detail, but the context is sufficient for this single obvious parameter.

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?

The description opens with a specific verb and resource: 'Soft-delete a message you sent or received,' then defines the outcome precisely as a tombstone. It distinguishes this operation from ordinary deletion and from sibling tools like resolve_message or reopen_message by explaining what delete_message does and does not do.

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?

The description gives explicit conditions for use and explicitly lists refusal cases with alternatives: proposals must be authored, votes should be used instead, open action_required messages must be resolved first, and resolved-but-unconfirmed messages require confirm_resolution or reopen first. This gives an agent clear routing guidance relative to sibling tools.

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