Skip to main content
Glama

Slack MCP Server

by ubie-oss

slack-mcp-server

A MCP(Model Context Protocol) server for accessing Slack API. This server allows AI assistants to interact with the Slack API through a standardized interface.

Features

Available tools:

  • 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

  • slack_get_users - Retrieve basic profile information of all users in the workspace

  • slack_get_user_profile - Get a user's profile information

  • slack_search_messages - Search for messages in the workspace

Related MCP server: MCP Toolkit

Quick Start

Installation

npm install @ubie-oss/slack-mcp-server

NOTE: Its now hosted in GitHub Registry so you need your PAT.

Configuration

You need to set the following environment variables:

  • SLACK_BOT_TOKEN: Slack Bot User OAuth Token

  • SLACK_USER_TOKEN: Slack User OAuth Token (required for some features like message search)

You can also create a .env file to set these environment variables:

SLACK_BOT_TOKEN=xoxb-your-bot-token SLACK_USER_TOKEN=xoxp-your-user-token

Usage

Start the MCP server

Directly:

npx @ubie-oss/slack-mcp-server

Or, run the installed module with node:

node node_modules/.bin/slack-mcp-server

Edit MCP configuration json for your client:

{ "slack": { "command": "npx", "args": [ "-y", "@ubie-oss/slack-mcp-server" ], "env": { "NPM_CONFIG_//npm.pkg.github.com/:_authToken": "<your-github-pat>", "SLACK_BOT_TOKEN": "<your-bot-token>", "SLACK_USER_TOKEN": "<your-user-token>" } } }

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

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

Deploy Server
A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ubie-oss/slack-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server