How to Connect Slack
🔧 Tools · MCP
Slack's hosted MCP server at https://mcp.slack.com/mcp lets the agent search messages and files, read channel and DM history, post messages, and read or write canvases, as the user who authorized the connection.
1. Create a Slack App​
-
At api.slack.com/apps, Create New App → From scratch. Name it
Zeta Alpha MCPand pick the target workspace. -
Under Agents & AI Apps, enable Model Context Protocol.
-
(Enterprise Grid only) Under Org Level Apps, enable Enable org-readiness so an org admin can install the app once and grant it to multiple workspaces; see Slack's docs on organization-ready apps.
-
Under OAuth & Permissions:
-
Redirect URLs: click Add New Redirect URL, enter
https://api.zeta-alpha.com/v0/service/mcp/oauth/callback/(trailing slash required), then Add and Save URLs. -
Advanced token security via token rotation: opt in. The MCP client refreshes tokens automatically.
-
User Token Scopes: add only what the agent needs (Slack admins approve focused apps more readily):
search:read.public search:read.private search:read.mpim search:read.imsearch:read.files search:read.users files:read chat:writechannels:history groups:history mpim:history im:historycanvases:read canvases:write users:read users:read.email
-
-
Copy the Client ID and Client Secret from Basic Information → App Credentials.

2. Add the Server to the Tenant​
Add a server under the tenant's MCP Servers (see Adding a Server to the Tenant):
| Field | Value |
|---|---|
| Name | slack |
| URL | https://mcp.slack.com/mcp |
| OAuth client ID | The app's Client ID |
| OAuth client secret | New secret… with the app's Client Secret |
| Scopes | search:read.public search:read.private search:read.mpim search:read.im search:read.files search:read.users files:read chat:write channels:history groups:history mpim:history im:history canvases:read canvases:write users:read users:read.email |
| Redirect URI | https://api.zeta-alpha.com/v0/service/mcp/oauth/callback/ (with the trailing slash registered on the app) |
Scopes must be a subset of the User Token Scopes on the app.
3. Mount It and Connect​
Mount slack on the agent (Mounting a Server on an Agent). Each user then connects Slack from Connected apps in the chat, or through the Authorize button the agent shows when a request needs Slack (e.g. "Find recent messages mentioning the Q3 roadmap"). See Connecting from the Navigator.
If the workspace requires admin approval for new apps, the user sees a "Request approval" screen, and an admin approves the app once.
Troubleshooting​
| Symptom | Cause |
|---|---|
bad_redirect_uri | Trailing-slash mismatch between the Slack app and the server's Redirect URI. |
invalid_scope during authorization | A scope in Scopes is not enabled under User Token Scopes. |
missing_scope at tool-call time | User authorized before a new scope was added. Reauthorize. |
not_in_channel when posting | User is not a member of the target channel. |