slack-fast-mcp
Provides tools to read, search, and interact with Slack workspaces, including sending messages, managing reactions, listing channels and users, and downloading attachments.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@slack-fast-mcpshow me recent messages in #general"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
slack-fast-mcp
A Slack MCP server built with FastMCP that gives AI assistants tools to read, search, and interact with Slack workspaces. Python 3.13+, fully async.
Features
Read tools (always available):
conversations_history— Get messages from a channel or DMconversations_replies— Get a thread of messagesconversations_search_messages— Search messages with filters (requires user token)channels_list— List channelsusers_search— Search users by name, email, or display nameattachment_get_data— Download file attachments (up to 5MB)
Write tools (disabled by default, opt-in via env vars):
conversations_add_message— Post a message to a channel or DMreactions_add/reactions_remove— Add or remove emoji reactions
Resources:
slack://{workspace}/users— User directoryslack://{workspace}/channels— Channel directory
Related MCP server: Slack MCP Server
Authentication
Three authentication methods are supported, in priority order:
1. User token (recommended)
Requires a Slack app with user token scopes. Supports all features including message search.
export SLACK_MCP_XOXP_TOKEN=xoxp-...2. Bot token
Requires a Slack app with bot token scopes. Cannot search messages.
export SLACK_MCP_XOXB_TOKEN=xoxb-...3. Browser cookie auth (no app install required)
Uses your existing Slack browser session. No Slack app installation or workspace admin approval needed — useful when your workspace restricts app installs.
export SLACK_MCP_XOXC_TOKEN=xoxc-...
export SLACK_MCP_XOXD_TOKEN=xoxd-...Both values must be set together. To extract them:
Open your Slack workspace in a browser and log in
Open DevTools (F12)
xoxc token — paste this in the browser console:
JSON.parse(localStorage.localConfig_v2).teams[document.location.pathname.match(/^\/client\/([A-Z0-9]+)/)[1]].tokenxoxd token — go to Application > Cookies >
https://app.slack.com, copy the value of the cookie namedd
Caveats:
Tokens are tied to your browser session and will expire when you log out or Slack rotates sessions. You'll need to re-extract them periodically.
All API calls appear as your user account, not a bot.
This uses standard Slack API endpoints with session cookies — it does not use undocumented internal APIs.
Installation
uv sync --all-extrasUsage
export SLACK_MCP_XOXP_TOKEN=xoxp-... # or xoxb/xoxc+xoxd (see above)
uv run python -m slack_fast_mcpClaude Desktop / Claude Code
Add to your MCP config:
{
"mcpServers": {
"slack": {
"command": "uv",
"args": ["run", "--project", "/path/to/slack-fast-mcp", "python", "-m", "slack_fast_mcp"],
"env": {
"SLACK_MCP_XOXP_TOKEN": "xoxp-..."
}
}
}
}Configuration
All configuration is via environment variables.
Token (required — one of)
Variable | Description |
| User OAuth token (priority 1) |
| Bot OAuth token (priority 2) |
| Browser session token (priority 3, requires |
| Browser |
Write tool gating (optional)
Write tools are disabled by default. Enable them with these env vars. Each accepts:
"true"or"1"— enable for all channelsComma-separated channel IDs — allowlist (e.g.
C001,C002)!-prefixed channel IDs — blocklist (e.g.!C003,!C004)
Variable | Controls |
|
|
|
|
|
|
Other options
Variable | Default | Description |
|
| Log level ( |
|
| Cache TTL in seconds, or duration string ( |
|
| Mark channel as read when sending a message |
|
| Control link unfurling in sent messages |
| auto | Path to persistent users cache file |
| auto | Path to persistent channels cache file |
Development
make build # Install dependencies
make test # Run unit tests
make format # Format code (ruff)
make lint # Lint code (ruff)This server cannot be deployed
Maintenance
Related MCP Connectors
MCP server connecting AI agents to 100+ apps (Gmail, Slack, Notion, GitHub) via one-click OAuth.
Driflyte MCP server which lets AI assistants query topic-specific knowledge from web and GitHub.
An MCP server that integrates with Discord to provide AI-powered features.
MCP server that lets AI assistants use all OneSchema features exposed via the public API.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceAn MCP server that enables LLMs to access Slack's search functionality to retrieve users, channels, messages, and thread replies from a Slack workspace.4-
- AlicenseNot gradedqualityDmaintenanceA read-only MCP server that enables AI assistants to access Slack workspace data, including channels, messages, threads, and user information.17,928 npm3MIT
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol (MCP) server for Slack workspace integration. This server allows AI assistants to interact directly with your Slack workspace, providing tools to manage channels, send messages, list users, and upload files.17,928 npm1MIT
- AlicenseAqualityBmaintenanceAn MCP server that enables AI agents to read and write Slack messages as the user, not as a bot, using Slack user tokens for authentic actions across multiple workspaces.101MIT