slack_add_reaction
Add an emoji reaction to a message
Catch up on Slack from your agent — unreads, threads and search, through the browser session you already have.
LABSCO SUMMARY
It acts as your own signed-in identity and cannot read a channel you cannot read, which is exactly why setup is one command instead of a request to IT. The cost is the session model itself: credentials rotate, and Enterprise Grid runs session-anomaly detection that can flag and kill a session — outbound calls are paced to stay under burst thresholds, and Grid users are pointed at OAuth instead.
A local server that reuses the Slack session already in Chrome rather than asking an admin to install a Slack app. It reads DMs, channels, threads and search results with user names resolved, and can reply, react and mark conversations read as you.
Node 22 or 24 is recommended and Node 20 still works. On macOS, npx -y @jtalk22/slack-mcp --setup lifts the session out of Chrome — the token from its LevelDB, the cookie from its SQLite store, decrypted locally against the Keychain — and transmits nothing. On other platforms you supply SLACK_TOKEN and SLACK_COOKIE from that session yourself. Those credentials rotate, commonly after a week or two; slack_refresh_tokens or a second --setup recovers them. SLACK_MCP_PROFILE keeps work and personal workspaces separate, and SLACK_MCP_TOOLS=essentials advertises six tools rather than the full set when schema size per turn matters. slack_catch_me_up, slack_triage and slack_smart_search run on the hosted OAuth tier at mcp.revasserlabs.com, whose free plan covers 25 AI tool calls a month.
One command — npx -y @jtalk22/slack-mcp --setup
USE CASES
Pull the conversations carrying unread messages, ranked by count, then read the threads that matter with names already resolved.
Reply in the thread, add the reaction, and mark the conversation read — each write is annotated so the client can gate it.
Search the workspace, then export the full conversation with its threads to a file you can keep.
Save a workflow profile for the incident room, then run the catch-up against it for a timeline, open risks and owner gaps.
Verify credentials and workspace identity, and refresh them from the browser session when Slack starts rejecting them.
Search users by name, display name or email, then read the profile behind the match.
Counted once with only startup setup. Other versions, modes or optional credentials may expose a different list.
slack_add_reactionAdd an emoji reaction to a message
slack_catch_me_upRun a structured catch-up against a saved workflow profile. Returns structured JSON per the profile's workflow_kind: support_inbox returns {open_threads, ack_lag, owner_gaps, escalations, next_actions}; incident_room returns {incident_summary, timeline, open_risks, owner_gaps, next_actions}; exec_brief returns {summary, decisions, risks, asks, action_items}; product_launch_watch returns {launch_signals, feedback_themes, blockers, metrics, next_actions}; custom returns {summary, highlights, open_questions, next_actions}. Hosted-only. Free tier ships 25 AI tool calls/month (shared across the hosted AI tools); Pro $19/mo unlocks unlimited.
slack_conversations_historyGet messages from a channel or DM with user names resolved
slack_conversations_markMark a conversation as read up to a specific message timestamp
slack_conversations_unreadsGet channels and DMs with unread messages, sorted by unread count (highest first)
slack_get_full_conversationExport FULL conversation history with all messages, threads, and user names. Can save to file.
slack_get_threadGet all replies in a message thread
slack_health_checkCheck if Slack tokens are valid and show authentication status
slack_list_conversationsList all DMs and channels with user names resolved. Uses cached DMs by default for speed.
slack_list_usersList all users in the workspace
slack_refresh_tokensForce refresh tokens by extracting from Chrome (requires Slack tab open in Chrome)
slack_remove_reactionRemove an emoji reaction from a message
slack_search_messagesSearch messages across the Slack workspace
slack_send_messageSend a message to a channel or DM
slack_smart_searchSemantic + lexical hybrid search across your indexed Slack history. Returns ranked results with relevance scores, channel context, thread context, and matched terms. Hosted-only (requires Vectorize + Workers AI). Free tier ships 25 AI tool calls/month (shared across the hosted AI tools); upgrade to Pro $19/mo for unlimited at mcp.revasserlabs.com/pricing.
slack_token_statusCheck token health, age, auto-refresh status, and cache stats
slack_triageClassify and route Slack threads against a workflow profile. Returns triage decisions per thread: priority (low|medium|high|urgent), suggested owner, escalation flag, time-sensitivity, and a routing recommendation. Hosted-only. Free tier ships 25 AI tool calls/month (shared across the hosted AI tools); Pro $19/mo unlocks unlimited.
slack_users_infoGet detailed information about a Slack user
slack_users_searchSearch workspace users by name, display name, or email. Case-insensitive partial match.
slack_workflow_saveSave 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. Hosted brain reads these to return structured JSON per the workflow_kind.
slack_workflowsList 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.
BEFORE YOU INSTALL
21 tools when we connected. slack_smart_search, slack_catch_me_up and slack_triage are hosted-only and return a tool_requires_hosted stub in the open-source build. SLACK_MCP_TOOLS=essentials advertises six and =read the twelve read-only tools.
CONTEXT COST
Rated by the size of the 21 tool definitions that ride along on every turn, not by how many there are
INSTALLATION
npx -y @jtalk22/slack-mcp --setup{
"mcpServers": {
"slack-mcp-server": {
"command": "npx",
"args": [
"-y",
"@jtalk22/slack-mcp"
]
}
}
}The configuration on this page does not set SLACK_TOKEN, SLACK_COOKIE.
claude mcp add slack -- npx -y @jtalk22/slack-mcp{
"mcpServers": {
"slack": {
"command": "npx",
"args": [
"-y",
"@jtalk22/slack-mcp"
]
}
}
}The configuration on this page does not set SLACK_TOKEN, SLACK_COOKIE.
{
"servers": {
"slack": {
"command": "npx",
"args": [
"-y",
"@jtalk22/slack-mcp"
]
}
}
}The configuration on this page does not set SLACK_TOKEN, SLACK_COOKIE.
codex mcp add slack -- npx -y @jtalk22/slack-mcp{
"mcpServers": {
"slack-work": {
"command": "npx",
"args": [
"-y",
"@jtalk22/slack-mcp"
],
"env": {
"SLACK_MCP_PROFILE": "work"
}
},
"slack-personal": {
"command": "npx",
"args": [
"-y",
"@jtalk22/slack-mcp"
],
"env": {
"SLACK_MCP_PROFILE": "personal"
}
}
}
}The configuration on this page does not set SLACK_TOKEN, SLACK_COOKIE.
npm install -g @jtalk22/slack-mcp
slack-mcp --setup