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

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions