Source: https://atomicwork.docs.pageloop.ai/integrations/mcp-store/slack-mcp-server

# Slack MCP Server

# Slack MCP server

## Connect the Slack MCP server

Connect the Slack MCP server to Atomicwork to let your AI Coworkers search, read, and post in Slack and work with canvases.

Integrate the Slack MCP (Model Context Protocol) server with Atomicwork to give your AI Coworkers and automated workflows access to your Slack workspace. By connecting this server, your AI Workforce can securely search messages, read channels and threads, post messages, look up users, and create or update canvases on behalf of the user who authorized the connection.

Unlike most MCP integrations, Slack does not allow Atomicwork to ship a single shared app for MCP access — Slack's MCP server only accepts tokens issued by an app installed in your own workspace. You therefore create a small Slack app in your workspace (from a manifest we provide), and Atomicwork uses that app's credentials to complete the OAuth connection. This takes about five minutes.

### Understand the prerequisites

Before you begin the setup, ensure that you have the following access:

- **Atomicwork admin access:** You need organization admin access in Atomicwork to configure integrations in the MCP store.
- **Slack workspace access:** You need permission to create and install apps in your Slack workspace. In many workspaces this is restricted to Workspace Owners/Admins, or app installation requires admin approval (**Settings & administration → Manage apps → App approval**).
- **Your Atomicwork region:** The Slack app needs Atomicwork's OAuth callback URL as a redirect URL. Use the one that matches your Atomicwork region:

| Atomicwork region | Redirect URL to add in Slack                                          |
| ----------------- | --------------------------------------------------------------------- |
| US                | `https://esd.atomicwork.com/api/external-oauth/public/install`        |
| EU                | `https://esd.podeuw.atomicwork.com/api/external-oauth/public/install` |

Please note that the Slack MCP server works with **user** tokens. The tools act as the Slack user who completes the authorization (typically an admin), and can only see channels and messages that user can see. Slack also lets you control MCP access on its side: **Slack app settings → Agents & AI Apps → Slack Model Context Protocol (MCP) Server**.

### Step 1: Create the Slack app from the manifest

1. Go to <https://api.slack.com/apps> and click **Create New App**.
2. Select **From a manifest**.
3. Choose the workspace you want to connect and click **Next**.
4. Select the **JSON** tab, delete the sample content, paste the manifest below, and click **Next**.
5. Review the summary (it should list 15 user scopes) and click **Create**.

Before pasting, replace the redirect URL with the one for your region from the table above.

```json
{
  "display_information": {
    "name": "Atomicwork MCP",
    "description": "Lets Atomicwork AI Coworkers use Slack via the Slack MCP server on behalf of authorized users.",
    "background_color": "#1f1f1f"
  },
  "oauth_config": {
    "redirect_urls": [
      "https://esd.atomicwork.com/api/external-oauth/public/install"
    ],
    "token_management_enabled": true,
    "scopes": {
      "user": [
        "search:read.public",
        "search:read.private",
        "search:read.mpim",
        "search:read.im",
        "search:read.files",
        "search:read.users",
        "chat:write",
        "channels:history",
        "groups:history",
        "mpim:history",
        "im:history",
        "canvases:read",
        "canvases:write",
        "users:read",
        "users:read.email"
      ]
    }
  },
  "settings": {
    "is_mcp_enabled": true,
    "org_deploy_enabled": false,
    "socket_mode_enabled": false,
    "token_rotation_enabled": false
  }
}
```

#### Understand the manifest

Each section of the manifest controls something visible to your users or required by Atomicwork. Change only the fields marked as customizable.

