MCP Server for Slack
# MCP Server for Slack
[](https://www.npmjs.com/package/shouting-mcp-slack)
A Model Context Protocol (MCP) server implementation for integrating AI assistants with Slack workspaces.
## Overview
This package provides an MCP server that enables AI assistants to interact with Slack workspaces. It allows AI models to:
- List and browse channels
- Send messages to channels
- Reply to threads
- Add reactions to messages
- Retrieve channel history
- Get thread replies
- List users and retrieve user profiles
## Installation
```bash
# Install from npm
npm install shouting-mcp-slack
# Or install globally
npm install -g shouting-mcp-slack
```
You can find the package on npm: [shouting-mcp-slack](https://www.npmjs.com/package/shouting-mcp-slack/access)
## Prerequisites
You need to set up a Slack Bot and obtain the necessary credentials:
1. Create a Slack App in the [Slack API Console](https://api.slack.com/apps)
2. Add the following Bot Token Scopes:
- `channels:history`
- `channels:read`
- `chat:write`
- `reactions:write`
- `users:read`
- `users:read.email`
3. Install the app to your workspace
4. Copy the Bot User OAuth Token
## Configuration
The server requires the following environment variables:
- `SLACK_BOT_TOKEN`: Your Slack Bot User OAuth Token
- `SLACK_TEAM_ID`: Your Slack Team ID
## Usage
### Running as a CLI Tool
```bash
# Set environment variables
export SLACK_BOT_TOKEN=xoxb-your-token
export SLACK_TEAM_ID=your-team-id
# Run the server
mcp-server-slack
```
### Using in Your Code
```typescript
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
import { SlackClient } from "shouting-mcp-slack";
// Initialize the server and client
const server = new Server({...});
const slackClient = new SlackClient(process.env.SLACK_BOT_TOKEN);
// Register your custom handlers
// ...
```
## Available Tools
The server provides the following Slack integration tools:
- `slack_list_channels`: List available channels
- `slack_post_message`: Send a message to a channel
- `slack_reply_to_thread`: Reply to a thread
- `slack_add_reaction`: Add a reaction to a message
- `slack_get_channel_history`: Get message history from a channel
- `slack_get_thread_replies`: Get replies in a thread
- `slack_get_users`: List users in the workspace
- `slack_get_user_profile`: Get a user's profile
## License
ISC
## Author
shouting.hsiao@gmail.com
## Repository
https://github.com/z9905080/mcp-slackTDQS
Scored across 9 tools
Each tool has a clearly distinct purpose with no ambiguity. For example, lookup_user_by_email targets user identification, slack_get_channel_history retrieves channel messages, and slack_post_message handles message creation, ensuring agents can easily differentiate between them.
The naming is mostly consistent with a 'slack_' prefix and descriptive verb_noun patterns, but there is one deviation: lookup_user_by_email lacks the 'slack_' prefix, which slightly breaks the pattern while remaining readable.
With 9 tools, the count is well-scoped for a Slack integration server. It covers core functionalities like user management, messaging, and channel operations without being excessive or insufficient for the domain.
The tool set provides comprehensive coverage for common Slack workflows, including user lookup, messaging, and channel interactions. A minor gap exists in lacking tools for updating or deleting messages, but agents can still perform most essential tasks effectively.