Skip to main content

Slack MCP server overview

With the Slack MCP server, your integrated apps can search channels, send messages, and perform other Slack actions through MCP clients. Workspace admins can approve and manage all MCP client integrations, keeping your Slack data safe. This guide discusses the MCP server offerings from Slack and how to develop with the Slack MCP server.

Slack MCP server features

The Slack MCP server provides tools for searching through Slack, retrieving and sending messages, managing canvases, and managing users. Each of these tools provides useful functionality for interacting with Slack; combine them for comprehensive integrations that grasp your team's context and history.

Searching throughout Slack

The MCP server can search for a variety of information found throughout a Slack workspace:

  • Messages and files — filter by date, user, and content type. Retrieve metadata and content.
  • Users in a workspace — filter by name (with partial name matching), email, and user ID. Retrieve user details and statuses.
  • Private and public channels — filter by channel name and description. Retrieve channel metadata.
  • Emoji — returns the list of custom emoji available in the workspace.

Retrieving and sending messages

The MCP server can retrieve and send messages throughout a Slack workspace:

  • Send messages — send messages to any type of conversation in Slack.
  • Draft messages — draft, format, and preview messages directly within AI clients.
  • Read channels — grab the complete message history of channels.
  • Read threads — grab complete message thread conversations.
  • Create a conversation/channel — creates a new Slack channel, group DM, or IM conversation on behalf of the authenticated user.
  • Add reactions — adds an emoji reaction to a Slack message on behalf of the authenticated user.

Managing canvases

The MCP server can interact and modify Slack canvases:

  • Create/update a canvas — create and share rich, formatted documents.
  • Read a canvas — export canvases as markdown files.

Managing users

  • Fetch user info — access complete user profile info, including custom profile fields and statuses.
  • List channel members — retrieve a list of user IDs for members of a given Slack channel or conversation.

Example use cases

There are many possibilities with the Slack MCP server. Here are just a few ideas:

  • Create an AI assistant in Slack that can search through your team's Slack history to answer questions, find past decisions, and provide context for current projects.
  • Bring content from outside Slack into Slack via messages and canvases for discussion with coworkers.
  • Bring content from Slack to AI agents, providing them full context of projects that exist across multiple products.

Rate limits

Like all Slack Web API methods, the Slack MCP server is subject to rate limits. Limits are enforced per tool or action type. Whether an action is performed via an MCP tool or directly through Slack Web API methods, the same rate limits apply. Here is the full list of MCP tools and their associated rate limit:

MCP ToolRate Limit
Search messages & filesSpecial rate limits apply; consult method page documentation
Read filesTier 4: 100+ per minute
Search emojiTier 2: 20+ per minute
Search usersTier 2: 20+ per minute
Search channelsTier 2: 20+ per minute
Send messageSpecial rate limits apply; consult method page documentation
Read a channelTier 3: 50+ per minute
Read a threadTier 3: 50+ per minute
Create conversation/channelTier 2: 20+ per minute
Add reactionsTier 3: 50+ per minute
Create a canvasTier 2: 20+ per minute
Update a canvasTier 3: 50+ per minute
Read a canvasTier 3: 50+ per minute / Tier 4: 100+ per minute
Read a user profileTier 4: 100+ per minute
List channel membersTier 4: 100+ per minute

Transport protocol and endpoint

Slack supports JSON-RPC 2.0 over Streamable HTTP. All requests should be sent to:

https://mcp.slack.com/mcp

We do not support SSE-based connections or Dynamic Client Registration at this time.


App Identity

MCP clients must be backed by a registered Slack app with a fixed app ID and hardcode that app ID. This allows Slack to:

  • Let admins manage and approve your app/MCP client app using standard Slack app approval process.
  • Associate requests with your app for logging, rate limits, and access control.
  • Provide better support and visibility into usage.

If you're already using a Slack app for your integration, you can reuse it for MCP access.

Only directory-published apps or internal apps may use MCP.


Security concerns

When using the Slack MCP server, please be mindful about connecting to or utilizing other MCP servers at the same time. Different servers may have their own security, stability, and usage characteristics, so think carefully before mixing them together. Use judgment when evaluating what to connect and share across environments. Using these clients means giving them access to your Slack data so you can use it as context while interacting with those apps.

Audit MCP activity with the associated audit logs.

Only apps published in the Slack Marketplace and internal apps can use MCP at this time; unlisted apps are prohibited from using MCP.

IP allowlist

If your app has allowed IP address ranges configured, requests to the Slack MCP server are subject to the same restrictions. API calls originating from IP addresses not on your allowlist will be rejected. Ensure that the IP addresses your MCP client uses are included in your app's allowed list.


Authentication and Token Handling

Slack supports confidential OAuth for MCP clients. You'll need to use your app's client_id and client_secret for Slack OAuth.

If your MCP client supports OAuth 2.0 Authorization Server Metadata (RFC 8414) per MCP spec, you can rely on that. Users go through OAuth consent and authorize the app. You can initiate this OAuth request from your UX following standard MCP metadata discovery files:

  • https://mcp.slack.com/.well-known/oauth-protected-resource
  • https://mcp.slack.com/.well-known/oauth-authorization-server

OAuth URL and endpoints

  • Authorization endpoint for Slack user tokens: https://slack.com/oauth/v2_user/authorize
  • Token endpoint for Slack user tokens: https://slack.com/api/oauth.v2.user.access (method docs here)
  • If you also want to generate bot tokens (for in-Slack experience), follow instructions here.

OAuth scopes needed on user token for different tools

ToolScopes needed
Search messages/channelssearch:read.public, search:read.private, search:read.mpim, search:read.im
Search filessearch:read.files
Read filesfiles:read
Search emojiemoji:read
Search userssearch:read.users
Send messagechat:write
Read a channel/threadchannels:history, groups:history, mpim:history, im:history
Create conversation/channelchannels:write for public channels, groups:write for private channels, im:write for direct messages, mpim:write for multi-party DMs
Add reactionsreactions:write
Canvas create/updatecanvases:read, canvases:write
User profile/emailusers:read, users:read.email
List channel memberschannels:read for public channels, groups:read for private channels, mpim:read for multi-party DMs
Consider using PKCE

Looking to use desktop clients? PKCE support is now available! Read more here.


Available clients

Another method of using the Slack MCP server (if building a Slack app is not your jam) is accessing it via a partner application. The Slack MCP server is available in these select partner-built clients, no coding needed:


✨ Check out our documentation on Developing agents here.

✨ To search Slack data without connecting it to an AI, see documentation for the Real Time Search API here. The Real Time Search (RTS) API offers access to Slack data via API call.