Skip to main content
Glama

Message: Edit

message_edit

Edit one previously sent message where supported. Recommended chain: resolve chat -> list messages -> message_get -> edit. Keep exact chat_id + message_id pair. Chat ID: Exact provider chat/conversation ID. LinkedIn chat IDs may also be visible in /messaging/thread/{chat_id}/ URLs. Obtain with: provider list conversations/inbox chats -> chat.id Never pass: person name, user_id, message_id. Message ID: Exact message id inside a specific chat. In V2 always keep chat_id together with message_id because providers may only guarantee uniqueness inside the chat. Obtain with: provider read/list conversation messages -> message.id Never pass: message text, chat_id, message ID without its chat context for mutation tools.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
textYesFinal replacement message text explicitly requested/approved by the user.
chat_idYesExact chat/conversation ID from a conversation/chat listing or resolver. A person name/user_id is NOT a chat_id. Chat ID: Exact provider chat/conversation ID. LinkedIn chat IDs may also be visible in /messaging/thread/{chat_id}/ URLs. Obtain with: provider list conversations/inbox chats -> chat.id Never pass: person name, user_id, message_id.
account_idNoOptional Nilyo connection ID (unipile_account_id from list_connected_accounts). Omit when the user has one account for this provider. When several exist, Nilyo never guesses: list them (display name, identifier, provider user ID), choose the one the user named or ask, and pass its ID here.
message_idYesExact message ID returned inside the specified chat. Keep it paired with chat_id for all V2 message mutations/reactions. Message ID: Exact message id inside a specific chat. In V2 always keep chat_id together with message_id because providers may only guarantee uniqueness inside the chat. Obtain with: provider read/list conversation messages -> message.id Never pass: message text, chat_id, message ID without its chat context for mutation tools.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already indicate a mutation (readOnlyHint=false) and non-idempotent behavior. The description adds the 'where supported' caveat and the requirement to keep chat_id+message_id paired, which are useful behavioral constraints. However, it doesn't disclose potential side effects like edit time limits or failure modes, and much of the text repeats schema parameter descriptions rather than providing deep behavioral insight.

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

Conciseness2/5

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

The description is verbose and repetitive. The Chat ID and Message ID sections largely duplicate the schema parameter descriptions, and the two paragraphs repeat similar warnings. The first sentence and recommended chain are useful, but the rest could be condensed significantly. It is not front-loaded beyond the initial purpose, and the lengthy explanations hurt clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has no output schema and is a mutation. The description covers how to obtain IDs and the recommended chain, but it doesn't explain what the tool returns, what happens on failure, or any limitations like edit windows or irreversible effects. Given the openWorldHint and mutation nature, this is incomplete for an agent to understand the full effect of calling the tool.

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 extra guidance on how to obtain chat_id and message_id, and explicitly states 'Never pass: person name, user_id, message_id' for chat_id and 'Never pass: message text, chat_id, message ID without its chat context' for message_id. This goes beyond the schema by clarifying common mistakes and provenance, earning a 4.

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 clearly states 'Edit one previously sent message where supported.' This is a specific verb+resource and distinguishes it from siblings like message_delete or message_forward. It also notes 'where supported' to indicate provider limitations, making the purpose unambiguous.

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?

The description provides a recommended chain: 'resolve chat -> list messages -> message_get -> edit,' which tells the agent when to use this tool. It also emphasizes keeping the chat_id+message_id pair and warns against passing person names or user_ids. However, it doesn't explicitly state when not to use this tool or name alternatives like message_forward or message_delete, so it's not fully explicit.

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.