Documentation
Slack
Connect Slack and use its tools through the Authlane control plane.
Prerequisites
Create a Slack app and choose a workspace where it can access the channels and users needed by your SaaS. Add only the user permissions required for the tools you expose. Use the Web API reference, MCP app guide, and Slack app console.
Self-hosted setup
- Create an internal or directory-published Slack app; unlisted external apps cannot use Slack MCP.
- Enable Agents → Slack Model Context Protocol (MCP) Server for the app.
- Add
https://<your-authlane-host>/api/v1/oauth/slack/callbackunder OAuth redirect URLs. - Add the user-token scopes below, install the app, and copy its Client ID and Client Secret.
Configure authentication
Open Dashboard → Services → Slack → OAuth Configuration, enter the Client ID and Client Secret, save, and enable Slack. Authlane uses Slack's confidential user OAuth endpoints and PKCE-compatible flow so the resulting identity can be used by the official MCP server.
Scopes
chat:writesends channel or direct messages.channels:readlists public channels visible to the connected app.channels:writecreates public channels.users:readlists workspace users.users.profile:writeupdates the connected user's status.search:read.publiclets Slack MCP discover public channels.search:read.userslets Slack MCP discover workspace users.
File upload is not exposed: Slack retired files.upload, and Authlane will not advertise a tool
until the adapter implements Slack's current external upload flow.
Execution path
Prefer Slack's official MCP server at https://mcp.slack.com/mcp; follow the
official Slack MCP documentation. Use the direct Web
API adapter only for deterministic operations that the official server does not expose. The SaaS
runtime—not Authlane—owns the MCP client and provider traffic.
Available tools
Messages
slack_send_message
Channels and users
slack_list_channelsslack_create_channelslack_list_users
User status
slack_set_status
Install @authlane/integration-slack in the SaaS runtime. A callback gets a fresh credential lease
and calls Slack directly; messages, file content, and Slack responses do not pass through Authlane.
Connection lifecycle
Slack consent creates an encrypted connected connection. Authlane schedules background refresh
only when Slack returns expiry and refresh material. Reconnect a connection that becomes expired
or error after provider rejection. Disconnect through a new hosted session after recent user
reauthentication.
Troubleshooting
- Channel listing and posting are limited to channels visible to the connected Slack app.
- File upload remains unavailable until the external upload flow is implemented end to end.
- Use channel and user IDs returned by Slack tools when names are ambiguous.