Skip to main content
Glama

conversations_add_message

Destructive

Post a Slack message as the user to a channel or thread, with markdown, plain text, or Block Kit. Supports channel IDs, #channel names, @users, and threaded replies.

Instructions

Post a message as you. content_type: 'text/markdown' (standard markdown, rendered by Slack) or 'text/plain'. blocks: a Block Kit array, which takes precedence; text then becomes the notification fallback. Link and media unfurling is off.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
textNo
blocksNo
thread_tsNo
channel_idYes
content_typeNotext/markdown

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

B3.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false and destructiveHint=true, so the write nature is covered. The description adds genuinely useful behaviour beyond that: content_type rendering modes, the fact that blocks take precedence over text, that text degrades to a notification fallback, and that link/media unfurling is disabled. It stops short of explaining irreversibility or permission requirements.

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?

Three short sentences, zero filler, and the core action is front-loaded before the formatting caveats. The clipped, note-like phrasing ('POST a message as you. content_type: ...') is dense but readable and appropriate for the length.

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

Completeness3/5

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

An output schema exists, so return values need not be explained, and annotations carry the safety profile. However, for a 5-parameter mutation tool with 0% schema coverage, the absence of any thread_ts guidance and any when-to-use routing leaves the definition only minimally complete.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate, and it only partly does. It explains content_type, blocks, and text semantics well, but channel_id and thread_ts — including how threading changes the call — are entirely undocumented in both schema and description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/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: 'Post a message as you,' naming the acting identity, which is a meaningful distinction in a Slack toolset. It is clearly different from read siblings like conversations_history or conversations_replies, though it never explicitly contrasts itself with schedule_message, the closest functional neighbour.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to use this tool versus alternatives such as schedule_message, canvas_edit, or list_item_create, and no prerequisites (channel membership, posting permissions) are given. The only implicit guidance is the blocks-vs-text precedence rule, which is formatting behaviour rather than usage selection.

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