Slack Mcp Server

by jtalk22

336 downloads
Not rated
GitHub

About

Give Claude full access to your Slack workspace. Read DMs, channels, threads, search messages, and send replies - all with simple browser token auth. No OAuth requirements/rabbit holes.

Details

Author
jtalk22
Downloads
336
Categories
Communication, Other, Productivity, AI, Automation

Add the server to your Claude configuration and obtain tokens from Chrome DevTools. A full setup guide is available at the linked GitHub repository.

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name Slack Mcp Server
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

{
  "mcpServers": {
    "slack": {
      "command": "npx",
      "args": [
        "-y",
        "@jtalk22/slack-mcp"
      ],
      "env": {
        "SLACK_TOKEN": "<YOUR_SLACK_TOKEN>",
        "SLACK_COOKIE": "<YOUR_SLACK_COOKIE>"
      }
    }
  }
}

slack_token_status

Check token health, age, auto-refresh status, and cache stats

slack_health_check

Check if Slack tokens are valid and show authentication status

slack_refresh_tokens

Force refresh tokens by extracting from Chrome (requires Slack tab open in Chrome)

slack_list_conversations

List all DMs and channels with user names resolved. Uses cached DMs by default for speed.

slack_conversations_history

Get messages from a channel or DM with user names resolved

slack_get_full_conversation

Export FULL conversation history with all messages, threads, and user names. Can save to file.

slack_search_messages

Search messages across the Slack workspace

slack_users_info

Get detailed information about a Slack user

slack_send_message

Send a message to a channel or DM

slack_get_thread

Get all replies in a message thread

slack_list_users

List all users in the workspace

slack_add_reaction

Add an emoji reaction to a message

slack_remove_reaction

Remove an emoji reaction from a message

slack_conversations_mark

Mark a conversation as read up to a specific message timestamp

slack_conversations_unreads

Get channels and DMs with unread messages, sorted by unread count (highest first)

slack_users_search

Search workspace users by name, display name, or email. Case-insensitive partial match.

slack_workflow_save

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. Hosted brain reads these to return structured JSON per the workflow_kind.

slack_workflows

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_up

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 `since`, expands active threads, and returns structured evidence: which threads are unanswered and for how long, what the profile's priority people said or were pinned on, and which conversations moved most. Runs locally against your own session — no hosted account, no server-side model. The response carries an `output_contract` naming the keys to compose for this workflow_kind; write the summary from the returned `signals` and `conversations`, citing conversation names and timestamps.

slack_smart_search

Semantic + 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_triage

Classify 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.

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "slack mcp server": {
            "slack": {
                "command": "npx",
                "args": [
                    "-y",
                    "@jtalk22/slack-mcp"
                ],
                "env": {
                    "SLACK_TOKEN": "<YOUR_SLACK_TOKEN>",
                    "SLACK_COOKIE": "<YOUR_SLACK_COOKIE>"
                }
            }
        }
    }
}

McpServers

{
    "slack": {
        "command": "npx",
        "args": [
            "-y",
            "@jtalk22/slack-mcp"
        ],
        "env": {
            "SLACK_TOKEN": "<YOUR_SLACK_TOKEN>",
            "SLACK_COOKIE": "<YOUR_SLACK_COOKIE>"
        }
    }
}

Access Slack DMs, channels, and messages from Claude. Browser token auth - no OAuth needed.

Unreads, threads, and search — in your agent’s context, from the session you already have.

Claude CodeClaude DesktopCursorCopilotWindsurfGemini CLICodex CLIany stdio MCP client

▶ It’s Monday, 9:07—watch what blew up overnight·interactive walkthrough·setup guide

How it works·Why session auth·Grid & credentials·Install·21 tools·Workflows·Local vs hosted

It’s Monday, 9:07. Slack has already formed opinions.

You ask “what blew up overnight?” and the agent reads the workspace instead of you. It reconstructs the 2 AM P1 from#incidents—owner, resolution, and the runbook step that is still wrong. It finds the printer PIN that has been waiting in#facilitiesfor five months. Then it closes the handled loops—replies, reactions, read-state changes—only where you approve.

This is not screenshot automation. The agent calls Slack through a real MCP tool surface and receives typed results it can search, summarize, export, or act on.

The difficult part is not another chat tool. It is the operating layer underneath: browser-session extraction that names its failure stages, a credential lifecycle built for rotation, full-fidelity reads, guarded writes, and typed workflow output. The code is plain JavaScript in this repository—audit it before trusting it with a session.

--setupturns the Slack identity Chrome already holds into a local MCP server:

2. Credential lifecycle, not credential paste

Session credentials rotate. The server is built around that reality:

