> ## Documentation Index
> Fetch the complete documentation index at: https://docs.routemcp.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Slack

> Post and read messages, manage channels and conversations, search, react, pin, upload files, and look up users via the Slack Web API. 134 tools covering channels, messages, users, files, reactions, reminders, calls, and more — all accessible through the MCP runtime endpoint.

<img src="https://icon.horse/icon/slack.com" alt="Slack" style={{ width: "48px", height: "48px", marginBottom: "16px" }} />

## Overview

| Property   | Value                   |
| ---------- | ----------------------- |
| Slug       | `slack`                 |
| Category   | Communication           |
| Auth       | OAuth 2.0 + PKCE        |
| Base URL   | `https://slack.com/api` |
| Tool count | 134                     |
| Rate limit | 1 req/sec, 50 req/min   |

## Tool catalogue

Slack tools are surfaced through the **MCP runtime** (`POST /api/v1/mcp/:serverId`) and the **HTTP chat** endpoint (`POST /api/v1/mcp/:serverId/chat`). In router mode the model uses `SEARCH_TOOLS` to discover the right slug at runtime — you don't bind a fixed REST resource ahead of time. The catalogue covers:

| Area                     | Sample slugs                                                                                                                            | Approx. count |
| ------------------------ | --------------------------------------------------------------------------------------------------------------------------------------- | ------------- |
| Channels & conversations | `SLACK_CREATE_CHANNEL`, `SLACK_LIST_ALL_CHANNELS`, `SLACK_INVITE_USERS_TO_A_SLACK_CHANNEL`, `SLACK_ARCHIVE_A_PUBLIC_OR_PRIVATE_CHANNEL` | 30+           |
| Messages & search        | `SLACK_SEND_MESSAGE`, `SLACK_CHAT_POST_MESSAGE`, `SLACK_UPDATES_A_SLACK_MESSAGE`, `SLACK_SEARCH_MESSAGES`                               | 16+           |
| Scheduled messages       | `SLACK_SCHEDULE_MESSAGE`, `SLACK_LIST_SCHEDULED_MESSAGES`, `SLACK_DELETE_A_SCHEDULED_MESSAGE_IN_A_CHAT`                                 | 5             |
| Users & profile          | `SLACK_LIST_ALL_USERS`, `SLACK_FIND_USER_BY_EMAIL_ADDRESS`, `SLACK_GET_USER_PRESENCE_INFO`, `SLACK_SET_SLACK_USER_PROFILE_INFORMATION`  | 23+           |
| User groups              | `SLACK_CREATE_A_SLACK_USER_GROUP`, `SLACK_UPDATE_USER_GROUP_MEMBERS`, `SLACK_LIST_USER_GROUPS_FOR_TEAM_WITH_OPTIONS`                    | 7             |
| Files                    | `SLACK_UPLOAD_OR_CREATE_A_FILE_IN_SLACK`, `SLACK_LIST_FILES_WITH_FILTERS_IN_SLACK`, `SLACK_ENABLE_PUBLIC_SHARING_OF_A_FILE`             | 15+           |
| Reactions & stars        | `SLACK_ADD_REACTION_TO_AN_ITEM`, `SLACK_FETCH_ITEM_REACTIONS`, `SLACK_ADD_A_STAR_TO_AN_ITEM`                                            | 6             |
| Reminders                | `SLACK_CREATE_A_REMINDER`, `SLACK_LIST_REMINDERS`, `SLACK_MARK_REMINDER_AS_COMPLETE`                                                    | 5             |
| Do Not Disturb           | `SLACK_ACTIVATE_OR_MODIFY_DO_NOT_DISTURB_DURATION`, `SLACK_SET_DND_DURATION`, `SLACK_END_SNOOZE`                                        | 4             |
| Emoji, team & workspace  | `SLACK_ADD_EMOJI`, `SLACK_LIST_TEAM_CUSTOM_EMOJIS`, `SLACK_FETCH_WORKSPACE_SETTINGS_INFORMATION`                                        | 8+            |
| Calls                    | `SLACK_REGISTERS_A_NEW_CALL_WITH_PARTICIPANTS`, `SLACK_ADD_CALL_PARTICIPANTS`, `SLACK_END_A_CALL_WITH_DURATION_AND_ID`                  | 9             |
| Auth                     | `SLACK_AUTH_TEST`                                                                                                                       | 2             |

Discover the full list at runtime:

```bash theme={null}
curl -N -X POST "https://api.routemcp.io/api/v1/mcp/<workspace_id>/chat" \
  -H "x-api-key: <YOUR_API_KEY>" \
  -H "x-session-id: <SESSION_ID>" \
  -H "content-type: application/json" \
  -d '{"message": "List every Slack tool that can post or schedule a message."}'
```

The model will call `SEARCH_TOOLS({query: "post message"})` and stream the matched slugs back.

## Connect setup

Slack uses OAuth 2.0 with PKCE against a Slack-registered **app**. One app per platform is enough — your end users authorise their own workspace by going through Slack's consent screen.

<Steps>
  <Step title="Create a Slack app">
    Go to [api.slack.com/apps](https://api.slack.com/apps) → **Create New App** → **From scratch**. Under **OAuth & Permissions**, copy the **Client ID** and **Client Secret**.
  </Step>

  <Step title="Add the redirect URL">
    Under **OAuth & Permissions → Redirect URLs**, add:

    ```
    https://api.routemcp.io/api/v1/connect/oauth/callback
    ```
  </Step>

  <Step title="Configure bot & user scopes">
    Add the bot token scopes your integration needs — e.g. `channels:read`, `channels:history`, `chat:write`, `users:read`, `reactions:write`, `files:read`, `files:write`, `pins:write`, `reminders:write`. Message search additionally requires the `search:read` **user** scope.
  </Step>

  <Step title="Connect via the widget">
    The end user opens the Connect widget, picks Slack, and is sent through Slack's consent screen to authorise the workspace.
  </Step>
</Steps>

## Usage

### Through the chat endpoint (recommended)

```bash theme={null}
# Post a message
curl -N -X POST "https://api.routemcp.io/api/v1/mcp/<workspace_id>/chat" \
  -H "x-api-key: sk_live_your_key" \
  -H "x-session-id: user-42" \
  -H "content-type: application/json" \
  -d '{"message": "Post `Deploy finished ✅` to the #engineering channel."}'

# Summarise recent activity
curl -N -X POST "https://api.routemcp.io/api/v1/mcp/<workspace_id>/chat" \
  -H "x-api-key: sk_live_your_key" \
  -H "x-session-id: user-42" \
  -H "content-type: application/json" \
  -d '{"message": "Summarise the last 20 messages in #support."}'
```

The agent loop picks `SLACK_CHAT_POST_MESSAGE` / `SLACK_FETCH_CONVERSATION_HISTORY` and streams results back as SSE.

### Direct MCP JSON-RPC (Claude Desktop / Cursor / custom MCP clients)

```json theme={null}
{
  "mcpServers": {
    "routemcp": {
      "url": "https://api.routemcp.io/api/v1/mcp/<workspace_id>",
      "headers": {
        "x-api-key": "<YOUR_API_KEY>",
        "x-session-id": "<SESSION_ID>"
      }
    }
  }
}
```

Once connected, MCP clients can invoke any of the 134 tools by slug via the standard `tools/call` JSON-RPC method.
