Slack MCP server: the official server, setup and alternatives

Slack's official MCP server at mcp.slack.com: its tools, which clients work, admin approval, and setup in Claude, Cursor and Codex. Plus self-hosted and Upsy.

Updated

Short answer

Slack runs an official MCP server (a connector that lets an AI agent use your Slack) at https://mcp.slack.com/mcp. Through it, an agent searches messages and files, reads channels and threads, and sends messages as you. It's generally available since February 17, 2026.

  • The easy way in is a client Slack has partnered with: Claude, Claude Code, Cursor or Perplexity, plus ChatGPT's and Codex's Slack plugin. Install it, sign in to Slack, and a workspace admin approves it. A few minutes.
  • Any other client needs a Slack app of your own, because Slack doesn't let clients register themselves.
  • Self-hosted servers such as korotovsky's run on your machine with a token you copy out of Slack.
  • Upsy is a hosted Slack MCP server that works in any client with OAuth, Grok and Muse included, with up to five workspaces and limits you set per agent. It can't search Slack yet.

Slack's MCP server

Address https://mcp.slack.com/mcp
Transport Streamable HTTP. No SSE (Slack's docs)
Sign-in OAuth with a Slack user token, so the agent acts as you
Client registration None: "Only directory-published apps or internal apps may use MCP." No dynamic client registration
Admin A workspace admin approves the MCP integration, through Slack's usual app requests
Rate limits The same as Slack's Web API for each tool

Slack's developer docs name four clients that work with no code: Claude, Claude Code, Perplexity and Cursor. Slack's help center lists more partners, including ChatGPT, Notion, Devin and Dropbox. Grok, Muse and Gemini aren't on either list.

Its tools

Slack's docs describe what the server does rather than listing tool names. These are the names a connected client sees today:

Group Tools
Search slack_search_public, slack_search_public_and_private, slack_search_channels, slack_search_users, slack_search_emojis
Read slack_read_channel, slack_read_thread, slack_read_canvas, slack_read_file, slack_read_list, slack_read_user_profile, slack_list_channel_members, slack_list_user_channels, slack_get_reactions
Messages slack_send_message, slack_send_message_draft, slack_schedule_message, slack_add_reaction, slack_create_conversation
Canvases, files and lists slack_create_canvas, slack_update_canvas, slack_get_file_upload_url, slack_complete_file_upload, slack_create_list, slack_update_list, slack_add_list_record, slack_update_list_record
  • Search runs on Slack's Real-Time Search API. Private channels, DMs and group DMs need the private-search tool. Searches by meaning need Slack AI Search, on Business+ or Enterprise+; other plans get keyword search.
  • Canvases can't be created on free Slack plans, and which tools a client gets depends on the scopes its Slack app asks for. Claude Code's plugin, for example, has no upload tools (issue #183).
  • Messages carry a footer. Users report "Sent using Claude" or "Sent using @ChatGPT" under messages an agent sends (issue #25).

Connect it to your client

Claude Code. Install Slack's plugin inside a session and sign in when asked (Slack's guide):

/plugin install slack@claude-plugins-official

More in connect Slack to Claude Code.

Claude. Open Customize › Connectors, find Slack and click Connect. Anthropic's docs list it for Team and Enterprise, with the Claude app installed in Slack first, and a January 2026 update added Pro and Max. See Claude in Slack.

Cursor. Type /add-plugin slack in Agent chat, or install Slack from the Marketplace under Customize (Slack's guide). Adding mcp.slack.com to mcp.json by hand works only with a Slack client ID. More in connect Slack to Cursor.

Codex and ChatGPT. Install the Slack plugin from Plugins in ChatGPT or /plugins in the Codex CLI. Slack's harness page gives codex mcp add --transport http slack https://mcp.slack.com/mcp, but Codex has no --transport flag, and its sign-in fails with "Dynamic client registration not supported" (issue #13200). See connect Slack to Codex.

Anything else. Use a Slack app of your own, below.

Use your own Slack app

A company can point any client, or an agent it builds, at Slack's server through its own internal Slack app (Slack's guide):

  1. Create an app at api.slack.com/apps. Keep it internal: Slack says "unlisted apps are prohibited from using MCP".
  2. Under Agents, turn on Slack Model Context Protocol (MCP) Server.
  3. Add the user scopes for the tools you want, and the redirect URL your client uses.
  4. Install it in your workspace.
  5. Give your client the URL, your app's client ID, and its secret or PKCE.

For an agent you build, Slack's sample signs the user in and passes their token to the model's MCP tool as a bearer token.

Where Slack's server stops

  • Approved clients only. Without a partner plugin, you need a Slack app and the right redirect URL, and some clients still fail to sign in.
  • Admin approval. Slack says "App approval is always required in Enterprise organizations".
  • One workspace per connection, and the limits on what the agent may do live in each client's settings, if it has any.
  • Your data stays under Slack's terms. For the search API, Slack's API terms forbid "persistent copies, archives, indexes, or long-term data stores of other organizations' API Data".

If your client is on Slack's list and your admin approves it, use Slack's server. It's the only one with full search, canvases, lists and scheduled messages.

Slack MCP servers compared

Slack's server Upsy korotovsky/slack-mcp-server
Who runs it Slack Upsy You, on your machine or server
Sign-in OAuth, through a listed or internal Slack app OAuth, no Slack app or token to set up A user token, a bot token, or browser session tokens you copy out
Clients Partner clients, or any with your own app Any client with remote MCP and OAuth Any client that runs a local server
Search Yes Not yet Yes, with a user or browser token
Canvases, lists, scheduling Yes No No
Workspaces One per connection Up to 5 in one server One per running server
Limits per agent In each client's settings Read-only or picked tools, held by Upsy Posting off until you turn it on
Record of actions Slack's audit logs, on Enterprise History and alerts Your own logs

Self-hosted servers

  • korotovsky/slack-mcp-server is the popular one: about 1,900 stars, with search, DMs, unread messages and saved items. It runs with npx -y slack-mcp-server@latest --transport stdio or in Docker. Posting stays off until you set SLACK_MCP_ADD_MESSAGE_TOOL. Its "stealth mode" uses the xoxc and xoxd tokens from a signed-in browser, which Slack doesn't document for other apps.
  • The original reference server, @modelcontextprotocol/server-slack, is archived and its npm package deprecated. Zencoder's fork continues it with a bot token, but has had one release.
  • "Slack MCP client" usually means the other direction: a Slack bot that uses MCP servers, such as tuannvm/slack-mcp-client, now archived.

Slackbot as an MCP client

Since June 2026, Slackbot can use other apps' MCP servers (Slack's docs). A Slack app declares its servers, and once it's installed, people ask Slackbot to use them. You can't paste a server address into Slackbot; it comes from an installed app, a Marketplace one or your own internal app. Each person can have up to 5 active servers.

Upsy's Slack MCP server

Upsy connects through its own Slack app with a user token, so the agent acts as you, and no bot joins your channels. It's the same address as Upsy's other apps, https://upsy.ai/connect, so one server can hold your Slack, Gmail, Calendar, Drive and more.

What it adds:

  • Any client: Claude, Claude Code, Cursor, Codex, ChatGPT, Grok, Muse, or anything with remote MCP and OAuth. No Slack app or client ID of your own.
  • Up to five Slack workspaces, each with its own access.
  • Limits Upsy enforces: Full access, Read-only, picked tools or No access, per agent. They hold whatever the client does.
  • History and alerts: every read and send, under the agent that made it.

Where it falls short: Upsy's Slack app isn't in the Slack Marketplace yet, so Slack doesn't let it search, and it reads a channel or thread about once a minute, 15 messages at a time (Slack's limits). If your workspace requires approval for apps, an admin approves Upsy too.

