simple-slack-mcp-server
Provides tools for listing channels, posting messages, replying to threads, adding reactions, and getting channel history and thread replies in Slack.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@simple-slack-mcp-server post 'Hello' to #general"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
simple-slack-mcp-server
A simplified MCP (Model Context Protocol) server for accessing Slack API. This server allows AI assistants to interact with essential Slack messaging and channel operations through a standardized interface.
Transport Support
This server uses stdio transport only for direct integration with MCP clients like Claude Desktop.
Related MCP server: MCP Slack Python
Features
Available tools focused on core messaging and channel operations:
slack_list_channels- List public channels in the workspace with paginationslack_post_message- Post a new message to a Slack channelslack_reply_to_thread- Reply to a specific message thread in Slackslack_add_reaction- Add a reaction emoji to a messageslack_get_channel_history- Get recent messages from a channelslack_get_thread_replies- Get all replies in a message thread
Quick Start
Installation
npm install simple-slack-mcp-serverConfiguration
You need to set the following environment variable:
SLACK_BOT_TOKEN: Slack Bot User OAuth Token
You can create a .env file to set this environment variable:
SLACK_BOT_TOKEN=xoxb-your-bot-tokenUsage
Start the MCP server
npx simple-slack-mcp-serverYou can also run the installed module with node:
node node_modules/.bin/slack-mcp-serverClient Configuration
For Claude Desktop and other MCP clients:
{
"slack": {
"command": "npx",
"args": [
"simple-slack-mcp-server"
],
"env": {
"SLACK_BOT_TOKEN": "<your-bot-token>"
}
}
}See examples/README.md for detailed client examples.
Required Slack Bot Permissions
Your Slack bot needs the following OAuth scopes:
channels:read- To list channelschat:write- To post messageschat:write.public- To post in public channelsreactions:write- To add reactions
Implementation Pattern
This server adopts the following implementation pattern:
Define request/response using Zod schemas
Request schema: Define input parameters
Response schema: Define responses limited to necessary fields
Implementation flow:
Validate request with Zod schema
Call Slack WebAPI
Parse response with Zod schema to limit to necessary fields
Return as JSON
For example, the slack_list_channels implementation parses the request with ListChannelsRequestSchema, calls slackClient.conversations.list, and returns the response parsed with ListChannelsResponseSchema.
Development
Available Scripts
npm run dev- Start the server in development mode with hot reloadingnpm run build- Build the project for productionnpm run start- Start the production servernpm run lint- Run linting checks (ESLint and Prettier)npm run fix- Automatically fix linting issuesnpm run examples- Run the example client
Contributing
Fork the repository
Create your feature branch
Run tests and linting:
npm run lintCommit your changes
Push to the branch
Create a Pull Request
Available Tools
6 toolsslack_add_reactionA
Add a reaction emoji to a message
Inputs: reaction (required), timestamp (required), channel_id (required).
slack_get_channel_historyA
Get messages from a channel in chronological order. Use this when: 1) You need the latest conversation flow without specific filters, 2) You want ALL messages including bot/automation messages, 3) You need to browse messages sequentially with pagination. Do NOT use if you have specific search criteria (user, keywords, dates) - use slack_search_messages instead.
Inputs: channel_id (required), limit, cursor.
slack_get_thread_repliesB
Get all replies in a message thread
Inputs: thread_ts (required), channel_id (required), limit, cursor.
slack_list_channelsA
List public channels in the workspace with pagination
Inputs: limit, cursor.
slack_post_messageA
Post a plain text message to a Slack channel or reply to a thread
Inputs: text (required), channel_id (required), thread_ts.
slack_post_rich_messageA
Post a rich structured message to Slack with Block Kit support. Can post to channels or reply to threads. Supports plain text, markdown formatting, and rich Block Kit layouts with sections, images, dividers, headers, and more.
Inputs: channel_id (required), text, parse, blocks, +3 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 6 tools
Most tools have clearly distinct purposes. The two post message tools (plain and rich) overlap slightly, but their descriptions differentiate them. An agent might misselect if not careful, but overall ambiguity is low.
All tools follow a consistent 'slack_verb_noun' pattern with snake_case. The naming is predictable and uniform across all 6 tools.
6 tools is an appropriate number for a Slack integration focused on core messaging and channel interaction. It covers essential actions without being too sparse or bloated.
Covers basic operations like listing channels, posting messages, and reading history/threads. However, a search functionality is referenced in the get_channel_history description but not provided, and missing common actions like creating channels or deleting messages.
Maintenance
Related MCP Connectors
Hosted Slack MCP server for Claude, ChatGPT and Cursor, with each action switched per account.
MCP server for OpenAI API (chat completions, image generation, embeddings) via AceDataCloud
MCP server for AI dialogue using various LLM models via AceDataCloud
Hosted MCP server connecting AI assistants to 9,000+ apps and 40,000+ actions via Zapier.
Related MCP Servers
- AlicenseBqualityDmaintenanceA Model Context Protocol server implementation that enables AI assistants to interact with Slack workspaces, allowing them to browse channels, send messages, reply to threads, add reactions, and retrieve user information.953 npm2Apache 2.0
- FlicenseNot gradedqualityDmaintenanceAn MCP server that enables interaction with Slack workspaces through tools for managing channels, sending messages, and retrieving user profiles. It leverages the Slack API and FastMCP to provide functionalities like message history lookup and reaction management.1-
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol (MCP) server for Slack workspace integration. This server allows AI assistants to interact directly with your Slack workspace, providing tools to manage channels, send messages, list users, and upload files.53,813 npm1MIT
- AlicenseAqualityDmaintenanceAn MCP server that enables AI agents to read and write Slack messages as the user, not as a bot, using Slack user tokens for authentic actions across multiple workspaces.101MIT