Slack MCP Server
Send messages, manage channels, and interact with Slack workspaces from workflows
The Slack MCP server lets your workflows send messages, read channel history, manage reactions, upload files, and search across your Slack workspace.
Setup
1. Create a Slack App
- Go to https://api.slack.com/apps.
- Click Create New App > From scratch.
- Name the app (e.g., "FlowTrux Bot") and select your workspace.
2. Configure Bot Token Scopes
Navigate to OAuth & Permissions and add the following Bot Token Scopes:
| Scope | Required For |
|---|---|
chat:write | Sending messages |
channels:read | Listing channels |
channels:history | Reading channel messages |
users:read | Listing users and user info |
reactions:write | Adding emoji reactions |
files:write | Uploading files |
3. Install to Workspace
- Click Install to Workspace at the top of the OAuth & Permissions page.
- Authorize the app.
- Copy the Bot User OAuth Token (starts with
xoxb-).
4. Add to FlowTrux
- Go to Settings > MCP Servers > Add Server.
- Select Slack.
- Paste the Bot Token.
- Optionally set a Default Channel (used when no channel is specified in tool calls).
- Click Save.
5. Invite Bot to Channels
The bot can only post to channels it has been invited to. In each Slack channel:
/invite @FlowTrux Bot
Tools
send_message
Send a text message to a channel.
| Parameter | Type | Required | Description |
|---|---|---|---|
channel | string | Yes | Channel name or ID (e.g., #general or C01234ABCDE) |
text | string | Yes | Message text (supports Slack markdown) |
send_blocks
Send a rich message using Slack's Block Kit format.
| Parameter | Type | Required | Description |
|---|---|---|---|
channel | string | Yes | Channel name or ID |
blocks | array | Yes | Array of Block Kit block objects |
list_channels
List public channels in the workspace. No required parameters.
get_channel_history
Get recent messages from a channel.
| Parameter | Type | Required | Description |
|---|---|---|---|
channel | string | Yes | Channel name or ID |
limit | number | No | Maximum messages to return (default: 10) |
add_reaction
Add an emoji reaction to a message.
| Parameter | Type | Required | Description |
|---|---|---|---|
channel | string | Yes | Channel where the message was posted |
timestamp | string | Yes | Message timestamp (from get_channel_history or send_message response) |
emoji | string | Yes | Emoji name without colons (e.g., thumbsup) |
list_users
List users in the workspace. No required parameters.
get_user_info
Get details about a specific user.
| Parameter | Type | Required | Description |
|---|---|---|---|
userId | string | Yes | Slack user ID (e.g., U01234ABCDE) |
upload_file
Upload a file to a channel.
| Parameter | Type | Required | Description |
|---|---|---|---|
channel | string | Yes | Channel to upload to |
content | string | Yes | File content |
filename | string | Yes | File name (e.g., report.csv) |
search_messages
Search messages across the workspace.
| Parameter | Type | Required | Description |
|---|---|---|---|
query | string | Yes | Search query (supports Slack search syntax) |
send_formatted_report
Send a pre-styled report with metrics and sections.
| Parameter | Type | Required | Description |
|---|---|---|---|
channel | string | Yes | Channel to send to |
title | string | Yes | Report title |
sections | array | Yes | Array of report section objects |
Example Workflow
A common pattern is to combine an Agent node with Slack tools:
- Trigger -- Cron schedule (daily at 9am)
- Action -- HTTP request to fetch data from an API
- Agent -- Analyze data with AI, tools:
slack:send_formatted_report - The agent processes the data and sends a formatted summary to your Slack channel.