| Section               | Field                      | What it does                                                                                                                                                                                                                                                   | Change it?                                                                                                                                                                |
| --------------------- | -------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `display_information` | `name`                     | The app name your users see in Slack — on the OAuth consent screen ("Atomicwork MCP is requesting permission to access…"), in **Manage apps**, and as the author of any message posted through `chat:write`.                                                   | **Yes, if you like.** Use whatever fits your workspace, for example `Atomicwork` or `Atomicwork AI Coworker`. Must be unique in your workspace, max 35 characters.        |
| `display_information` | `description`              | Short description shown in the Slack app directory listing and on the consent screen.                                                                                                                                                                          | Optional.                                                                                                                                                                 |
| `display_information` | `background_color`         | Accent color for the app's directory tile. You can also upload an app icon later under **Basic Information → Display Information**.                                                                                                                            | Optional.                                                                                                                                                                 |
| `oauth_config`        | `redirect_urls`            | Where Slack sends the user back after they click **Allow**. Must exactly match Atomicwork's callback, otherwise Slack rejects the connection with `bad_redirect_uri`.                                                                                          | **Yes — required.** Replace with the URL for your Atomicwork region (see the table under _Prerequisites_).                                                                |
| `oauth_config`        | `token_management_enabled` | Enables the OAuth flow ("OAuth enabled") so Slack can issue a user token to Atomicwork.                                                                                                                                                                        | No. Must stay `true`.                                                                                                                                                     |
| `oauth_config`        | `scopes.user`              | The exact permissions Atomicwork's Slack tools need. They are **user** scopes: the tools act as the person who authorizes the connection and see only what that person can see. Search scopes are user-only in Slack, which is why a bot token cannot be used. | No. Removing a scope disables the matching tools (for example, removing `canvases:write` breaks canvas creation); Atomicwork does not request anything outside this list. |
| `settings`            | `is_mcp_enabled`           | Turns on the **Slack Model Context Protocol (MCP) Server** for this app. Without it, Slack's MCP endpoint rejects the app's tokens.                                                                                                                            | No. Must stay `true`. If Slack's validator rejects the key, remove it and turn the toggle on manually in Step 2.                                                          |
| `settings`            | `org_deploy_enabled`       | Enterprise Grid org-wide deployment. Not needed; the app is installed in a single workspace.                                                                                                                                                                   | No, unless your Slack admin requires org-level apps.                                                                                                                      |
| `settings`            | `socket_mode_enabled`      | Socket Mode is for apps that receive events over a websocket. Atomicwork calls Slack over HTTPS only.                                                                                                                                                          | No. Keep `false`.                                                                                                                                                         |
| `settings`            | `token_rotation_enabled`   | Makes Slack issue short-lived tokens that must be refreshed. Atomicwork supports refresh, but leaving this `false` keeps the setup simpler and is what we test against.                                                                                        | No. Keep `false`.                                                                                                                                                         |

If Slack shows **"You're creating apps too quickly"**, wait a minute and click **Create** again. If an "Atomicwork MCP" app already appears in your app list, open it and continue with the next step instead of creating another one.

### Step 2: Verify the MCP server and redirect URL

1. In the app's left sidebar, open **Agents & AI Apps** and confirm that **Slack Model Context Protocol (MCP) Server** is **On**. Turn it on if it is off.
2. Open **OAuth & Permissions** and confirm that **Redirect URLs** contains the Atomicwork redirect URL for your region. If you need to add or change it, click **Save URLs** afterwards.

### Step 3: Install the app to your workspace

1. In the left sidebar, open **Install App** and click **Install to Workspace**.
2. Review the requested permissions and click **Allow**.

You do not need to copy the user OAuth token shown after installation. Atomicwork obtains its own token during the connection flow in the next steps. Never share the token from this page.

### Step 4: Copy the Client ID and Client Secret

1. In the left sidebar, open **Basic Information**.
2. Under **App Credentials**, copy the **Client ID**.
3. Click **Show** next to **Client Secret** and copy the value.

Treat the Client Secret like a password. Atomicwork stores it encrypted and uses it only to complete the OAuth flow and refresh tokens for your tenant.

### Step 5: Connect in Atomicwork

1. Go to **AI Workforce > AI Registry > MCP store > Slack** in your Atomicwork account.
2. Click the **Slack** tile and select **Connect**.
3. Enter the **Client ID** and **Client Secret** from Step 4 and click **Connect**.
4. In the Slack window that opens, sign in to the same workspace where you created the app and click **Allow**.