- auto,keychain-only, andfilestorage backends;
- owner-only token files and a Keychain-only path with no plaintext credentials on disk;
- atomic file writes, verified Keychain migration, cross-process locks, and refresh mutexes;
- proactive health checks and automatic macOS refresh;
- last-known-good in-memory credentials when persistence is temporarily unavailable;
- isolated profiles for work and personal Slack;
- fail-closed handling for invalid storage or profile configuration.

Read DMs and channels, search the workspace, export complete histories with threads, inspect unread state, and resolve users. Opt into blocks, attachments, files, reactions, metadata, and bot/app markers when text alone is not the real message.

Send a reply, add or remove a reaction, and mark a conversation read. Every workspace write path carries an MCP destructive annotation so compatible clients can put approval where it belongs.

Save workflow profiles for incident rooms, executive briefs, support inboxes, launch watches, and custom operations. The OSS primitives are local JSON; the optional hosted brain renders them into contract-shaped briefs.

Slack already knows who you are. The official path is a Slack-managed remote integration governed by workspace policy—a strong fit for organization-sanctioned deployments, documented bySlackwith integration settings underadmin control. This project is the direct local path: session-based auth from the browser session already in Chrome, local stdio, any stdio MCP client, and no Slack app or admin request. Same Slack identity. Same underlying permissions. A radically shorter path from your workspace to your agent.

Treat browser-session automation as an acceptable-use decision for you and your workspace. The server acts as your signed-in Slack identity and cannot read a channel you cannot read or act as another user. It does not evade server-side retention, DLP, compliance exports, or audit controls.

"No admin request" means there is no Slack app installation to approve. It does not mean workspace activity disappears from Slack's systems. If your policy requires a sanctioned OAuth integration, use the official MCP or the optionalhosted OAuth path.

Enterprise Grid.Grid runs aggressive session-anomaly detection. Browser-session automation can trip it, which flags the session and kills it, regardless of which tool drives the traffic. Outbound calls are paced by default to stay under burst thresholds (SLACK_MCP_MIN_REQUEST_INTERVAL_MS, default 350;SLACK_MCP_MAX_CONCURRENCY, default 3). Pacing lowers that risk; it does not remove it. On Grid, use thehosted OAuth tieror Slack's official MCP instead.

This is the same access pattern credential stealers use.Chrome App-Bound Encryption exists to make this class of read harder, and infostealer families (Lumma, Vidar, Meduza) bypass it to lift live sessions. The mechanism here is comparable. What differs is that you run it, on your own machine, against your own session, and nothing leaves the host. The source is plain JavaScript in this repository; audit it before handing it a live session.

User cache.One cache exists: user-name lookups, populated on demand, 500 entries maximum, one-hour TTL. No message content, no channel history, and no persistent copy of the workspace is stored.

Node 22 or 24 recommended. Node 20 remains supported for the v4 line.

Prefer a persistent CLI:npm install -g @jtalk22/slack-mcpthenslack-mcp --setup.
- Pick your client in the
setup guide.
- Register the generated stdio command.
- Fully restart the client.
- Ask the agent to runslack_health_check.
- A workspace name in the response means the connection is live.

{ "command": "npx", "args": ["-y", "@jtalk22/slack-mcp"] }

The local surface ships21 toolstoday:12 read-onlySlack operations,4 write-pathtools that each carry an MCP destructive annotation so clients can gate workspace writes, 3 local workflow tools including the catch-up itself, and 2 hosted-intelligence stubs that return a structured upgrade payload without making a Slack call. Four read tools acceptinclude_rich_message_fields: trueto surface attachments, blocks, files, reactions, and metadata—complete inputs and response contracts live in[docs/API.md.

Advertising fewer tools.A client pays for the tool schema on every turn that carries it.SLACK_MCP_TOOLS=essentialsadvertises six tools — unread, history, search, thread, user lookup, send — costing roughly985 estimated tokensof schema per turn against about3,600for all 21.SLACK_MCP_TOOLS=readadvertises the 12 read-only Slack operations listed below, near 1,690.--tools=slack_x,slack_ytakes an explicit set. The default stays all 21. Filtering changes what is advertised, not what is callable. Reproduce the numbers withnode scripts/measure-tool-schema.js(a ~4-chars-per-token estimate).

Act in the workspace — 4 write-path tools

Discover hosted intelligence — 2 explicit stubs

These two need infrastructure this package does not ship — an index and a model — so the OSS handlers return a structured upgrade payload instead of making a Slack call.slack_catch_me_upneeds neither and runs locally.slack_refresh_tokensonly writes local credential state.

Bind a workflow kind to channels, priority people, retention, and cadence.slack_catch_me_upthen reads that scope locally and hands your agent the evidence: which threads went unanswered and for how long, what your priority people said or were pinned on, which conversations actually moved. It does the gathering; your agent writes the summary against the contract below.

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.