Connect Slack to Upsy

  1. Go to upsy.ai and click Set up Upsy.
  2. Open Apps, click Connect an app and pick Slack. Pick the workspace on Slack's page and allow Upsy to act as you. Repeat for each workspace, up to five.
  3. On the Assistants page, click Add assistant and choose your client under Which assistant? for its exact steps.

Add the server to your client

Signing in opens an Upsy page: tick Slack, keep full access or pick Read-only, and click Allow.

  • Claude Code: claude mcp add --transport http --scope user upsy https://upsy.ai/connect, then /mcp to sign in.
  • Cursor: add {"mcpServers":{"upsy":{"url":"https://upsy.ai/connect"}}} to ~/.cursor/mcp.json, then click Connect next to upsy.
  • Codex: codex mcp add upsy --url https://upsy.ai/connect, then codex mcp login upsy.
  • Claude and ChatGPT: add https://upsy.ai/connect as a custom connector (Claude, ChatGPT).
  • Grok and Muse: paste the setup prompt Upsy shows into a chat and approve the sign-in.

Server details, such as OAuth endpoints and token lifetimes, are in the Gmail MCP server guide; they're the same for Slack.

Check that it works

Using Upsy, show the last 10 messages in #general.

The agent should call slack_read_channel and list the messages with authors and times. The call shows in Upsy's History.

