Skip to main content
Glama
simple-slack-mcp-server

simple-slack-mcp-server

by bugzy-ai

simple-slack-mcp-server

A simplified MCP (Model Context Protocol) server for accessing Slack API. This server allows AI assistants to interact with essential Slack messaging and channel operations through a standardized interface.

Transport Support

This server uses stdio transport only for direct integration with MCP clients like Claude Desktop.

Related MCP server: MCP Slack Python

Features

Available tools focused on core messaging and channel operations:

  • slack_list_channels - List public channels in the workspace with pagination

  • slack_post_message - Post a new message to a Slack channel

  • slack_reply_to_thread - Reply to a specific message thread in Slack

  • slack_add_reaction - Add a reaction emoji to a message

  • slack_get_channel_history - Get recent messages from a channel

  • slack_get_thread_replies - Get all replies in a message thread

Quick Start

Installation

npm install simple-slack-mcp-server

Configuration

You need to set the following environment variable:

  • SLACK_BOT_TOKEN: Slack Bot User OAuth Token

You can create a .env file to set this environment variable:

SLACK_BOT_TOKEN=xoxb-your-bot-token

Usage

Start the MCP server

npx simple-slack-mcp-server

You can also run the installed module with node:

node node_modules/.bin/slack-mcp-server

Client Configuration

For Claude Desktop and other MCP clients:

{
  "slack": {
    "command": "npx",
    "args": [
      "simple-slack-mcp-server"
    ],
    "env": {
      "SLACK_BOT_TOKEN": "<your-bot-token>"
    }
  }
}

See examples/README.md for detailed client examples.

Required Slack Bot Permissions

Your Slack bot needs the following OAuth scopes:

  • channels:read - To list channels

  • chat:write - To post messages

  • chat:write.public - To post in public channels

  • reactions:write - To add reactions

Implementation Pattern

This server adopts the following implementation pattern:

  1. Define request/response using Zod schemas

    • Request schema: Define input parameters

    • Response schema: Define responses limited to necessary fields

  2. Implementation flow:

    • Validate request with Zod schema

    • Call Slack WebAPI

    • Parse response with Zod schema to limit to necessary fields

    • Return as JSON

For example, the slack_list_channels implementation parses the request with ListChannelsRequestSchema, calls slackClient.conversations.list, and returns the response parsed with ListChannelsResponseSchema.

Development

Available Scripts

  • npm run dev - Start the server in development mode with hot reloading

  • npm run build - Build the project for production

  • npm run start - Start the production server

  • npm run lint - Run linting checks (ESLint and Prettier)

  • npm run fix - Automatically fix linting issues

  • npm run examples - Run the example client

Contributing

  1. Fork the repository

  2. Create your feature branch

  3. Run tests and linting: npm run lint

  4. Commit your changes

  5. Push to the branch

  6. Create a Pull Request

Available Tools

6 tools
slack_add_reactionA

Add a reaction emoji to a message

Inputs: reaction (required), timestamp (required), channel_id (required).

slack_get_channel_historyA

Get messages from a channel in chronological order. Use this when: 1) You need the latest conversation flow without specific filters, 2) You want ALL messages including bot/automation messages, 3) You need to browse messages sequentially with pagination. Do NOT use if you have specific search criteria (user, keywords, dates) - use slack_search_messages instead.

Inputs: channel_id (required), limit, cursor.

slack_get_thread_repliesB

Get all replies in a message thread

Inputs: thread_ts (required), channel_id (required), limit, cursor.

slack_list_channelsA

List public channels in the workspace with pagination

Inputs: limit, cursor.

slack_post_messageA

Post a plain text message to a Slack channel or reply to a thread

Inputs: text (required), channel_id (required), thread_ts.

slack_post_rich_messageA

Post a rich structured message to Slack with Block Kit support. Can post to channels or reply to threads. Supports plain text, markdown formatting, and rich Block Kit layouts with sections, images, dividers, headers, and more.

Inputs: channel_id (required), text, parse, blocks, +3 more.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.7/5.0

    Scored across 6 tools

    Disambiguation4/5

    Most tools have clearly distinct purposes. The two post message tools (plain and rich) overlap slightly, but their descriptions differentiate them. An agent might misselect if not careful, but overall ambiguity is low.

    Naming Consistency5/5

    All tools follow a consistent 'slack_verb_noun' pattern with snake_case. The naming is predictable and uniform across all 6 tools.

    Tool Count5/5

    6 tools is an appropriate number for a Slack integration focused on core messaging and channel interaction. It covers essential actions without being too sparse or bloated.

    Completeness3/5

    Covers basic operations like listing channels, posting messages, and reading history/threads. However, a search functionality is referenced in the get_channel_history description but not provided, and missing common actions like creating channels or deleting messages.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      B
      quality
      D
      maintenance
      A Model Context Protocol server implementation that enables AI assistants to interact with Slack workspaces, allowing them to browse channels, send messages, reply to threads, add reactions, and retrieve user information.
      9
      53 npm
      2
      Apache 2.0
    • F
      license
      Not graded
      quality
      D
      maintenance
      An 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
      -
    • A
      license
      Not graded
      quality
      D
      maintenance
      A 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.
      53,813 npm
      1
      MIT