[BUG] Slack MCP slack_search_public returns corrupted timestamps
Summary
mcp__claude_ai_Slack__slack_search_public returns messages whose displayed timestamps are mangled. Search content and filters work correctly, but the timestamp field is unreadable, breaking any workflow that uses search to build a timeline or assess recency.
slack_read_channel and slack_read_thread return correct timestamps for the same messages — the bug is isolated to slack_search_public's output formatter.
Environment
- Claude Code CLI on macOS, Opus 4.7 (1M context)
- MCP namespace:
mcp__claude_ai_Slack__*(claude.ai-connected Slack) - Verified: 2026-04-27
Reproduction
The same message returned by both slack_read_channel and slack_search_public has different timestamp formatting:
Via slack_read_channel (channel C0AQM6JGY1H, #ndas-plan-group):
Changyu Gao: "Hi, team. When I tried to 'connect to jira', it doesn't work for me." [2026-04-23 01:52:50 PDT]
Via slack_search_public with query in:#ndas-plan-group:
Changyu Gao: "Hi, team. When I tried to 'connect to jira', it doesn't work for me." 56310778-08-11
The 56310778-08-11 value is rendered in YYYY-MM-DD form, but year 56,310,778 is nonsense. The value is not:
- A Unix epoch (would be ~1.78 billion in 2026)
- A real Slack
ts(would be a float like1745384000.123456) - Any consistent transform of either
The pattern across results suggests a numeric Slack message ID is being split on punctuation and emitted as date components by the search-results formatter. Other search results showed similarly mangled values: 56322999-08-18, 56267808-06-27, 56303312-01-20.
Impact
- Cannot use
slack_search_publicto build a timeline or assess recency. - Cannot tell when a search-found message was sent without re-fetching via
slack_read_channel. after:/before:date filters in the query string DO appear to filter correctly — verified by cross-checking againstslack_read_channel. Only the displayed timestamps in the response are wrong.
What works
slack_read_channel— proper[YYYY-MM-DD HH:MM:SS TZ]timestampsslack_read_thread— proper timestampsslack_read_user_profile— worksslack_search_channels— worksslack_search_publicquery semantics (in:,after:,from:) — work; only timestamps corrupted
Workaround
Use slack_read_channel (or slack_read_thread) for any timestamp-sensitive workflow. Treat slack_search_public result timestamps as opaque; re-fetch via channel-read for the real time.
🤖 Generated with Claude Code
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