Slack MCP tools silently deactivate mid-session (~1h uptime); claude mcp list still reports Connected
Summary
Slack MCP tools (slack_send_message, slack_search_channels, etc.) reliably work at the start of a Claude Code session, then after roughly an hour silently disappear from the model's deferred-tool registry — with no app restart, no plugin reinstall, no OAuth re-auth, and no config change on the user side. Crucially, claude mcp list continues to report ✓ Connected after the tools vanish, so neither the user nor the assistant can tell from the obvious surface that anything has dropped.
The recurring user-facing failure mode is: the assistant tries to invoke a Slack tool, gets a missing-tool result, then frequently misdiagnoses by suggesting the Slack Connector "isn't installed" — even though it has been installed all along and the same Connector was working tool-calls minutes earlier in the same session.
Environment
- Claude Code version: 2.1.142
- OS: Windows 10/11 (PowerShell + Git Bash)
- Slack Plugin: installed (
slack@claude-plugins-official: truein~/.claude/settings.json) - Slack Connector: installed (Directory → Connectors → Slack)
- Endpoint reported by both paths:
https://mcp.slack.com/mcp
Reproduction
- Start a Claude Code session with Slack tools working — verify by sending a test Slack message via
slack_send_message. - Continue using Claude Code on unrelated work for ~1 hour (no Slack activity needed).
- Attempt another Slack tool call (e.g. via an end-of-MR Slack post flow).
- Tool call fails because the tool is no longer in the deferred-tool list.
Probing in the broken state:
$ claude mcp list
Checking MCP server health…
plugin:slack:slack: https://mcp.slack.com/mcp (HTTP) - ✓ Connected
ToolSearch for any prefixed slack_* tool returns No matching deferred tools found despite the ✓-Connected status.
Expected
Either:
- the MCP
list_changednotification path rebinds the Slack tools into the session's tool catalog when they come back, OR claude mcp listand any user-visible status surface reflect that the tools are de facto unavailable (so users and assistants don't mis-diagnose).
Actual
Tools silently leave the deferred-tool list. claude mcp list keeps reporting ✓ Connected. There is no in-session surface that says "Slack tools dropped at <time> — restart to recover".
Workarounds (in observed order of reliability)
- Open a new chat in the same Claude Code window. Confirmed to re-bind tools in the original session without losing context — verified 2026-05-19. Mechanism unclear.
- Toggle the Slack Plugin off → on in Customize → Personal plugins. Re-binds in the same session, no restart, no context loss. Works sometimes; did not work in the 2026-05-19 occurrence where the new-chat trick succeeded.
- App restart. Works, but loses the session.
/clear. Works (forces a system-prompt rebuild that re-reads the tool catalog), but nukes conversation context — not a real fix.
What does NOT restore them
/mcp,/compact,/resume,/config- Waiting
Hypothesis
OAuth state at mcp.slack.com/mcp appears to drift, and the client's deferred-tool registry has no refresh trigger short of a full system-prompt rebuild (which is why /clear works). The MCP list_changed notification path that should handle this evidently isn't firing — or isn't being honored — for the Slack Connector after the silent drop. Both the Plugin path and the Connector path appear to suffer from this; in this user's installation it has recurred across many sessions over months.
Secondary issue (UX)
When this happens, the assistant — guided by current docs and skill prompts — often suggests "install the Slack Connector" as the remediation. That's wrong: the Connector is already installed, it was working in this session, and the suggestion sends users on a 30-second wild goose chase before they realize the real fix is restart / new chat / plugin toggle. A clearer "Slack tools are no longer bound in this session — restart Claude Code or open a new chat to recover" message would prevent this misdiagnosis loop.
Asks
- Surface the deactivation in
claude mcp list(or somewhere user-visible) so this stops being silent. - Wire the
list_changednotification — or some periodic resync — so Slack tools can come back without/clearor a new chat. - Update assistant-facing docs/skills to recommend restart / new chat / plugin toggle, not Connector reinstall, when Slack tools go missing mid-session
This issue has 5 comments on GitHub. Read the full discussion on GitHub ↗