Slack
About
Provides a bridge to the Slack API, enabling message posting and user list retrieval for workspace interactions through a TypeScript implementation.
Details
- Author
- avimbu
- Repository
- AVIMBU/slack-mcp-server
- GitHub stars
- 10
- Categories
- Communication, Other, Automation, Design, Workplace, Developer Tools, AI, API, Infrastructure
- Tags
- #integration
Jump to
Setting up with Highlight
This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:
- Download and install Highlight from highlightai.com/download
- Navigate to the plugins tab and select "Add Custom Plugin"
-
Configure the plugin with the settings below
Plugin Name
SlackCommand (node, npx, python, etc.)nodeArguments-
Argument 1
/path/to/project/dist/index.js
Environment-
SLACK_TEAM_ID
test-team-id -
SLACK_BOT_USER_OAUTH_TOKEN
test-bot-token
Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.
-
Argument 1
- Enable "Start Automatically" if you want the plugin to start when Highlight launches
Claude Desktop / Cursor
Paste into your MCP client config file to install this server.
{
"mcpServers": {
"slack": {
"env": {
"SLACK_TEAM_ID": "test-team-id",
"SLACK_BOT_USER_OAUTH_TOKEN": "test-bot-token"
},
"args": [
"/path/to/project/dist/index.js"
],
"command": "node"
}
}
}
Linux
{
"env": {
"SLACK_TEAM_ID": "test-team-id",
"SLACK_BOT_USER_OAUTH_TOKEN": "test-bot-token"
},
"args": [
"/path/to/project/dist/index.js"
],
"command": "node"
}
Macos
{
"env": {
"SLACK_TEAM_ID": "test-team-id",
"SLACK_BOT_USER_OAUTH_TOKEN": "test-bot-token"
},
"args": [
"/path/to/project/dist/index.js"
],
"command": "node"
}
Windows
{
"env": {
"SLACK_TEAM_ID": "test-team-id",
"SLACK_BOT_USER_OAUTH_TOKEN": "test-bot-token"
},
"args": [
"/path/to/project/dist/index.js"
],
"command": "node"
}
Slack Model Context Protocol Server
This is a connector to allow Claude Desktop (or any MCP client) to interact with your Slack workspace to post messages and query a list of all users.
Local Development
In order to run this client locally, add the following configuration to your Claude Desktop MCP Server config file:
{
"mcpServers": {
"mcp-slack-local": {
"command": "node",
"args": ["/path/to/project/dist/index.js"], <---- replace this with your project path
"env": {
"SLACK_BOT_USER_OAUTH_TOKEN": "test-bot-token",
"SLACK_TEAM_ID": "test-team-id"
}
},
}
}
After this, you should be able to test this implementation in your Claude Desktop App using example prompts like:
- "Can you list all users of my Slack team?"
- "Can you send a welcome message to my Slack Channel with the ID <channel id>?"
Running the server locally:
node dist/index.js
With the build in another terminal
npm run watch
Slack Permission Scopes
The following permissions are already implemented:
| Permission | Description | Implemented |
|------------|-------------|-------------|
| app_configurations:read | Read app configuration info via App Manifest APIs | ❌ |
| app_configurations:write | Write app configuration info and create apps via App Manifest APIs | ❌ |
| app_mentions:read | View messages that directly mention @your_slack_app in conversations that the app is in | ❌ |
| assistant:write | Allow your slack app to act as an AI Assistant | ❌ |
| bookmarks:read | List bookmarks | ❌ |
| bookmarks:write | Create, edit, and remove bookmarks | ❌ |
| calls:read | View information about ongoing and past calls | ❌ |
| calls:write | Start and manage calls in a workspace | ❌ |
| canvases:read | your slack app will be able to access contents of canvases created inside Slack. | ❌ |
| canvases:write | your slack app will be able to create, edit and remove canvases. | ❌ |
| channels:history | View messages and other content in public channels that your slack app has been added to | ❌ |
| channels:join | Join public channels in a workspace | ❌ |
| channels:manage | Manage public channels that your slack app has been added to and create new ones | ❌ |
| channels:read | View basic information about public channels in a workspace | ❌ |
| channels:write.invites | Invite members to public channels | ❌ |
| channels:write.topic | Set the description of public channels | ❌ |
| chat:write | Post messages in approved channels & conversations | ✅ |
| chat:write.customize | Send messages as @your_slack_app with a customized username and avatar | ❌ |
| chat:write.public | Send messages to channels @your_slack_app isn't a member of | ❌ |
| commands | Add shortcuts and/or slash commands that people can use | ❌ |
| conversations.connect:manage | Allows your slack app to manage Slack Connect channels | ❌ |
| conversations.connect:read | Receive Slack Connect invite events sent to the channels your slack app is in | ❌ |
| conversations.connect:write | Create Slack Connect invitations for channels that your slack app has been added to, and accept invitations sent to your slack app | ❌ |
| datastore:read | View and see data from Slack App Datastore | ❌ |
| datastore:write | Write data to Slack App Datastore | ❌ |
| dnd:read | View Do Not Disturb settings for people in a workspace | ❌ |
| emoji:read | View custom emoji in a workspace | ❌ |
| files:read | View files shared in channels and conversations that your slack app has been added to | ❌ |
| files:write | Upload, edit, and delete files as your slack app | ❌ |
| groups:history | View messages and other content in private channels that your slack app has been added to | ❌ |
| groups:read | View basic information about private channels that your slack app has been added to | ❌ |
| groups:write | Manage private channels that your slack app has been added to and create new ones | ❌ |
| groups:write.invites | Invite members to private channels | ❌ |
| groups:write.topic | Set the description of private channels | ❌ |
| im:history | View messages and other content in direct messages that your slack app has been added to | ❌ |
| im:read | View basic information about direct messages that your slack app has been added to | ❌ |
| im:write | Start direct messages with people | ❌ |
| im:write.topic | Set the description in direct messages | ❌ |
| incoming-webhook | Create one-way webhooks to post messages to a specific channel | ❌ |
| links.embed:write | Embed video player URLs in messages and app surfaces | ❌ |
| links:read | View URLs in messages | ❌ |
| links:write | Show previews of URLs in messages | ❌ |
| metadata.message:read | Allows your slack app to read message metadata in channels that your slack app has been added to | ❌ |
| mpim:history | View messages and other content in group direct messages that your slack app has been added to | ❌ |
| mpim:read | View basic information about group direct messages that your slack app has been added to | ❌ |
| mpim:write | Start group direct messages with people | ❌ |
| mpim:write.topic | Set the description in group direct messages | ❌ |
| none | Execute methods without needing a scope | ❌ |
| pins:read | View pinned content in channels and conversations that your slack app has been added to | ❌ |
| pins:write | Add and remove pinned messages and files | ❌ |
| reactions:read | View emoji reactions and their associated content in channels and conversations that your slack app has been added to | ❌ |
| reactions:write | Add and edit emoji reactions | ❌ |
| reminders:read | View reminders created by your slack app | ❌ |
| reminders:write | Add, remove, or mark reminders as complete | ❌ |
| remote_files:read | View remote files added by the app in a workspace | ❌ |
| remote_files:share | Share remote files on a user's behalf | ❌ |
| remote_files:write | Add, edit, and delete remote files on a user's behalf | ❌ |
| search:read.files | Search a workspace's content in files | ❌ |
| search:read.im | Search a workspace's content in direct messages | ❌ |
| search:read.mpim | Search a workspace's content in group direct messages | ❌ |
| search:read.private | Search a workspace's content in private channels | ❌ |
| search:read.public | Search a workspace's content in public channels | ❌ |
| team.billing:read | Allows your slack app to read the billing plan for workspaces your slack app has been installed to | ❌ |
| team.preferences:read | Allows your slack app to read the preferences for workspaces your slack app has been installed to | ❌ |
| team:read | View the name, email domain, and icon for workspaces your slack app is connected to | ❌ |
| tokens.basic | Execute methods without needing a scope | ❌ |
| triggers:read | Read new Platform triggers | ❌ |
| triggers:write | Create new Platform triggers | ❌ |
| usergroups:read | View user groups in a workspace | ❌ |
| usergroups:write | Create and manage user groups | ❌ |
| users.profile:read | View profile details about people in a workspace | ❌ |
| users:read | View people in a workspace | ✅ |
| users:read.email | View email addresses of people in a workspace | ❌ |
| users:write | Set presence for your slack app | ❌ |
| workflow.steps:execute | Add steps that people can use in Workflow Builder | ❌ |
| workflows.templates:read | Read a workflow template | ❌ |
| workflows.templates:write | Write a workflow template | ❌ |
Contact
If you have questions, feel free to contact us via AVIMBU.29:["$","div",null,{"className":"my-8 pb-8 h-full max-w-5xl mx-auto","children":["$","div",null,{"className":"grid grid-cols-1 md:grid-cols-3 gap-6","chil
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.


