Skip to main content
Glama

Delete a sent message

delete_message

Deletes a message the account sent so everyone in the chat sees "This message was deleted," working on messages sent within about two days. Follow it with message_status; use cancel_message for scheduled messages.

Instructions

Delete a message the account sent, for everyone in the chat, as the account holder would from their phone (the chat shows "This message was deleted"). Works on messages sent through Parley or from the phone, for about two days after sending. Paced like a reply; follow it with message_status. Still scheduled? Use cancel_message instead.

Input Schema

NameRequiredDescriptionDefault
chat_idNoThe chat the message is in (chat_id from read_inbox). Not needed with an id send_message returned.
message_idYesThe id send_message returned, or the message's id from read_inbox (one with from_me).
connection_idNoWhich of your accounts: a connection id from list_connections, or the account's number. Optional when only one account fits. Left out, it's the account the message is on.
idempotency_keyNo

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 zero annotations, the description carries the entire behavioral burden and does so well: it discloses the cross-chat effect (deleted 'for everyone'), the visible artifact in the chat, the ~2-day eligibility window, the pacing constraint ('Paced like a reply'), and the recommended verification call. That covers mutation scope, limits, and rate behavior that annotations would normally supply.

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, all front-loaded: what it does, what it affects, eligibility window, then routing to the sibling tool. No restatement of the title or filler, and the alternative is placed at the end where it functions as a final disambiguator.

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 mutation tool with no annotations and no output schema, the description is nearly complete: effect, timing, pacing, and post-call verification are all present. The remaining gap is what happens when a message is outside the two-day window (error vs. silent no-op) and any note on idempotency behavior, but neither blocks correct invocation.

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

Parameters5/5

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

Schema coverage is 75%, and the only undocumented field is idempotency_key, which is a conventional retry-safety parameter the agent can infer. The description does not need to compensate for missing parameter meaning.

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?

A specific verb plus resource plus scope: 'Delete a message the account sent, for everyone in the chat.' It clarifies the actor (account holder), the visibility (everyone), and the outcome users see ('This message was deleted'), which cleanly separates it from cancel_message and react_to_message.

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?

It states when the tool applies (messages sent via Parley or from the phone, within roughly two days of sending) and gives an explicit exclusion with the alternative to pick instead: 'Still scheduled? Use cancel_message instead.' It also prescribes a follow-up call (message_status), so the agent has no inference left to make.

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