MCP store
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
- Go to https://api.slack.com/apps and click Create New App.
- Select From a manifest.
- Choose the workspace you want to connect and click Next.
- Select the JSON tab, delete the sample content, paste the manifest below, and click Next.
- 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.
{
"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
- 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.
- 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
- In the left sidebar, open Install App and click Install to Workspace.
- 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
- In the left sidebar, open Basic Information.
- Under App Credentials, copy the Client ID.
- 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
- Go to AI Workforce > AI Registry > MCP store > Slack in your Atomicwork account.
- Click the Slack tile and select Connect.
- Enter the Client ID and Client Secret from Step 4 and click Connect.
- 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:
- 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).
- Go to AI Workforce > AI Coworkers > [AI Coworker name] > Tools in your Atomicwork dashboard.
- 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.
- 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_urifrom 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 to give coworkers access to documents, or learn how to connect the Box MCP server for file management workflows.
