Claude Code Slack Channel

Claude Code Slack Channel

MCP server that connects Claude Code to Slack, allowing two-way communication via Slack Socket Mode without tunnels.

Category
Visit Server

README

Claude Code Slack Channel

Connect Claude Code to your Slack workspace using the Model Context Protocol (MCP). This server runs a Slack App in Socket Mode that routes incoming messages from Slack directly into your local Claude Code session, and gives Claude the ability to securely reply back!

Features

  • Two-Way Communication: Send messages from Slack to Claude Code, and allow Claude Code to natively reply using an MCP tool (send_slack_message).
  • Zero Configuration Tunnels: Uses Slack Socket Mode, meaning no ngrok or public IP addresses are required. Runs completely locally!
  • Private Channel Support: Fully supports routing messages from private Slack channels.

Setup Instructions

1. Create a Slack App

  1. Go to Slack API Apps and click Create New App > From scratch.
  2. Go to Socket Mode (left sidebar) and toggle it On.
  3. Generate an App-Level Token with the connections:write scope. (Starts with xapp-).
  4. Go to OAuth & Permissions (left sidebar), scroll to Scopes > Bot Token Scopes, and add the channels:history, chat:write, and groups:history scopes.
  5. Go to Event Subscriptions (left sidebar), toggle Enable Events to On, and subscribe to message.channels and message.groups under "Subscribe to bot events".
  6. Important: Scroll to the bottom and click Save Changes.
  7. Go to Install App and install it into your workspace to get your Bot User OAuth Token (Starts with xoxb-).

2. Configure Claude Code

You can add this MCP server to your global Claude Code configuration (~/.claude.json) or to a project-specific .claude.json configuration.

Run npm install in this directory to install the @slack/bolt and tsx dependencies. Then, add the following to your mcpServers block, replacing the path and tokens with your actual values:

{
  "mcpServers": {
    "slack-channel": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "tsx",
        "/path/to/this/repository/webhook.ts"
      ],
      "env": {
        "SLACK_APP_TOKEN": "xapp-...",
        "SLACK_BOT_TOKEN": "xoxb-...",
        "SLACK_CHANNEL_ID": "C0..." // Optional: add a channel ID here so it only listens to one specific channel!
      }
    }
  }
}

3. Usage

  • Simply restart Claude Code. The server will initialize in the background and connect to Slack.
  • Invite your bot to any channel in Slack using /invite @YourBotName.
  • Send a message in that channel, and it will seamlessly appear in Claude Code as context!
  • You can ask Claude Code directly to "Reply to that Slack message" and it will autonomously use the send_slack_message tool to post back.

⚠️ Architecture Caveat: Global vs. Local Configuration

Slack's Socket Mode allows multiple WebSocket connections using the identical App Token, and load-balances (randomizes) incoming messages across all connected clients.

Because of this:

  • Global Configuration (~/.claude.json): If you have multiple Terminal windows open running Claude Code simultaneously, each window spawns its own MCP server. When you send a Slack message, Slack will randomly route it to only one of your active terminals.
  • Local Configuration (./.claude.json): If you only want Slack messages to route uniquely to a specific project workspace, do not configure this server globally. Instead, configure the mcpServers block in a local .claude.json file inside that specific project folder so the webhook server is only spawned when you are actively working in that directory.

Troubleshooting

If messages aren't arriving:

  • Ensure you have invited the bot to the channel.
  • Ensure you clicked the yellow "Reinstall to Workspace" banner in Slack after changing event scopes.
  • Check the slack-debug.log file generated in the root of this repository.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured