Skip to main content
Glama
z9905080

MCP Server for Slack

by z9905080
README.md
# MCP Server for Slack

[![npm version](https://img.shields.io/npm/v/shouting-mcp-slack.svg)](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-slack

TDQS

B3.4/5.0

Scored across 9 tools

Disambiguation5/5

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.

Naming Consistency4/5

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.

Tool Count5/5

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.

Completeness4/5

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.

Maintenance

ActivityInactive
ResponsivenessNo issues