Slack MCP Server
Allows searching Slack channels and messages, listing available workspace channels, and retrieving detailed message history from specific channels.
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 MCP Server find messages about the API update in #development"
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 MCP Server
A Model Context Protocol (MCP) server for searching Slack channels and messages.
Features
list_channels - List available Slack channels in the workspace
search_messages - Search for messages across channels using text matching
get_channel_history - Get message history from a specific channel
Related MCP server: Slack MCP Server
Installation
Using npx (Recommended)
No installation required. Add directly to your config:
Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
{
"mcpServers": {
"slack": {
"command": "npx",
"args": ["-y", "github:nikhilchintawar/slack-mcp"],
"env": {
"SLACK_BOT_TOKEN": "xoxb-your-token-here"
}
}
}
}Claude Code (~/.claude/settings.json):
{
"mcpServers": {
"slack": {
"command": "npx",
"args": ["-y", "github:nikhilchintawar/slack-mcp"],
"env": {
"SLACK_BOT_TOKEN": "xoxb-your-token-here"
}
}
}
}Manual Installation
# Clone the repository
git clone https://github.com/nikhilchintawar/slack-mcp.git
cd slack-mcp
# Install dependencies
npm install
# Build
npm run buildThen add to your config:
{
"mcpServers": {
"slack": {
"command": "node",
"args": ["/absolute/path/to/slack-mcp/build/index.js"],
"env": {
"SLACK_BOT_TOKEN": "xoxb-your-token-here"
}
}
}
}Configuration
Config File Locations
Claude Desktop (macOS):
~/Library/Application Support/Claude/claude_desktop_config.jsonClaude Desktop (Windows):
%APPDATA%\Claude\claude_desktop_config.jsonClaude Code:
~/.claude/settings.json
Environment Variables
Variable | Required | Description |
| Yes | Slack Bot User OAuth Token |
| No | Comma-separated list of allowed channels (restricts searches) |
| No | Default channel ID for operations |
Channel Restrictions
Use SLACK_CHANNELS to restrict which channels can be searched. When configured:
Searches without a channel specified will search all allowed channels
Searches with a specific channel will validate it's in the allowed list
get_channel_historywill only work with allowed channels
{
"env": {
"SLACK_BOT_TOKEN": "xoxb-your-token",
"SLACK_CHANNELS": "general,engineering,support"
}
}Slack App Setup
Create a Slack App at https://api.slack.com/apps
Go to "OAuth & Permissions"
Add the following Bot Token Scopes:
channels:read- List public channelschannels:history- Read messages from public channelsgroups:read- List private channels (optional)groups:history- Read messages from private channels (optional)
Install the app to your workspace
Copy the "Bot User OAuth Token" (starts with
xoxb-)Important: Add the bot to each channel you want to search (right-click channel → "Open channel details" → "Integrations" → "Add apps")
Usage Examples
Once configured, you can use natural language to interact with Slack:
"List all channels in my Slack workspace"
"Search for messages about deployment in #engineering"
"Show me the last 50 messages from #general"
"Find messages from @john about the API"
"Search for error messages from last week"
Available Tools
list_channels
List available Slack channels in the workspace.
Parameter | Required | Description |
| No | Include private channels (default: false) |
| No | Include archived channels (default: false) |
| No | Max results (default: 100, max: 1000) |
search_messages
Search for messages across Slack channels using text matching. Fetches channel history and filters by query.
Parameter | Required | Description |
| Yes | Search text (case-insensitive). Use |
| No | Channel ID or name. If not set, searches all |
| No | Search messages after date (YYYY-MM-DD or ISO 8601) |
| No | Search messages before date (YYYY-MM-DD or ISO 8601) |
| No | Max results (default: 20, max: 100) |
Query examples:
error- messages containing "error"error warning- messages containing both "error" AND "warning"error | warning- messages containing "error" OR "warning"
get_channel_history
Get message history from a specific Slack channel.
Parameter | Required | Description |
| No | Channel ID (uses env var default) |
| No | Start time (Unix timestamp or ISO date) |
| No | End time (Unix timestamp or ISO date) |
| No | Max results (default: 100, max: 1000) |
| No | Include thread replies (default: false) |
Development
# Watch mode for development
npm run dev
# Build for production
npm run build
# Test with MCP Inspector
SLACK_BOT_TOKEN=xoxb-your-token \
npx @modelcontextprotocol/inspector node build/index.jsLicense
MIT
Available Tools
3 toolsget_channel_historyC
Get message history from a specific Slack channel
Inputs: channel, oldest, latest, limit, +1 more.
list_channelsB
List available Slack channels in the workspace
Inputs: includePrivate, includeArchived, limit.
search_messagesC
Search for messages across Slack channels using query syntax
Inputs: query (required), channel, after, before, +1 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 3 tools
Each tool has a clearly distinct purpose: get_channel_history retrieves messages from a specific channel, list_channels enumerates available channels, and search_messages performs cross-channel searches. There is no overlap in functionality, making tool selection straightforward for an agent.
All tools follow a consistent verb_noun naming pattern (get_channel_history, list_channels, search_messages), using snake_case uniformly. The verbs (get, list, search) are appropriate and predictable, enhancing readability and usability.
With only 3 tools, the server feels thin for a Slack integration, as it lacks essential operations like sending messages, managing users, or handling reactions. While the tools are well-defined, the count is borderline low for the domain's typical scope.
The toolset is significantly incomplete for a Slack server, missing core CRUD operations such as sending messages, creating channels, updating messages, or deleting content. This creates dead ends for agents trying to perform common Slack workflows, likely leading to failures.
Related MCP Connectors
The Remote MCP server acts as a standardized bridge between LLM applications (like Claude, ChatGPT, and Cursor) and external services, enabling AI agents to access external tools and resources. Its primary capability is providing a centralized search tool to discover other MCP servers and their respective tools. Unlike local implementations, it runs remotely with OAuth authentication and permission controls for security.
Hosted Slack MCP server for Claude, ChatGPT and Cursor, with each action switched per account.
One MCP server for all your work accounts: Slack, Teams, Google Chat, Jira, ClickUp, digest, tasks.
Read-only search over 2,065+ AI agent tools and 276 MCP servers. Free, no sign-up needed.
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 gradedqualityDmaintenanceAn MCP server that enables AI agents to search and retrieve messages within a Slack workspace using the Slack Web API. It supports specific channel filtering and includes built-in rate limit handling for efficient message discovery.133 npmMIT
- FlicenseNot gradedqualityDmaintenanceAn MCP server that enables interaction with Slack workspaces through tools for managing channels, sending messages, and retrieving user profiles. It leverages the Slack API and FastMCP to provide functionalities like message history lookup and reaction management.1-
- AlicenseNot gradedqualityDmaintenanceThis MCP server provides integration with the Slack API via HTTP transport, allowing for channel management and message operations. It enables users to list channels, send or edit messages, search message history, and retrieve user information through standardized tools.133 npmMIT