slackxmcp
Provides tools for interacting with Slack, including sending messages, reading channel history, managing reactions, and receiving real-time notifications via Socket Mode.
Click on "Install 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., "@slackxmcpsend a message to #general saying Hello team!"
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.
slackxmcp
slackxmcp is an open-source Slack stdio MCP server built on top of the official @slack/bolt, @slack/web-api, commander, and @modelcontextprotocol/sdk.
It lets MCP-compatible clients interact with Slack through Web API tools and optionally subscribe to inbound Slack messages through a Socket Mode powered MCP notification channel.
Highlights
Exposes Slack as an MCP server over stdio.
Uses Slack Bolt Socket Mode for inbound event delivery.
Uses the official Slack Web API client for reads and writes.
Supports interactive configuration via
slackxmcp configure.Provides tools for identity, status, conversation lookups, history, thread replies, and common message mutations.
Can emit incoming Slack message events over an optional MCP notification channel.
Requirements
Node.js
24+A Slack app with Socket Mode enabled
Slack App Setup
At minimum, configure:
Socket Mode enabled with an app token that has
connections:writeToken scopes for whichever Slack token you use:
channels:readgroups:readim:readmpim:readchannels:historygroups:historyim:historympim:historychat:writereactions:writeusers:read
Event subscriptions for the message surfaces you care about, such as:
message.channelsmessage.groupsmessage.immessage.mpim
Depending on your workspace policy and the conversations you target, Slack may require additional scopes.
If you want to use slack_search_messages, you will typically also need a user token with search:read because Slack does not expose message search through bot tokens.
Installation
Use it without installing globally:
npx slackxmcp mcpOr for local development:
npm install
npm run build
npm run dev -- mcpQuick Start
Run the interactive configuration:
slackxmcp configureThis writes:
~/.slackxmcp/config.jsonStart the MCP server:
npx slackxmcp mcpIf your MCP host supports notifications and you want inbound Slack events, enable channels:
npx slackxmcp mcp --channelsThe server uses stdio, so it is meant to be launched by an MCP client or wrapper rather than browsed directly in a terminal.
CLI Usage
MCP Server
npx slackxmcp mcpStarts the stdio MCP server for the configured Slack app.
Configure
npx slackxmcp configureThen opens an interactive configure UI (Ink) to manage:
App tokenBot tokenUser tokenAllowed usersAllowed channels
Allowlist items are toggled from menu screens (select an entry to toggle it, then choose Back).
Allowed users/channels screens support live type-to-filter search with a 5-row scroll viewport for faster selection in large workspaces.
Everything is persisted to:
~/.slackxmcp/config.jsonMCP Tools
The server currently exposes these tools:
slack_get_meslack_get_statusslack_get_channelslack_get_channel_membersslack_list_channelsslack_list_usersslack_search_messagesslack_get_channel_historyslack_get_thread_repliesslack_send_messageslack_send_filesslack_reply_to_messageslack_react_to_messageslack_edit_messageslack_delete_message
Push Channel
When started with --channels, the server:
advertises the experimental MCP capability
hooman/channeladvertises
hooman/userwith pathmeta.useradvertises
hooman/sessionwith pathmeta.sessionadvertises
hooman/threadwith pathmeta.threadadvertises
hooman/channel/permissionfor remote daemon approvalsemits
notifications/hooman/channelfor inbound Slack message events
If allowlist entries are configured, notifications/hooman/channel events are emitted only when either:
meta.session(conversation ID) is inallowlist.channels, ormeta.user(sender user ID) is inallowlist.users
When no allowlist is configured (or both arrays are empty), all inbound channel events are emitted.
Each notification includes:
content: a JSON-encoded event payloadmeta.source: alwaysslackmeta.user: the Slack sender ID when availablemeta.session: the Slack conversation IDmeta.thread: the Slack thread timestamp, or the message timestamp for non-threaded messages
The JSON-decoded content payload includes:
sourceselfmessagetext
Inbound notification messages ignore Slack bot/system message subtypes.
When Hooman sends notifications/hooman/channel/permission_request, slackxmcp posts the request back into the originating Slack conversation/thread with Block Kit action buttons derived from params.options (defaults: allow once, always allow, deny). Tapping a button is relayed back over notifications/hooman/channel/permission. There is no text-command approval path; the Slack app must have Interactivity enabled so Bolt can receive block_actions over Socket Mode.
License
See LICENSE file.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/vaibhavpandeyvpz/slackxmcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server