slack mcp server
A server implementing Model Context Protocol that enables AI assistants to interact with Slack API through a standardized interface, providing tools for messaging, channel management, user information retrieval, and more.
A server implementing Model Context Protocol that enables AI assistants to interact with Slack API through a standardized interface, providing tools for messaging, channel management, user information retrieval, and more.
A MCP(Model Context Protocol) server for accessing Slack API. This server allows AI assistants to interact with the Slack API through a standardized interface.
Available tools:
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 threadslack_get_users
- Retrieve basic profile information of all users in the workspaceslack_get_user_profile
- Get a user's profile informationslack_search_messages
- Search for messages in the workspacenpm install @ubie-oss/slack-mcp-server
NOTE: Its now hosted in GitHub Registry so you need your PAT.
You need to set the following environment variables:
SLACK_BOT_TOKEN
: Slack Bot User OAuth TokenSLACK_USER_TOKEN
: Slack User OAuth Token (required for some features like message search)You can also create a .env
file to set these environment variables:
SLACK_BOT_TOKEN=xoxb-your-bot-token
SLACK_USER_TOKEN=xoxp-your-user-token
Directly:
npx @ubie-oss/slack-mcp-server
Or, run the installed module with node:
node node_modules/.bin/slack-mcp-server
{
"slack": {
"command": "npx",
"args": [
"-y",
"@ubie-oss/slack-mcp-server"
],
"env": {
"NPM_CONFIG_//npm.pkg.github.com/:_authToken": "<your-github-pat>",
"SLACK_BOT_TOKEN": "<your-bot-token>",
"SLACK_USER_TOKEN": "<your-user-token>"
}
}
}
This server adopts the following implementation pattern:
Response schema: Define responses limited to necessary fields
Implementation flow:
For example, the slack_list_channels
implementation parses the request with ListChannelsRequestSchema
, calls slackClient.conversations.list
, and returns the response parsed with ListChannelsResponseSchema
.
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 lint