Skip to main content
Glama
p120ph37

slack-desktop-mcp

by p120ph37

slack-desktop-mcp

Runs korotovsky/slack-mcp-server against the session your Slack desktop app is already signed into. No Slack API tokens to create, store, or rotate.

Prerequisite: bunx (Bun). The MCP server binary is downloaded on first use.

Register it

SLACK_WORKSPACE_MATCH selects the workspace when you're signed into several; omit it and the last-active one wins.

Claude Code

claude mcp add slack --env SLACK_WORKSPACE_MATCH=acme -- bunx slack-desktop-mcp

Claude Desktop — edit its config, then fully quit and relaunch it (the file is read only at startup):

OS

Path

macOS

~/Library/Application Support/Claude/claude_desktop_config.json

Windows

%APPDATA%\Claude\claude_desktop_config.json

Linux

~/.config/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "slack": {
      "command": "bunx",
      "args": ["slack-desktop-mcp"],
      "env": { "SLACK_WORKSPACE_MATCH": "acme" }
    }
  }
}

Spawn/ENOENT error means the GUI-launched app didn't inherit a PATH containing bunx; use its absolute path (which bunx) as command.

slack-desktop-mcp --help lists the flags.

Related MCP server: Slack Notifier MCP Server

How it works

  1. A cached session that still passes auth.test is used as-is — Slack is never touched.

  2. Otherwise Slack is launched with --remote-debugging-pipe and CDP over the inherited fds (no TCP port) reads the d cookie and the xoxc token out of localStorage, then the launched instance is closed again. Both reads are polled: the page target exists before the client has written its session.

  3. slack-mcp-server is fetched from GitHub Releases, cached per version, and exec'd with the tokens in its environment — it becomes the MCP server on this process's stdio, which is why all logging here goes to stderr.

Slack already running elsewhere owns its single-instance lock, so step 2 fails fast rather than disturbing that window; quit Slack and retry.

It relaunches itself once under bun --use-system-ca, so step 1 trusts the machine's certificate store; a TLS-intercepting proxy fails it otherwise. If step 1 can't complete at all, the cached session is used unverified rather than treated as expired — relaunching Slack can't fix an unreachable slack.com.

Step 2 costs a Slack launch plus its sign-in, which can exceed an MCP client's connect timeout; Claude Code takes MCP_TIMEOUT (ms) if a cold start trips it.

Failures also raise a native dialog, because MCP clients don't surface a stdio server's stderr. --no-ui keeps it headless.

~/.cache/slack-desktop-mcp/ holds session.json (mode 600), the downloaded binaries, and refresh.lock. Only one process may drive Slack at a time: the holder clears the cached session on acquire and keeps the lock while its dialog is up, so the cache only ever holds a session some refresh completed. Anyone who blocks on the lock never launches Slack itself — it re-reads the cache when the lock frees, and exits nonzero on stderr alone if the holder produced nothing. A lock older than 120s is treated as abandoned.

A
license - permissive license
Not graded
quality - not tested
A
maintenance

Maintenance

Maintainers
Response time
0dRelease cycle
2Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    B
    quality
    C
    maintenance
    The most powerful MCP server for Slack Workspaces. This integration supports both Stdio and SSE transports, proxy settings and does not require any permissions or bots being created or approved by Workspace admins 😏.
    2
    1,780
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    Local stdio MCP proxy for the official Slack MCP endpoint, using Claude's Slack plugin for authentication to enable Slack integration via MCP without needing a custom Slack app.
  • A
    license
    Not graded
    quality
    B
    maintenance
    MCP server for interacting with Slack using a user token. It allows reading channels, DMs, threads, search, and posting messages as the authenticated user.
    25
    MIT

View all related MCP servers

Related MCP Connectors

  • Browser MCP for logged-in tasks. Uses your Chrome — credentials stay local. Zero-token replay.

  • Personal assistant MCP server with search, execute, packages, jobs, secrets, and integrations.

  • MCP connector for iMessage & Contacts via a local Mac agent + Vercel relay

View all MCP Connectors

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/p120ph37/slack-desktop-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server