Read Slack conversations, threads, user info, and search messages from your MCP client.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
A Model Context Protocol (MCP) server that provides programmatic access to Slack conversations, threads, and workspace information. Designed for AI assistants like Claude to interact with your Slack workspace through a standardized interface.
The Model Context Protocol is an open standard that enables AI assistants to securely access external data sources and tools. This server implements MCP to give Claude direct access to your Slack workspace.
The easiest way to use this MCP server is to install it directly from PyPI:
After installation, you'll need to set up authentication (see below).
A User Token uses your personal Slack permissions and can access all channels you're a member of.
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 messagesxoxp-)A Bot Token is more limited but easier to set up for team-wide access.
xoxb-)/invite @YourBotNameCreate a .env file:
Edit .env and add your token:
Add this server to Claude Code by editing your ~/.claude.json file:
If you installed from source:
If you prefer to use a bot token instead of a user token:
Note: Remember to invite your bot to channels: /invite @YourBotName
Restart Claude Code and verify the server is running:
You should see slack in the list of active MCP servers.
This server provides 7 MCP tools for interacting with Slack:
read_channel_messagesRetrieve recent messages from any Slack channel with flexible time filtering.
Parameters:
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
channel_id | string | β | - | Slack channel ID (e.g., C1234567890) |
lookback_hours | number | β | 24 | Hours to look back from now |
limit | number | β | 100 | Max messages to retrieve (max: 1000) |
Natural Language Examples:
Returns: Formatted messages with timestamps, user mentions, thread indicators, reactions, and permalinks.
read_thread_messagesRead all messages in a conversation thread, including the parent message and all replies.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
channel_id | string | β | Channel ID where the thread exists |
thread_ts | string | β | Thread timestamp (the ts field of the parent message) |
Natural Language Examples:
Returns: Complete thread with parent message and all replies, formatted with timestamps and reactions.
get_channel_infoGet detailed metadata about a Slack channel.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
channel_id | string | β | Slack channel ID |
Natural Language Examples:
Returns: Channel name, ID, creation date, member count, privacy status, topic, and purpose.
get_user_infoLook up detailed profile information for any Slack user.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
user_id | string | β | Slack user ID (e.g., U1234567) |
Natural Language Examples:
Returns: User's real name, display name, email, title, status, timezone, and admin/bot flags.
list_my_channelsList all channels you're a member of, with support for different channel types.
Parameters:
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
types | string | β | public_channel,private_channel | Comma-separated channel types |
Supported Types:
public_channel - Public channelsprivate_channel - Private channelsmpim - Group direct messagesim - Direct messagesNatural Language Examples:
Returns: Channel names, IDs, member counts, and privacy indicators.
search_my_conversationsSearch for messages across all conversations where you're mentioned or involved.
Parameters:
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
query | string | β | - | Search terms |
count | number | β | 20 | Number of results (max: 100) |
Natural Language Examples:
Returns: Matching messages with channel names, user info, timestamps, and permalinks.
get_message_permalinkGenerate a permanent, shareable link to a specific Slack message.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
channel_id | string | β | Channel ID |
message_ts | string | β | Message timestamp |
Natural Language Examples:
Returns: Permanent URL that works even if the workspace's URL changes.
Once configured in Claude Code, you can interact with your Slack workspace using natural language. Here are some example queries:
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/slack-mcp-server)<a href="https://allmcps.com/mcp/slack-mcp-server"><img src="https://allmcps.com/api/badge/slack-mcp-server?style=directory" alt="Slack MCP Server on AllMCPs" /></a>