Skip to main content

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​

  1. At api.slack.com/apps, Create New App → From scratch. Name it Zeta Alpha MCP and pick the target workspace.

  2. Under Agents & AI Apps, enable Model Context Protocol.

  3. (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.

  4. 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.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
  5. Copy the Client ID and Client Secret from Basic Information → App Credentials.

Slack OAuth & Permissions page with Redirect URL and User Token Scopes configured

2. Add the Server to the Tenant​

Add a server under the tenant's MCP Servers (see Adding a Server to the Tenant):

FieldValue
Nameslack
URLhttps://mcp.slack.com/mcp
OAuth client IDThe app's Client ID
OAuth client secretNew secret… with the app's Client Secret
Scopessearch: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 URIhttps://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​

SymptomCause
bad_redirect_uriTrailing-slash mismatch between the Slack app and the server's Redirect URI.
invalid_scope during authorizationA scope in Scopes is not enabled under User Token Scopes.
missing_scope at tool-call timeUser authorized before a new scope was added. Reauthorize.
not_in_channel when postingUser is not a member of the target channel.