Slack MCP
Read and respond to Slack from Claude. Provides tools for summarizing activity, listing channels, reading messages, searching, sending messages, replying to threads, and adding reactions.
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
Slack MCP
Read and respond to Slack from Claude. Works as an MCP server (for Claude Desktop/Claude Code) and as a standalone CLI (for GitHub Actions).
Quick setup / update (any Mac)
This server is installed and registered for Claude Code and Claude Desktop by
setup-mcp.sh in the dotfiles repo,
along with all the other MCP servers:
cd ~/dotfiles && git pull && ./setup-mcp.shThen restart Claude Code and Claude Desktop. (More detail, including upgrading an older Mac: the
laptop-setup README.)
The script clones or pulls every server repo into
~/src, builds each environment from its uv.lock, writes the config, and checks that each server
starts. It's safe to re-run anytime.
After that, a plain git pull in this repo is enough: the server launches with uv run --frozen,
which installs any changed dependencies on the next start. Credentials live in ~/.mcp-auth
(synced from Box with unison mcp_auth).
Related MCP server: Slack Note Capture MCP Server
Features
Multi-workspace support - Configure multiple Slack workspaces
Read tools - Summarize activity, list channels, read messages, search
Write tools - Send messages, reply to threads, add reactions
Standalone CLI - Generate markdown summaries for GitHub Actions
Installation
1. Create Slack App(s)
For each workspace you want to connect:
Go to https://api.slack.com/apps → Create New App → From manifest
Select your workspace
Paste this manifest:
display_information:
name: Claude Slack Reader
description: Read and respond to Slack from Claude
oauth_config:
scopes:
user:
# Read
- channels:history
- channels:read
- groups:history
- groups:read
- im:history
- im:read
- mpim:history
- mpim:read
- users:read
- search:read # slack_search
# Write
- chat:write # send messages to channels + DMs
- reactions:write # add emoji reactions
- files:write # upload files / images
- im:write # open a NEW DM with someone you've never messaged (existing DMs work without this)
settings:
org_deploy_enabled: false
socket_mode_enabled: false
token_rotation_enabled: falseClick Install to Workspace → Allow
Copy the User OAuth Token (starts with
xoxp-)
Note: Slack requires a separate app per workspace (public distribution requires Slack approval).
2. Configure Tokens
Create ~/.mcp-auth/slack/config.json:
{
"workspaces": {
"work": {
"name": "Work Slack",
"token": "xoxp-your-token-here",
"priority": 1
},
"research": {
"name": "Research Group",
"token": "xoxp-your-token-here",
"priority": 2
}
},
"default_workspace": "work"
}Or use environment variables:
export SLACK_USER_TOKEN=xoxp-... # Single workspace
export SLACK_TOKEN_WORK=xoxp-... # Multiple workspaces
export SLACK_TOKEN_RESEARCH=xoxp-...3. Install Dependencies
cd ~/src/slack-mcp
pip install -r requirements.txt4. Add to Claude Desktop
Edit ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"slack": {
"command": "python3",
"args": ["/path/to/slack-mcp/server.py"]
}
}
}Restart Claude Desktop.
Project Structure
slack-mcp/
├── src/
│ ├── config.py # Multi-workspace configuration
│ ├── slack_client.py # Slack API wrapper (read + write)
│ ├── summarizer.py # Message categorization
│ └── mcp_server.py # MCP server with tools
├── server.py # Entry point for MCP server
├── slack_summary.py # Standalone CLI
├── requirements.txt
├── pyproject.toml
└── .github/
└── workflows/
└── daily-summary.ymlMCP Tools
Read Tools
Tool | Description |
| Overview of DMs, mentions, channel activity. Use |
| List all channels (filter by type: |
| Read messages from a specific channel |
| Read messages in a thread |
| Search messages |
| Get unread message counts |
| List configured workspaces |
Write Tools
Tool | Description |
| Send message to channel or DM |
| Reply in a thread |
| Add emoji reaction |
Example Usage in Claude
"What's happening in my Slack?"
→ Uses slack_summary with quick mode
"Show me the #engineering channel"
→ Uses slack_channel
"Reply to that thread saying I'll review it tomorrow"
→ Uses slack_reply
"Add a thumbsup to that message"
→ Uses slack_reactStandalone CLI
Generate markdown summaries without Claude:
# Print summary to stdout
python slack_summary.py
# Save to file
python slack_summary.py --output slack-summary.md
# Look back 48 hours
python slack_summary.py --hours 48
# Specific workspace
python slack_summary.py --workspace work
# Action items only
python slack_summary.py --action-items-onlyGitHub Actions Workflow
The included workflow runs daily and commits a summary:
# .github/workflows/daily-summary.yml
name: Daily Slack Summary
on:
schedule:
- cron: '0 12 * * *' # 7 AM EST
workflow_dispatch:
jobs:
summarize:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.11'
- run: pip install -r requirements.txt
- env:
SLACK_USER_TOKEN: ${{ secrets.SLACK_USER_TOKEN }}
run: python slack_summary.py --output slack-summary.md
- run: |
git config user.email "github-actions[bot]@users.noreply.github.com"
git config user.name "github-actions[bot]"
git add slack-summary.md
git diff --quiet --staged || git commit -m "Daily Slack summary [skip ci]"
git pushAdd your token as a repository secret: Settings → Secrets → Actions → New repository secret → SLACK_USER_TOKEN
Configuration Sync
To sync config across machines, symlink to a cloud folder:
mkdir -p ~/.mcp-auth/slack
ln -sf ~/Dropbox/mcp-auth/slack/config.json ~/.mcp-auth/slack/config.json
# or Box, iCloud, etc.Performance
Quick mode (default): ~4 seconds - scans recent DMs and channels
Full mode: ~20 seconds - detailed scan of all activity
Cached calls: ~1.5 seconds - conversation list cached for 5 minutes
Requirements
Python 3.10+
slack-sdk- Slack API clientmcp- Model Context Protocol server
This server cannot be deployed
Maintenance
Related MCP Connectors
Your WhatsApp Business inbox in Claude or ChatGPT: who's waiting, follow-ups and replies.
Create projects, nodes, and tasks in UluP Spaces by conversation with Claude.
Read and answer your team's WhatsApp and email inbox from Claude or ChatGPT. OAuth sign-in.
Run social media from Claude: draft, schedule and approve posts, answer comments, read results.
Related MCP Servers
- -licenseNot gradedqualityAmaintenanceMCP Server for the Slack API, enabling Claude to interact with Slack workspaces.70,822 npm91,671MIT
- FlicenseAqualityNot gradedmaintenanceEnables two-way communication between Claude and Slack for posting messages, managing threads, and handling files. It specifically supports asynchronous workflows by allowing Claude to poll for remote user replies and send task notifications.9-
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol (MCP) server for Slack integration, allowing Claude to interact with your Slack workspace.51,460 npmMIT
- AlicenseAqualityCmaintenanceMCP Server for the Slack API, enabling Claude to interact with Slack workspaces.870,822 npmMIT