slackapi / slackapi/slack-skills-plugin

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

Open
#22 3 comments 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

area:mcp discussion
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:

  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

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.