Upsy's Slack tools

Tool What it does In Read-only
slack_list_channels The channels, group DMs and DMs you're in Yes
slack_search_channels Finds channels by name, with topic and member count Yes
slack_search_users Finds people by name, display name or email Yes
slack_read_user_profile Someone's name, title, email, time zone and status Yes
slack_read_channel A channel's or DM's messages, newest first, filtered by time Yes
slack_read_thread A thread, from its first message Yes
slack_send_message Posts as you to a channel, a DM or a thread No

slack_search_messages is offered once Upsy is in the Marketplace. Names match Slack's server where both have the tool. With more than one workspace, each tool takes account.

Troubleshooting

"Incompatible auth server: does not support dynamic client registration"

The client tried to register itself with Slack's server, which Slack refuses. Use the client's Slack plugin (in Claude Code, claude mcp remove slack, then /plugin install slack@claude-plugins-official), or give the client your own Slack app's client ID. Codex shows the same problem as "Dynamic client registration not supported".

"Invalid client_id parameter" or "redirect_uri did not match any configured URIs"

The client ID isn't a Slack app with MCP turned on, or the app doesn't list the client's callback address. Claude Code's is http://localhost:3118/callback, and some users can't get Slack to accept it with their own app (issue #29934). Slack's plugin avoids this.

{"code":-32001,"message":"missing_token"}

The client reached Slack's server without signing in. Start the sign-in again: /mcp in Claude Code, or reconnect the plugin.

Slack asks you to request approval

Your workspace requires approval for apps. Send the request; once a workspace admin approves it, sign in again. This applies to Slack's partner apps and to Upsy alike.

An old /sse address stopped working

Slack's server has no SSE endpoint. Use https://mcp.slack.com/mcp.

Upsy can't search Slack

Expected until Upsy is in the Slack Marketplace. Name the channel, such as "in #backend", so the agent reads it instead.

"Slack is limiting how often Upsy can read messages"

Slack's limit for unlisted apps. Wait the seconds the message gives, and point the agent at one channel or thread at a time.

Security and privacy

  • Every option acts as you. Slack's server and Upsy use a user token, so the agent sees only what you can see, and messages come from you.
  • Slack's server keeps limits in each client: Claude, for one, lets you set each tool to Always allow, Needs approval or Blocked. On Enterprise plans, Slack's audit logs record each MCP tool call.
  • Self-hosted servers hold your token on your machine. Browser session tokens act with your full account, so keep posting off unless you need it.
  • Through Upsy, agents never get the Slack token: they call Upsy, and Upsy calls Slack. With Read-only, slack_send_message isn't listed and can't be called. Every call is in History, and Upsy emails you when one agent sends 20 or more messages in 10 minutes. Disconnecting Slack in Upsy revokes the token with Slack.
  • Prompt injection. A message in a channel can carry instructions aimed at your agent. Keep sends confirmed, or give agents that read busy channels Read-only.

FAQ

What is the Slack MCP server URL?

Slack's official server is https://mcp.slack.com/mcp, over Streamable HTTP with OAuth. Upsy's is https://upsy.ai/connect.

Is there an official Slack MCP server?

Yes. Slack runs it at mcp.slack.com, generally available since February 2026. It works through Slack's partner clients, or through a Slack app of your own, and a workspace admin approves it.

Which clients work with Slack's MCP server?

Slack's developer docs name Claude, Claude Code, Cursor and Perplexity. Its help center adds ChatGPT and others. Any other client needs your own internal Slack app.

Does Slack's MCP server work with Codex?

Through the Slack plugin in the ChatGPT desktop app or Codex CLI, yes. Adding the address by hand fails sign-in, because Codex expects dynamic client registration. Upsy works with codex mcp add.

Can a Slack MCP server send messages as me?

Yes. Slack's server, Upsy and korotovsky's server with a user token all post as you. korotovsky's keeps posting off until you turn it on, and Upsy's Read-only removes it.

Is the Slack MCP server free?

Slack doesn't charge for it, but your client may need a paid plan: Claude's Slack connector isn't on Claude's Free plan, for example. Upsy is free for personal use.

What tools does the Slack MCP server have?

27 today: search across public and private conversations, reading channels, threads, canvases, files and lists, sending, scheduling and drafting messages, reactions, and creating canvases and lists. The full list is in its tools.

Playbooks for these apps

Related guides