Slack
STREAMABLE HTTPSlack API集成MCP服务器
Slack API集成MCP服务器
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 lint