slackapi / slackapi/slack-skills-plugin
Feature: Add Claude Code Channels support for real-time Slack messaging
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 132
- Forks
- 34
- Avg merge
- 1d 6h
- Merged PRs (30d)
- 16
Description
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:
- Declares
claude/channelcapability in the MCPServerconstructor - Receives Slack messages (via Slack's Events API, Socket Mode, or polling) and emits
notifications/claude/channelevents with message content and metadata (channel, user, thread_ts, etc.) - Exposes a reply tool so Claude can send messages back to the originating channel/thread
- Gates inbound messages on sender identity to prevent prompt injection (allowlist-based)
- 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-channelsflag 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
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the existing .mcp.json remote configuration and the Telegram and Discord channel implementations referenced in the issue, then read the Claude Code Channels contract. Define the local stdio server, Slack event delivery, reply tool, sender allowlist, and optional permission relay; done means messages and replies work through the documented channel notifications and capability.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- api, backend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100