This is a Slack MCP server implementation that provides various Slack API functionalities through the Model Context Protocol. It allows AI models to interact with Slack through a standardized interface.
- List public channels
- Post messages
- Reply to threads
- Add reactions
- Get channel history
- Get thread replies
- List users
- Get user profiles
- Node.js (v16 or higher)
- npm or yarn
- A Slack workspace with admin access
- A Slack Bot Token
- Your Slack Team ID
- Clone this repository
- Install dependencies:
npm install
# or
yarn install- Build the TypeScript code:
npm run build
# or
yarn build- Open
index.tsand replace the placeholder values:
public static readonly BOT_TOKEN = "enter-your-bot-token-here";
public static readonly TEAM_ID = "enter-your-team-id-here";Replace these with your actual Slack Bot Token and Team ID.
After building the project, you can run the server:
node dist/index.jsTo use this MCP server in Cursor:
- Open Cursor settings
- Navigate to the "Model Context Protocol" section
- Add a new tool with the following configuration:
- Name:
slack - Command:
node /path/to/your/dist/index.js - Working Directory:
/path/to/your/project
- Name:
Replace /path/to/your with the actual path to your project directory.
-
slack_list_channels- Lists public channels in the workspace
- Optional parameters: limit, cursor
-
slack_post_message- Posts a message to a channel
- Required parameters: channel_id, text
-
slack_reply_to_thread- Replies to a message thread
- Required parameters: channel_id, thread_ts, text
-
slack_add_reaction- Adds an emoji reaction to a message
- Required parameters: channel_id, timestamp, reaction
-
slack_get_channel_history- Gets recent messages from a channel
- Required parameters: channel_id
- Optional parameters: limit
-
slack_get_thread_replies- Gets all replies in a thread
- Required parameters: channel_id, thread_ts
-
slack_get_users- Lists all users in the workspace
- Optional parameters: limit, cursor
-
slack_get_user_profile- Gets detailed profile information for a user
- Required parameters: user_id
To modify the server:
- Make changes to
index.ts - Rebuild the project:
npm run build
# or
yarn build- Never commit your actual Slack Bot Token or Team ID to version control
- Consider using environment variables for production deployments
- Ensure your Slack Bot has the necessary OAuth scopes for the actions you want to perform
Feel free to submit issues and pull requests for improvements.
MIT