Slack MCP connector: bot message content missing — attachments not surfaced in tool output

Resolved 💬 3 comments Opened May 12, 2026 by akash-skyflow Closed May 15, 2026

Summary

The claude.ai Slack MCP connector's slack_read_channel and slack_read_thread tools only return the text field of Slack messages. Many bots (e.g. Opsgenie, PagerDuty, GitHub, Jira) post their content entirely in attachments or blocks, leaving the text field empty. Claude sees these messages as blank even though the full content is visible in the Slack client.

Steps to Reproduce

  1. Connect the claude.ai Slack MCP in Claude Code
  2. Use slack_read_channel on any channel where a bot posts alerts or notifications using Slack message attachments
  3. Observe that the bot messages appear with empty bodies in the tool output

Expected Behavior

Tool output should include attachment content. At minimum, attachments[].fallback should be included — Slack requires all attachments to provide a fallback plain-text string specifically for clients that cannot render rich formatting. attachments[].text and attachments[].pretext would also be useful.

Actual Behavior

Bot messages that use Slack attachments appear completely empty:

=== Message from Opsgenie at 2026-05-12 05:16:58 ===

While the Slack client shows the full alert title, priority, and description.

Why This Matters

This makes the tool effectively useless for incident response and on-call workflows — a primary use case for reading alert channels. It also affects any channel where bots post structured notifications.

The Slack API already returns attachments as part of the conversations.history response when channels:history scope is granted (which the connector already has). No additional OAuth scopes are needed. This is purely a data extraction issue in the connector's message formatting logic.

Suggested Fix

Include attachments[].fallback, attachments[].text, and attachments[].pretext in the formatted message output. For blocks-based messages, include the text field from section blocks.

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