
Slack
Generally AvailableSlack MCP Server allows AI agents to read messages, post updates, and interact with channels through secure OAuth with workspace-level permissions and audit logging.
- Communication
- Collaboration
- Messaging
- Authentication
- OAuth 2.0
- Authorization
- Enterprise-managed
- Hosting
- Vendor-hosted endpoint
- Required scopes
- 30
How it works
Every agent request passes through Ferentin policy before it reaches Slack.
- AI agentAsks for something
- Ferentin policies
- Audit logging
- Enterprise key management
- Dlp integration
- Slack MCP serverAuthorized connection
- Governed resultMasked, logged, returned
What agents can do
27 tools · you choose which ones agents may callSearch and browse what exists, without opening the content itself.
- Search public messages and files
- Search messages and files
- Search channels
- Search users
- List channel members
- List user channels
- Search emojis
Permissions requested
The OAuth 2.0 scopes Slack asks you to approve when you connect.
| Scope | Access |
|---|---|
| search:read.public | Read |
| search:read.private | Read |
| search:read.mpim | Read |
| search:read.im | Read |
| search:read.files | Read |
| search:read.users | Read |
| chat:write | Elevated |
| channels:history | Read |
| groups:history | Read |
| mpim:history | Read |
| im:history | Read |
| canvases:read | Read |
| canvases:write | Elevated |
| users:read | Read |
| users:read.email | Read |
| reactions:write | Elevated |
| reactions:read | Read |
| emoji:read | Read |
| files:read | Read |
| channels:write | Elevated |
| groups:write | Elevated |
| im:write | Elevated |
| mpim:write | Elevated |
| channels:read | Read |
| groups:read | Read |
| mpim:read | Read |
| files:write | Elevated |
| im:read | Read |
| lists:read | Read |
| lists:write | Elevated |
Before you connect
- No Dynamic Client Registration or Client-ID-Metadata-Document support - every tenant needs its own pre-registered Slack app and per-user OAuth (credential_inheritance: REQUIRE_TENANT).
- Slack grants the app's full configured user-scope set to every consenting user; the OAuth/MCP request cannot downscope it. Narrow the per-user tool surface with Ferentin MCP policy, not scope shaping.
- slack_update_canvas is the only destructive tool: action=replace without section_id irreversibly overwrites the entire canvas. Ship a restrictive default mcp_policies row (minimum: deny slack_update_canvas) when registering this provider.
- tools/list is per-user: tool descriptions are personalized with the calling user's Slack ID, so the tool list cannot be cached or shared across users.
1 more technical note
- The App Assistant MCP toggle must be enabled on each environment's app (see step 2); this is also part of the Slack App Directory submission for the production app.
About Slack
Slack is a business communication platform offering real-time messaging, file sharing, and integration with thousands of third-party services for team collaboration.
Frequently asked about Slack
- What can AI agents do with Slack through Ferentin?
- Ferentin exposes 27 Slack MCP tools to your AI agents, grouped as Discover (7 tools), Access (7 tools), Manage (11 tools) and Collaborate (1 tool). Every call is checked against your Ferentin policies before it reaches Slack.
- How is Slack access secured?
- Requests through the Slack integration are covered by audit logging, enterprise key management and dlp integration. These controls are applied by Ferentin, not by Slack, so they hold across every connected agent.
- What permissions does the Slack integration require?
- The Slack integration requests 30 OAuth 2.0 scopes: search:read.public (read access); search:read.private (read access); search:read.mpim (read access); search:read.im (read access); search:read.files (read access); search:read.users (read access); chat:write (elevated access); channels:history (read access); groups:history (read access); mpim:history (read access); im:history (read access); canvases:read (read access); canvases:write (elevated access); users:read (read access); users:read.email (read access); reactions:write (elevated access); reactions:read (read access); emoji:read (read access); files:read (read access); channels:write (elevated access); groups:write (elevated access); im:write (elevated access); mpim:write (elevated access); channels:read (read access); groups:read (read access); mpim:read (read access); files:write (elevated access); im:read (read access); lists:read (read access); lists:write (elevated access)
- How do I connect Slack to Ferentin?
- Open the Ferentin admin console, add Slack as a new connection and authenticate with OAuth 2.0. You then choose which permissions and which tools your agents may use, and the connection goes live for everyone covered by your policies.
- Is the Slack integration generally available?
- Yes. The Slack integration is generally available on Ferentin, including the free tier.