Slack MCP
README.md
# Slack MCP server
MCP server for Slack workspace integration. Handles channel creation, user invites, message posting, and thread management.
## Setup
### 1. Create a Slack app
1. Go to [api.slack.com/apps](https://api.slack.com/apps)
2. Click "Create New App" → "From scratch"
3. Name it (e.g., "Claude MCP") and select your workspace
### 2. Add OAuth scopes
Under "OAuth & Permissions", add these Bot Token Scopes:
```
channels:manage # create public channels
groups:write # create private channels
channels:read # list channels
groups:read # read private channels
chat:write # post messages
pins:write # pin messages
users:read # list users
users:read.email # lookup users by email
```
### 3. Install to workspace
Click "Install to Workspace" and authorize the app.
### 4. Get bot token
Copy the "Bot User OAuth Token" (starts with `xoxb-`).
### 5. Configure environment
```bash
export SLACK_BOT_TOKEN="xoxb-your-token-here"
```
Or add to your Claude config:
```json
{
"mcpServers": {
"slack": {
"command": "node",
"args": ["/path/to/slack-mcp/dist/index.js"],
"env": {
"SLACK_BOT_TOKEN": "xoxb-your-token-here"
}
}
}
}
```
### 6. Build and run
```bash
npm install
npm run build
npm start
```
## Tools
### slack_create_channel
Create a new Slack channel.
```json
{
"name": "gtm-jeff",
"is_private": true,
"description": "GTM materials for Jeff launch"
}
```
### slack_invite_to_channel
Invite users by email or user ID.
```json
{
"channel_id": "C123ABC",
"users": ["harper@2389.ai", "dylan@2389.ai"]
}
```
### slack_post_message
Post a message to a channel.
```json
{
"channel_id": "C123ABC",
"text": "## Email
**Subject:** meet jeff..."
}
```
### slack_post_thread
Reply to a message in a thread.
```json
{
"channel_id": "C123ABC",
"thread_ts": "1234567890.123456",
"text": "Updated the subject line"
}
```
### slack_pin_message
Pin a message to a channel.
```json
{
"channel_id": "C123ABC",
"message_ts": "1234567890.123456"
}
```
### slack_list_users
List all users in the workspace.
```json
{}
```
## Usage with product launcher
After generating GTM materials, say "push to slack":
1. Creates `#gtm-[product]` private channel
2. Invites Harper and Dylan
3. Posts each output (email, blog, tweets) as separate messages
4. Pins the summary message
## License
MIT
## Installation
```bash
/plugin marketplace add 2389-research/claude-plugins
/plugin install slack-mcp@2389-research
```
---
If Slack MCP saved you from context-switching out of your terminal, a ⭐ helps us know it's landing.
Built by [2389](https://2389.ai) · Part of the [Claude Code plugin marketplace](https://github.com/2389-research/claude-plugins)
TDQS
A3.5/5.0
Scored across 6 tools
Disambiguation5/5
Each tool targets a distinct action: creating channels, inviting users, listing users, pinning messages, posting messages, and replying in threads. No overlap in purpose.
Naming Consistency5/5
All tools follow a consistent 'slack_verb_noun' pattern in snake_case, making them predictable and easy to differentiate.
Tool Count5/5
With 6 tools, the set is concise and covers essential Slack operations without being overly large or sparse.
Completeness2/5
Missing critical operations like reading messages, listing channels, editing/deleting messages, and direct messaging, which limits the server's utility for typical Slack workflows.
Maintenance
ActivityInactive
ResponsivenessNo issues