Skip to content

Feature: Add Claude Code Channels support for real-time Slack messaging #22

@marciogranzotto

Description

@marciogranzotto

Summary

The Slack MCP plugin currently operates as a tool-based integration — Claude can search, read, and send messages only when explicitly invoked. With Claude Code Channels (research preview, v2.1.80+), the plugin could push Slack messages into a Claude Code session in real time, enabling Claude to react to conversations as they happen.

What are Channels?

A channel is an MCP server that declares the claude/channel capability and emits notifications/claude/channel events. Claude Code spawns it as a local subprocess over stdio. Channels can be:

  • One-way: forward messages/events for Claude to observe and act on
  • Two-way: also expose a reply tool so Claude can respond back through the platform

See the Channels reference for the full contract.

What this would look like

The plugin would need a local server component that:

  1. Declares claude/channel capability in the MCP Server constructor
  2. Receives Slack messages (via Slack's Events API, Socket Mode, or polling) and emits notifications/claude/channel events with message content and metadata (channel, user, thread_ts, etc.)
  3. Exposes a reply tool so Claude can send messages back to the originating channel/thread
  4. Gates inbound messages on sender identity to prevent prompt injection (allowlist-based)
  5. Optionally supports permission relay (claude/channel/permission) so tool approval prompts can be forwarded to Slack and answered there

Current architecture gap

Today the plugin is purely declarative — .mcp.json points to Slack's remote MCP server at https://mcp.slack.com/mcp and all tools are served remotely. Channels require a local subprocess that communicates over stdio, so this would need a new local server component alongside the existing remote MCP configuration.

Use cases

  • Get notified in a Claude Code session when someone mentions you or a topic you're working on
  • Have Claude monitor a channel and summarize or act on messages as they arrive
  • Reply to Slack threads directly from a Claude Code session without manually invoking tools
  • Approve/deny Claude's tool use from Slack on mobile (permission relay)

Notes

  • Channels are currently in research preview and require the --dangerously-load-development-channels flag for custom implementations
  • Team and Enterprise orgs must explicitly enable channels
  • The Telegram and Discord plugins are good reference implementations for chat-platform channels with pairing flows and sender gating

Metadata

Metadata

Assignees

No one assigned

    Labels

    discussionM-T: An issue where more input is needed to reach a decision

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions