[BUG] Slack tools return empty `Text:` for bot messages using legacy `attachments[]` field

Resolved 💬 3 comments Opened May 18, 2026 by neto-will Closed Jun 9, 2026

Preflight Checklist

  • [x] I have searched existing issues and this hasn't been reported yet
  • [x] This is a single bug report (please file separate reports for different bugs)
  • [x] I am using the latest version of Claude Code

What's Wrong?

Summary

A Slack message with attachments (like the one in the image below) can't be read by the Slack MCP:

<img width="807" height="167" alt="Image" src="https://github.com/user-attachments/assets/d9c53f53-0fa9-4b09-a09d-e526ab714247" />

More details

mcp__slack__slack_read_thread, slack_read_channel, and slack_search_public
return only metadata (no body) for messages whose content lives in
attachments[].text / attachments[].fallback rather than the top-level text
or modern blocks[]. The data IS retrievable from Slack — Slack's search index
matches against it — but Claude Code's response formatter does not emit it.

Repro

  1. Find a channel that contains messages from the Buildkite Slack app (or any

bot that posts via attachments — many CI bots do).

  1. slack_read_thread on that message ts: response shows Text: empty.
  2. slack_search_public with include_bots=true and a query containing tokens

from inside the attachment (e.g. the build number): Slack matches and
returns the message, but the rendered Text: is still empty.

Expected
When text is empty but attachments[] has text/fallback, render that
content (e.g. concatenated or under an "Attachments:" section). Same for
blocks[] if not already.

Why it matters
Most legacy/CI bots (Buildkite, GitHub, PagerDuty, CircleCI, etc.) post via
attachments. Currently their messages appear empty in Claude Code, so any
skill or workflow that consumes alerts from these bots requires manual copy-
paste of the alert content. A one-place fix in the response formatter unlocks
a large class of integrations.

Evidence the data is reachable
The same search query "#<build-number>" with include_bots=true returns the
specific bot message as a single match, proving Slack's search index sees the
attachment text. The MCP response just doesn't emit it.

Environment
Claude Code <your version>, macOS. Slack workspace: standard config, no
non-default scopes required.

What Should Happen?

It should be possible for the slack MCP to read slack messages posted via attachments.

Error Messages/Logs

Steps to Reproduce

For example, a slack message like this can't be read by the Slack MCP:

<img width="807" height="167" alt="Image" src="https://github.com/user-attachments/assets/d9c53f53-0fa9-4b09-a09d-e526ab714247" />

Claude Model

Sonnet (default)

Is this a regression?

Yes, this worked in a previous version

Last Working Version

_No response_

Claude Code Version

2.1.143 (Claude Code)

Platform

Anthropic API

Operating System

macOS

Terminal/Shell

Terminal.app (macOS)

Additional Information

_No response_

View original on GitHub ↗

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