Skip to main content
Glama
crunchtools

mcp-slack-crunchtools

by crunchtools

Slack Send Message

slack_send_message

Sends or schedules Slack messages to a channel, optionally as a thread reply, with a configurable delay for cancellation before delivery.

Instructions

Send or schedule a Slack message.

When SLACK_ADD_MESSAGE_DELAY is set (default: 3m), the message is scheduled via chat.scheduleMessage, giving a cancellation window before delivery. Use slack_cancel_scheduled_message with the returned scheduled_message_id to cancel. Set SLACK_ADD_MESSAGE_DELAY=0 to post immediately.

Input Schema

NameRequiredDescriptionDefault
textYesMessage text (Markdown supported)
thread_tsNoParent message timestamp to reply in-thread
channel_idYesChannel ID (starts with C, D, or G)

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changedv0.4.0
    • addedInput schema / properties / channel_id / description
      Added value: +"Channel ID (starts with C, D, or G)"
    • addedInput schema / properties / text / description
      Added value: +"Message text (Markdown supported)"
    • addedInput schema / properties / thread_ts / description
      Added value: +"Parent message timestamp to reply in-thread"
  2. First observedv0.2.0

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations at all, the description carries the full behavioral burden and does the most important part: it discloses that the tool does not actually post immediately but calls chat.scheduleMessage with a ~3 minute cancellation window, which is a genuinely non-obvious side effect an agent would otherwise get wrong. It omits permission/scopes requirements, rate-limit behavior, and error semantics for an invalid channel_id.

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?

Front-loads the core action in one line, then devotes the remainder to the single non-obvious behavioral fact and its escape hatch. Every sentence earns its place; nothing is repeated from the schema.

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?

An output schema exists, so return-value detail is unnecessary, and the key scheduling behavior plus the cancellation path are covered. The gap is the absence of any annotation coverage for a write operation — auth requirements and failure modes are left entirely implicit.

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 100%, with text, channel_id, and thread_ts each documented inline, so the baseline is 3. The description adds no further meaning to any input parameter — the only identifier it mentions (scheduled_message_id) is a return value, not an input.

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 pair and resource ('Send or schedule a Slack message'), which is immediately distinguishable from read-only siblings like slack_get_channel_history or slack_search_messages. The scope is unambiguous without opening the schema.

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?

Explicitly explains the default path (scheduled with a 3m delay), names slack_cancel_scheduled_message as the follow-up with the required scheduled_message_id, and states the opt-out (SLACK_ADD_MESSAGE_DELAY=0) for immediate posting. It stops short of stating when not to use this tool (e.g., for reactions, files, or thread reads), so it is not a full when/when-not routing statement.

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