Once the setup is complete, the Slack tile shows **Connected to \<your workspace>** and Atomicwork displays the list of available Slack tools. The available tools list is provided by Slack's MCP server and can change as Slack adds capabilities.

| Category | Scope                                                                                                                       | Usecase                                                                                                                          |
| -------- | --------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- |
| Search   | `search:read.public`, `search:read.private`, `search:read.mpim`, `search:read.im`, `search:read.files`, `search:read.users` | Search messages, files, and people across public channels, private channels, group DMs, and DMs the authorizing user can access. |
| Read     | `channels:history`, `groups:history`, `mpim:history`, `im:history`                                                          | Read channel and thread history in public channels, private channels, group DMs, and DMs.                                        |
| Post     | `chat:write`                                                                                                                | Send messages and replies as the authorizing user.                                                                               |
| Canvases | `canvases:read`, `canvases:write`                                                                                           | Read, create, and update Slack canvases.                                                                                         |
| Users    | `users:read`, `users:read.email`                                                                                            | Look up users and resolve them by email (for example, to mention the right person or map Atomicwork users to Slack users).       |

### Configure AI Coworker and builder access

After completing the setup, you can control which tools your AI Coworkers can use. This allows you to practice the principle of least privilege by granting only the necessary capabilities to each agent. To configure tool access, follow these steps:

1. On the Slack MCP page in the MCP store, review the tool policy and publish it for the tools you want to expose (tools are available to coworkers only once they are enabled and have a published policy).
2. Go to **AI Workforce > AI Coworkers > \[AI Coworker name] > Tools** in your Atomicwork dashboard.
3. Select the specific AI Coworker you want to configure. If you need to create a new agent first, see our guide on [setting up an AI Coworker](/product/ai-workforce/setting-up-an-ai-coworker).
4. Grant granular or complete access to the available Slack tools based on your operational requirements.

In addition to standard AI Coworkers, the AI Assist workflow builder and the coding agent automatically have access to the Slack MCP server while building workflows and writing custom code scripts respectively.

### Explore broad tool categories

Once connected, the Slack MCP server exposes tools in these groups:

- **Search** — find messages, files, channels, and people across the workspace
- **Channels & threads** — read channel history and full threads, resolve channel details
- **Messaging** — post messages and thread replies
- **Canvases** — create and update canvases
- **Users** — look up users and profiles

### Troubleshooting

- **`bad_redirect_uri` from Slack when clicking Connect:** The redirect URL in the Slack app does not match your Atomicwork region. Fix it under **OAuth & Permissions → Redirect URLs** and click **Save URLs**.
- **Slack asks an admin to approve the app:** Your workspace restricts app installation. Ask a Workspace Owner to approve the request under **Manage apps → App approval**, then retry.
- **"Slack MCP client credentials are missing; reconnect Slack MCP":** The connection predates customer-created apps or the credentials were removed. Click **Disconnect**, then reconnect following Steps 4–5.
- **Tools appear in the MCP store but coworkers cannot use them:** The tool policy is not published, or the coworker does not have the tools enabled. See _Configure AI Coworker and builder access_.
- **Coworker gets "not found" or empty results:** Slack MCP tools act as the authorizing user and only return content that user can see. Add the user to the relevant channels or reconnect as a different user.

### Reconnecting or rotating credentials

If you regenerate the Client Secret in Slack (**Basic Information → App Credentials → Regenerate**), or want to authorize as a different Slack user, click **Disconnect** on the Slack tile in the MCP store and repeat Step 5 with the new values. Existing coworker tool assignments are preserved.

### Next steps

Now that you have connected Slack, you can explore other collaboration integrations. See our guide on [connecting the Google Drive MCP server](/integrations/mcp-store/google-drive-mcp-server) to give coworkers access to documents, or learn how to [connect the Box MCP server](/integrations/mcp-store/box-mcp-server) for file management workflows.
