MCP server for reading Slack conversations and threads
Project description
Slack MCP Server
MCP server for reading Slack conversations and threads you're involved in. Built specifically for use with Claude Code.
Features
- Read Channel Messages: Get recent messages from any channel with time-based filtering
- Read Thread Messages: Read entire conversation threads
- Get Channel Info: View channel details and metadata
- Get User Info: Look up user profiles and information
- List Your Channels: See all channels you're a member of
- Search Conversations: Find messages where you're mentioned or involved
- Get Message Links: Generate permanent links to specific messages
Installation
- Clone or download this directory
- Install dependencies:
cd slack-mcp-server
pip install -r requirements.txt
- Set up your Slack token (see Authentication section below)
Authentication
Option 1: User Token (Recommended)
A User Token uses your personal Slack permissions and can access all channels you're a member of.
- Go to https://api.slack.com/apps
- Create a new app (or use existing)
- Navigate to "OAuth & Permissions"
- Add the following User Token Scopes:
channels:history- View messages in public channelschannels:read- View basic channel infogroups:history- View messages in private channelsgroups:read- View basic private channel infoim:history- View messages in direct messagesim:read- View basic DM infompim:history- View messages in group DMsmpim:read- View basic group DM infousers:read- View user informationsearch:read- Search messages
- Install the app to your workspace
- Copy the "User OAuth Token" (starts with
xoxp-)
Option 2: Bot Token
A Bot Token is more limited but easier to set up for team-wide access.
- Follow steps 1-2 above
- Add Bot Token Scopes instead (same list but in bot section)
- Install the app
- Copy the "Bot User OAuth Token" (starts with
xoxb-) - Invite the bot to channels you want to read:
/invite @YourBotName
Configure Environment
Create a .env file:
cp .env.example .env
Edit .env and add your token:
# Use one of these:
SLACK_USER_TOKEN=xoxp-your-user-token-here
# OR
SLACK_BOT_TOKEN=xoxb-your-bot-token-here
Add to Claude Code
Add this to your ~/.claude.json file in the mcpServers section:
{
"mcpServers": {
"slack": {
"command": "python",
"args": ["/path/to/slack-mcp-server/server.py"],
"env": {
"SLACK_USER_TOKEN": "xoxp-your-user-token-here",
"SLACK_WORKSPACE_URL": "https://your-workspace.slack.com"
}
}
}
}
Or if using uvx:
{
"mcpServers": {
"slack": {
"command": "uvx",
"args": ["--from", "/path/to/slack-mcp-server", "slack-mcp"],
"env": {
"SLACK_USER_TOKEN": "xoxp-your-user-token-here",
"SLACK_WORKSPACE_URL": "https://your-workspace.slack.com"
}
}
}
}
Restart Claude Code and verify with:
claude mcp list
Available Tools
1. read_channel_messages
Read recent messages from a channel.
Parameters:
channel_id(required): Slack channel ID (e.g.,C1234567890)lookback_hours(optional): Hours to look back (default: 24)limit(optional): Max messages to retrieve (default: 100, max: 1000)
Example:
Read the last 48 hours of messages from channel C1234567890
2. read_thread_messages
Read all messages in a thread.
Parameters:
channel_id(required): Channel ID where thread existsthread_ts(required): Thread timestamp (from parent message)
Example:
Read the full thread with timestamp 1699564800.123456 in channel C1234567890
3. get_channel_info
Get channel metadata.
Parameters:
channel_id(required): Channel ID
Example:
Get info about channel C1234567890
4. get_user_info
Get user profile information.
Parameters:
user_id(required): User ID (e.g.,U1234567)
Example:
Get info about user U1234567
5. list_my_channels
List all channels you're a member of.
Parameters:
types(optional): Comma-separated types (default:public_channel,private_channel)- Options:
public_channel,private_channel,mpim,im
- Options:
Example:
List all my channels
6. search_my_conversations
Search for messages where you're mentioned or involved.
Parameters:
query(required): Search termscount(optional): Number of results (default: 20, max: 100)
Example:
Search my conversations for "deployment" in the last week
7. get_message_permalink
Get a permanent link to a specific message.
Parameters:
channel_id(required): Channel IDmessage_ts(required): Message timestamp
Example:
Get permalink for message 1699564800.123456 in channel C1234567890
Usage with Claude Code
Once configured, you can ask Claude to:
- "Show me messages from the #general channel in the last 24 hours"
- "Read the thread starting at timestamp 1699564800.123456 in channel C1234567890"
- "Search my Slack conversations for mentions of 'deployment'"
- "List all channels I'm in"
- "Get info about user U1234567"
Finding Channel IDs
Method 1: From Slack URL
When you're in a channel, the URL looks like:
https://your-workspace.slack.com/archives/C1234567890/p1234567890
The part after /archives/ is the channel ID: C1234567890
Method 2: Using the MCP Server
Ask Claude:
List all my channels
Method 3: Right-click in Slack
- Right-click on the channel name
- Click "Copy link"
- Extract the channel ID from the URL
Troubleshooting
"Missing required scopes"
Make sure you've added all the required scopes in your Slack app configuration.
"Channel not found"
- Verify the channel ID is correct
- If using a bot token, make sure the bot is invited to the channel (
/invite @BotName) - If using a user token, make sure you're a member of the channel
"Not authenticated"
- Check that your
SLACK_USER_TOKENorSLACK_BOT_TOKENis set correctly - Verify the token hasn't expired
- Make sure there are no extra spaces in the
.envfile
MCP Server Not Showing Up
# Check MCP server status
claude mcp list
# Check logs
tail -f ~/.claude/debug/*.log
Security Notes
- Never commit your
.envfile or expose your Slack tokens - User tokens have access to everything you can see in Slack - use with care
- Consider using bot tokens for shared/team setups
- Tokens can be revoked at https://api.slack.com/apps
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file slack_mcp_server_v2-0.1.0.tar.gz.
File metadata
- Download URL: slack_mcp_server_v2-0.1.0.tar.gz
- Upload date:
- Size: 8.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bb7fa55cbe0566db298509acffa8315d988c49315e8760d834a98ff7e5ee033d
|
|
| MD5 |
99bff5bbe81b98f7662793ab6155a356
|
|
| BLAKE2b-256 |
bb182bd77b7a61d3ac601622b2362c78ea27970bb56370af6014da6f25ff892f
|
File details
Details for the file slack_mcp_server_v2-0.1.0-py3-none-any.whl.
File metadata
- Download URL: slack_mcp_server_v2-0.1.0-py3-none-any.whl
- Upload date:
- Size: 17.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
262e9607ac77ba3a828d2275f2ed341cf2f1ad6af92e4852c3f4342377ba5f49
|
|
| MD5 |
b7463f6794c526551ee19d15759775f6
|
|
| BLAKE2b-256 |
f0c4991877fb871417cd4adb028a8ea8b0a4a1f4fa3984e716df426b1aed5c76
|