slack-desktop-mcp
Runs slack-mcp-server against your Slack desktop app session, eliminating the need for API tokens.
README
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.
How it works
- A cached session that still passes
auth.testis used as-is — Slack is never touched. - Otherwise Slack is launched with
--remote-debugging-pipeand CDP over the inherited fds (no TCP port) reads thedcookie and the xoxc token out oflocalStorage, then the launched instance is closed again. Both reads are polled: the page target exists before the client has written its session. slack-mcp-serveris 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.
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.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.