Slack MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SLACK_TOKEN | No | Slack xoxc token from your browser session. Required on Windows/Linux if not using auto-extraction (macOS). | |
| SLACK_COOKIE | No | Slack xoxd cookie from your browser session. Required on Windows/Linux if not using auto-extraction (macOS). |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
| prompts | {} |
| resources | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| slack_token_statusA | Check token health, age, auto-refresh status, and cache stats |
| slack_health_checkA | Check if Slack tokens are valid and show authentication status |
| slack_refresh_tokensA | Force refresh tokens by extracting from Chrome (macOS; requires having signed into Slack in Chrome) |
| slack_list_conversationsA | List all DMs and channels with user names resolved. Uses cached DMs by default for speed. |
| slack_conversations_historyC | Get messages from a channel or DM with user names resolved |
| slack_get_full_conversationB | Export FULL conversation history with all messages, threads, and user names. Can save to file. |
| slack_search_messagesC | Search messages across the Slack workspace |
| slack_users_infoB | Get detailed information about a Slack user |
| slack_send_messageC | Send a message to a channel or DM |
| slack_get_threadC | Get all replies in a message thread |
| slack_list_usersB | List all users in the workspace |
| slack_add_reactionA | Add an emoji reaction to a message |
| slack_remove_reactionB | Remove an emoji reaction from a message |
| slack_conversations_markA | Mark a conversation as read up to a specific message timestamp |
| slack_conversations_unreadsA | Get channels and DMs with unread messages, sorted by unread count (highest first) |
| slack_users_searchA | Search workspace users by name, display name, or email. Case-insensitive partial match. |
| slack_workflow_saveA | Save or update a workflow profile that binds a workflow_kind (support_inbox | incident_room | exec_brief | product_launch_watch | custom) to channels, priority people, retention mode, and summary cadence. Stored locally at ~/.slack-mcp-workflows.json. slack_catch_me_up reads the profile by name and returns evidence shaped by its workflow_kind. |
| slack_workflowsA | List all saved workflow profiles from ~/.slack-mcp-workflows.json. Optionally filter by workflow_kind. Returns profile_name, channels, priority_people, retention_mode, summary_cadence, structured_keys, created_at, updated_at. |
| slack_catch_me_upA | Catch up on a saved workflow profile. Reads the profile's channels (or everything currently unread if the profile names none), pulls messages since the cadence window or an explicit |
| slack_session_reportA | What this server process has actually done, as counts: how many messages it read, how many of those were written by authors outside this workspace broken down by origin, how many sends were attempted, and how many were held. A provenance label is a claim about one message; this is the claim about the whole session, and it is the only way to check after the fact whether outside-authored text reached the model and whether anything tried to send on the back of it. Counts only — no message text, no channel name, no user id is recorded. The receipt and the strict hold belong to this server process, so over HTTP every client of the process shares them. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| search-recent | Search workspace for messages from the past week |
| summarize-channel | Get recent activity from a channel for summarization |
| find-messages-from | Find all messages from a specific user |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| Workspace Info | Current workspace name, team, and authenticated user |
| Conversations | List of available channels and DMs |
TDQS
Scored across 20 tools
Most tools target clearly distinct Slack resources and actions, but slack_health_check, slack_token_status, and slack_refresh_tokens form an overlapping token-management cluster, and slack_conversations_history vs slack_get_full_conversation can be confused. Descriptions largely disambiguate, so an agent can usually choose correctly.
All tools use the slack_ prefix and snake_case, which is highly predictable, but internal ordering alternates between verb_noun (list_conversations, send_message) and noun_verb (users_info, conversations_history). This mirrors Slack's API inconsistently but remains readable.
20 tools is in the heavy range for an MCP server, and some peripheral clusters (token management, workflow profiles, session reporting) could potentially be consolidated. However, Slack is a broad domain, so most tools earn their place.
Core Slack workflows are covered: reading, sending, searching, threads, reactions, user lookup, and conversation management. Gaps exist for editing/deleting messages, file uploads, and channel administration, but agents can work around these for the server's monitoring and catch-up focus.