Wraps the Slack Web API to let Claude interact with your workspace through MCP. Exposes tools for posting messages, replying to threads, adding reactions, searching messages with filters, and retrieving channel history and user profiles. Requires both bot and user OAuth tokens and supports stdio transport for Claude Desktop or HTTP transport for web apps. Reach for this when you want Claude to monitor Slack conversations, respond to messages, or pull workspace data for analysis. Includes safe search mode to automatically exclude private channels and DMs from operations.
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.
This server supports both traditional and modern MCP transport methods:
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_profiles - Get multiple users' profile information in bulk (efficient for batch operations)slack_search_messages - Search for messages in the workspace with powerful filters:
in_channelfrom_user, withbefore (YYYY-MM-DD), after (YYYY-MM-DD), on (YYYY-MM-DD), during (e.g., "July", "2023")has (emoji reactions), is (saved/thread)npm 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)SLACK_SAFE_SEARCH (optional): When set to true, automatically excludes private channels, DMs, and group DMs from search results. This is enforced server-side and cannot be overridden by clients.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
SLACK_SAFE_SEARCH=true # Optional: Enable safe search mode
Stdio Transport (default):
npx @ubie-oss/slack-mcp-server
Streamable HTTP Transport:
npx @ubie-oss/slack-mcp-server -port 3000
You can also run the installed module with node:
# Stdio transport
node node_modules/.bin/slack-mcp-server
# HTTP transport
node node_modules/.bin/slack-mcp-server -port 3000
Command Line Options:
-port <number>: Start with Streamable HTTP transport on specified port-h, --help: Show help messageFor Stdio Transport (Claude Desktop, etc.):
{
"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>",
"SLACK_SAFE_SEARCH": "true"
}
}
}
For Streamable HTTP Transport (Web applications):
Start the server:
SLACK_BOT_TOKEN=<your-bot-token> SLACK_USER_TOKEN=<your-user-token> npx @ubie-oss/slack-mcp-server -port 3000
Connect to: http://localhost:3000/mcp
See examples/README.md for detailed client examples.
This server adopts the following implementation pattern:
Define request/response using Zod schemas
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 lintio.github.mindstone/mcp-server-microsoft-teams
com.mintmcp/outlook-email
helbertparanhos/resend-email-mcp
marlinjai/email-mcp
io.github.mindstone/mcp-server-email-imap
io.github.osamahassouna/email-playbook-mcp