Slack MCP Server: Connect Slack to Claude, Cursor and Codex
Slack's own server lets Claude, Cursor and other AI apps search Slack, read channels and threads, and send messages as you once an admin approves it.
This is Slack's own server. It lets Claude, Cursor and other AI apps search your Slack, read channels and threads, and post, all as you. Your workspace admin has to approve the AI app first, and only Slack Marketplace or internal apps can connect. Slack's docs name no Slack plan, so ask your admin if you are unsure.
Good for
- Teams who want Claude to find past decisions and summarize threads
- Developers who want Slack context inside Claude Code or Cursor
- Managers who post updates and drafts to channels from their AI app
- Workspace admins who need audit logs and approval over AI access
Works in
4 supported · 5 with issues · 5 should work
Tap an app to see how to set it up and any known problems.
Slack's docs cover it: add Slack under Customize > Connectors, then sign in. docs.slack.dev
Slack's docs cover it: use the install button or add the URL with Slack's client ID. docs.slack.dev
Not in Slack's docs; one VS Code problem has been fixed.
Known problems
- Fixed
Agents window showed a blocking Slack error on every message
Reported Jul 2026 · GitHub
Slack's help center lists ChatGPT as a partner app; follow ChatGPT's own setup steps. slack.com
Slack's docs cover it, but several sign-in and tool issues are open.
Known problems
- Open
Slack tools vanish when both the Slack plugin and the claude.ai connector are on
Since Oct 2026 · GitHub
- Open
Send button on a Slack draft fails with a JSON error in Slack Connect channels
Since Oct 2026 · GitHub
- Open
File upload tools never appear because the plugin does not ask for file write access
Since Oct 2026 · GitHub
- Open
Connection times out in every open session except the one that last signed in
Since Aug 2026 · GitHub
- Open
Sign-in fails with a 'does not support dynamic client registration' error
Workaround: Remove any manual Slack entry (claude mcp remove slack) and reinstall via claude plugin install slack.
Since Mar 2026 · GitHub
Slack's docs cover it, but sign-in fails unless Codex accepts a fixed client ID.
Known problems
- Open
Login fails with 'Dynamic client registration not supported' unless a client ID is set
Workaround: A commenter says Codex 0.142.0+ accepts a pre-registered client_id; the redirect URI must match the Slack app.
Since Mar 2026 · GitHub
Not in Slack's docs; users report sign-in asks for every Slack scope.
Known problems
- Open
Sign-in asks for every Slack scope, including posting, even when only read tools are on
Since Sep 2026 · GitHub
Not in Slack's docs; users report the sign-in page never opens in Copilot for IntelliJ.
Known problems
- Open
Copilot in IntelliJ never opens the Slack sign-in page and stays on 'Sign in required'
Since Oct 2026 · GitHub
Not in Slack's docs; sign-in fails if the client ID is written in snake_case.
Known problems
- Open
Writing client_id in snake_case is silently ignored, so sign-in fails with a registration error
Workaround: Use camelCase keys (clientId, callbackPort, redirectUri) in the oauth block.
Since Oct 2026 · GitHub
Supports hosted MCP servers.
Supports hosted MCP servers.
Supports hosted MCP servers.
Supports hosted MCP servers.
Supports hosted MCP servers.
Install Slack MCP
Claude Code
- 1
Copy this prompt.
Add the Slack MCP server to Claude Code. Run this command: /plugin install slack@claude-plugins-official Then check that it loaded and tell me if I need to sign in or restart.
- 2
Paste it into Claude Code. It shows the change and asks before running it.
Requires Slack admin approval, Slack workspace account.
Read-only mode: There's no read-only mode. Set your app to ask you before it sends, schedules or creates anything.
After installing, run /mcp and sign in to Slack. Use the plugin instead of adding the URL by hand, because a hand-added entry fails with a 'does not support dynamic client registration' error. If you already added one, remove it with claude mcp remove slack first. Slack only accepts apps it knows, so pasting the URL alone is not enough; these steps already include Slack's app ID.
From the vendor's docs. Source.
Tools
Searches messages in public and private channels you can see
Looks for messages across public channels and the private channels and DMs you belong to. It only returns what your own Slack account can reach.
Try: “Find messages about the vendor contract renewal”
Read ·
slack_search_public_and_privateSearches messages in public channels only
Looks for messages in public channels only. Use it when you do not want private conversations searched.
Try: “Search public channels for posts about the product launch”
Read ·
slack_search_publicFinds channels by name or topic
Looks up channels by name or description, so the assistant can get the right channel before it reads or posts.
Try: “Find the channel for the design team”
Read ·
slack_search_channelsFinds people in your workspace
Looks up people in your workspace by name or other details.
Try: “Find Priya Shah on Slack”
Read ·
slack_search_usersReads recent messages in a channel
Reads the message history of a channel you have access to, so it can be summarized or searched.
Try: “Summarize the last day of activity in #engineering”
Read ·
slack_read_channelReads all replies in a thread
Reads a message thread and all its replies, so the assistant can follow a whole discussion.
Try: “Read the thread about the vendor contract and summarize it”
Read ·
slack_read_threadShows a person's profile details
Reads a person's Slack profile, such as their title and contact details, as far as your account can see them.
Try: “What is Priya's role and time zone?”
Read ·
slack_read_user_profileLists who is in a channel
Shows the people who are members of a channel, so you can see who is involved.
Try: “Who is in #product-planning?”
Read ·
slack_list_channel_membersReads the contents of a Slack file
Reads the contents of a file that came up in a search, so the assistant can use what is inside it.
Try: “Open the Q3 roadmap file from that search and summarize it”
Read ·
slack_read_fileShows the emoji reactions on a message
Reads the emoji reactions on a message, so you can see who responded and how.
Try: “Who reacted to the launch announcement?”
Read ·
slack_get_reactionsReads a canvas document
Reads the content of a Slack canvas, which is a shared document inside Slack.
Try: “Read the onboarding canvas and list the open steps”
Read ·
slack_read_canvasSends a message as you
Posts a message to a channel, thread or DM under your name. The assistant sends it right away, so check the wording first.
Try: “Send a message to #general saying the deployment is complete”
Write ·
slack_send_messageSaves a message as a draft in Slack
Creates a draft in Slack that you can review and send yourself. It is a safer way to prepare announcements.
Try: “Draft an announcement for #general about Friday's release”
Write ·
slack_send_message_draftSchedules a message to send later
Sets a message to post at a later time, from 2 minutes to 120 days ahead, under your name.
Try: “Schedule a reminder in #team for Monday at 9am”
Write ·
slack_schedule_messageAdds an emoji reaction to a message
Adds an emoji reaction to a message as you. It is handy for quick acknowledgments instead of a full reply.
Try: “React with a thumbs up to the last message in #releases”
Write ·
slack_add_reactionCreates a new canvas document
Creates a new Slack canvas, a shared document, with the content you ask for.
Try: “Create a canvas with the meeting notes from today's standup”
Write ·
slack_create_canvasEdits an existing canvas
Changes the content of a canvas that already exists, so it can add to or revise a shared document.
Try: “Add the action items to the project kickoff canvas”
Write ·
slack_update_canvasStarts a file upload to Slack
Gets a secure upload link and file ID, which is the first of two steps to upload a file. The file is not visible until the second step is done.
Try: “Upload this report to Slack”
Write ·
slack_get_file_upload_urlFinishes a file upload and can share it
Finishes the upload so the file becomes visible, and can share it to a channel with a message.
Try: “Share the uploaded report in #finance with a short note”
Write ·
slack_complete_file_upload
From the official docs
Pros and cons
Good
- It is Slack's own server, so Slack maintains it.
- Admins control which AI apps connect and can audit activity.
- Search works across messages, files, people and channels.
- It can also draft and schedule messages, and create canvases.
- Claude, Cursor and Perplexity are listed as partner apps.
Watch out
- A workspace admin has to approve the AI app first.
- Only Marketplace or internal Slack apps can use it.
- No read-only mode is documented.
- Sign-in fails in many generic AI apps without a Slack client ID.
Permissions
medium risk · 5 things to watch
Medium risk
It acts as you, so anything it sends, creates or reacts to appears under your name, and Slack documents no read-only mode. Only approve it for people you trust to review what the AI posts, and check what your AI app asks before it sends.
What it can do
- Read your data
- Create and change things
- Delete things
- Read-only mode
Watch out for
It posts and creates things as you
Messages, canvases, reactions and new channels appear under your name, in any conversation you can reach. Review drafts before the AI sends them. docs.slack.dev
Read-only setup may not hold
One user set up an internal app with read-only scopes and Slack still granted all 31 requested scopes, including writes. Do not rely on scopes alone to keep it read-only. github.com
Private channels and DMs are in reach
Search covers private channels, DMs and group DMs with your consent, so the AI can read what you can. Keep sensitive chats in mind when you ask broad questions. docs.slack.dev
Admin approval and audit logs
Admins approve each AI app and can audit MCP activity in audit logs. IP allowlists on the app also apply. docs.slack.dev
Mixing servers mixes risks
Slack warns that connecting several MCP servers together can mix their security and stability traits. docs.slack.dev
Security advisories
No published security advisories as of Nov 1, 2026.
Technical details
| Turning on read-only | Slack documents no read-only mode. Tools are gated by user-token scopes, but one user reports Slack granted write scopes even to an app set up with read-only scopes, so a scoped app is not a reliable read-only option. |
|---|---|
| Talks to | mcp.slack.com |
| Sign-in and keys | Confidential OAuth with the client app's client ID and secret; user-token endpoints oauth/v2_user/authorize and oauth.v2.user.access. |
| Scopes |
|
Alternatives
Use Slack's server if your admin will approve it, since it is official and has audit logs. Pick korotovsky if you cannot get admin approval, but its browser tokens act as your login and are riskier than an approved app.
| Server | Official | Runs | Sign-in | Can change things | Stars |
|---|---|---|---|---|---|
| Slack MCPThis page | Official | Hosted | Account | Yes | – |
| korotovsky | Community | Local | Token | – | 1.9K |
| ubie-oss | Community | Local | Token | – | 110 |
What people say
Most complaints are about missing controls, like a footer you cannot turn off and no mark-as-read, and about sign-in failing in many AI apps.
Common complaints
- Messages it sends carry a 'Sent using Claude' footer that cannot be turned off.
- It cannot mark channels as read, so unread badges stay after triage.
- There is no reminder tool, so a Slack to-do ends up as a DM to yourself.
- Many generic AI apps fail to sign in because Slack does not support dynamic client registration.
In their words
“Messages sent via the Slack MCP server include a "Sent using Claude" footer that cannot be disabled.”demisxGitHub issueSep 2026
“So an app configured read-only ends up with a token that can post as the user, permanently.”nberger1GitHub issueOct 2026
“The connector lets the agent read, search, and summarize. It cannot change my read state.”liambresnahan
Questions
Can it post as me?
Yes. With the right permissions it sends, schedules and drafts messages, adds reactions, and creates channels and canvases, all under your name. Review what your AI app plans to send before you let it go.
Do I need my Slack admin?
Yes. A workspace admin approves each AI app through Slack's normal app approval process. Without that, the sign-in will not work.
Which Slack plan do I need?
Slack's docs do not name a plan. Slack says availability can depend on rollout and your licence, so ask your admin. Claude's Slack connector needs a Claude Team or Enterprise plan.
Is there a read-only mode?
No. Slack documents none, and one user reports Slack granted write permissions to an app set up as read-only. Treat it as able to post.
What is the Slack MCP server URL?
It is https://mcp.slack.com/mcp. Most AI apps need Slack's own client ID too, so use the steps in the install box.
Why does sign-in say dynamic client registration is not supported?
Slack needs a registered Slack app client ID and does not allow apps to register themselves on the fly. Use the AI app's official Slack plugin, or set a client ID in its config.
Can I connect my own app to it?
Only if the app is published in the Slack Marketplace or is internal to your workspace. Unlisted apps cannot use it.
Why are file upload tools missing in Claude Code?
The Slack plugin's sign-in does not ask for file write access, so Slack hides the upload tools. A fix is proposed but not merged.
What are the rate limits?
They match Slack's Web API for each action. Searching people or channels allows at least 20 calls a minute, and reading files or profiles at least 100.
How do I add it to Claude?
Use the install box above. Claude Desktop and claude.ai add it under Customize > Connectors, and Claude Code uses the Slack plugin.
Examples
Search recent discussion on a topic
Search for messages about the product launch from the last week
SourcePost a status update to a channel
Send a message to #general saying the deployment is complete
SourceSummarize a channel
Summarize the last day of activity in #engineering
SourceFind a past decision
What did the team decide about the launch date in #product-planning last week?
SourceSummarize a contract thread
Find the thread about the vendor contract renewal and summarize it
Source
Information
updated Nov 1, 2026
- Publisher
- Official
- Endpoint
https://mcp.slack.com/mcp- Transport
- Streamable HTTP
- Auth
- OAuth
DocsClaude connectors directoryConnect to ClaudeChangelogSlack Help Center guide
Other Slack MCP servers
Sources
Docs, issue trackers and discussions this page is built from. Issues, quotes and findings above link to their own source.
Show all 19Hide
- Connect to Claude · docs.slack.dev
- Slack integration - Claude.ai Documentation · claude.com
- Connecting the Slack MCP server to agent harnesses · docs.slack.dev
- Connect to Cursor · docs.slack.dev
- Slack MCP server overview · docs.slack.dev
- claude.com · claude.com
- slackapi/slack-skills-plugin · github.com
- github.com · github.com
- docs.slack.dev · docs.slack.dev
- Slack Feature Drop: Better Connections for Every Kind of Work · slack.com
- Built-in Slack MCP integration requests full scope superset even when only read tools are exposed · github.com
- Claude Code plugin never gets files:write, so the file upload tools are missing · github.com
- Guide to Model Context Protocol in Slack · slack.com
- Feature: Add option to disable 'Sent using Claude' message footer · github.com
- Slack connector: add mark-as-read · github.com
- Feature: slack_create_reminder tool so agents can add Slack To-dos · github.com
- codex mcp login fails for Slack official MCP with Dynamic client registration not supported · github.com
- korotovsky/slack-mcp-server · github.com
- ubie-oss/slack-mcp-server · github.com