Slack MCP OAuth requests May 2026 scopes but Slack marks them unapproved, so Cursor only exposes old 14 tools

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

Official Slack MCP (https://mcp.slack.com/mcp) in Cursor only exposes the older Slack MCP tool set and does not expose Slack’s May 13, 2026 MCP tools, including Add reactions.

After clearing MCP tokens, reconnecting, restarting Cursor, and explicitly adding Slack’s full scope list in ~/.cursor/mcp.json, Cursor still shows only 14 Slack tools and no reaction/emoji/file/channel-member tools.

Key finding: Cursor does send the new scopes in the Slack OAuth URL, but Slack marks the May 2026 scopes as unapproved for the Cursor app. The final OAuth grant omits them, so Cursor only receives the old tool set.

Steps to Reproduce

  1. Configure Slack MCP in ~/.cursor/mcp.json with the official Slack MCP endpoint and Cursor client ID.

  2. Use this MCP server entry:

{
“mcpServers”: {
“slack-force-scope”: {
“type”: “http”,
“url”: “https://mcp.slack.com/mcp”,
“auth”: {
“CLIENT_ID”: “3660753192626.8903469228982”,
“scopes”: [
“search:read.public”,
“search:read.private”,
“search:read.mpim”,
“search:read.im”,
“search:read.files”,
“search:read.users”,
“chat:write”,
“channels:history”,
“groups:history”,
“mpim:history”,
“im:history”,
“canvases:read”,
“canvases:write”,
“users:read”,
“users:read.email”,
“reactions:write”,
“reactions:read”,
“emoji:read”,
“files:read”,
“channels:write”,
“groups:write”,
“im:write”,
“mpim:write”,
“channels:read”,
“groups:read”,
“mpim:read”
]
}
}
}
}

  1. Clear MCP tokens / disconnect existing Slack MCP.
  2. Connect the new slack-force-scope MCP server.
  3. Complete Slack OAuth.
  4. Inspect the available MCP tools.

Actual exposed tools remain:

  • mcp_auth
  • slack_create_canvas
  • slack_read_canvas
  • slack_read_channel
  • slack_read_thread
  • slack_read_user_profile
  • slack_schedule_message
  • slack_search_channels
  • slack_search_public
  • slack_search_public_and_private
  • slack_search_users
  • slack_send_message
  • slack_send_message_draft
  • slack_update_canvas

No reaction/emoji/files/channel-member tools appear.

Expected Behavior

After Slack OAuth with the requested May 2026 scopes, Cursor should expose the newer official Slack MCP tools documented by Slack, including Add reactions.

Expected tools/capabilities include:

  • Add reactions (reactions:write)
  • List emoji (emoji:read)
  • Read files (files:read)
  • Create conversation/channel (channels:write, groups:write, im:write, mpim:write)
  • List channel members (channels:read, groups:read, mpim:read)

Operating System

MacOS

Version Information

Cursor version: Version: 3.11.19 (Universal)
VS Code Extension API: 1.125.0
Commit: bf249e6efb5b097f23d7e21d7283429f0760b740
Date: 2026-07-12T21:39:24.175Z
Layout: IDE
Build Type: Stable
Release Track: Default
Electron: 40.10.3
Chromium: 144.0.7559.236
Node.js: 24.15.0
V8: 14.4.258.32-electron.0
xterm.js: 6.1.0-beta.256
OS: Darwin arm64 25.5.0

OS: macOS 26.5.2

For AI issues: which model did you use?

GPT-5.5 / Claude 4.6 Sonnet during investigation. This appears unrelated to model choice because the MCP tool catalog itself is missing the tools.

Additional Information

Slack’s official docs and changelog list the May 2026 Slack MCP tools and required scopes. I can provide the docs URLs in a follow-up comment if needed.

The Slack OAuth request URL includes the requested new scopes, including:
reactions:write, reactions:read, emoji:read, files:read, channels:write, groups:write, im:write, mpim:write, channels:read, groups:read, mpim:read.

However, Slack’s OAuth page classifies these as unapproved:

unapprovedScopes.userScopes =
reactions:write,reactions:read,emoji:read,files:read,channels:write,groups:write,im:write,mpim:write,channels:read,groups:read,mpim:read

and has:

requestUnapprovedScopes = false

The final approved user scope only includes the older scope set:
search:read.public,search:read.private,search:read.mpim,search:read.im,search:read.files,search:read.users,chat:write,channels:history,groups:history,mpim:history,im:history,canvases:read,canvases:write,users:read,users:read.email,identify

This seems to mean Cursor is requesting the new scopes correctly, but Slack is not granting them for the published Cursor app. Please update the Cursor Slack app approval / scope configuration so the May 2026 Slack MCP scopes are approved and included in the OAuth grant.

Does this stop you from using Cursor

No - Cursor works, but with this issue

Hey there,
This looks resolved on Slack’s side now. I set up your exact mcp.json on the latest stable (3.11.19) and connected the Slack MCP, and all the newer tools show up: reactions (slack_add_reaction, slack_get_reactions), emoji (slack_search_emojis), files (slack_read_file), and channel members (slack_list_channel_members), plus create-conversation - 19 tools total instead of the old 14. The Slack consent screen now shows the Cursor app as approved for those scopes.

Since your report was from right before this went live, the fix is almost certainly to refresh your token: in Cursor Settings → Tools & MCPs, disconnect and clear the Slack MCP tokens, then reconnect and re-approve so it picks up the newly granted scopes (Command Palette → “Cursor: Clear All MCP Tokens” also works).

If you still only see the older tools after reconnecting, your Slack workspace may require an admin to approve the Cursor app’s updated permissions for your org, so it’s worth checking with your Slack admin.

Let me know how it goes after reconnecting!

Thanks - reconnecting after our Slack admin approved the updated Cursor user scopes fixed it on our side.

Before: ~13 Slack MCP tools, no reaction support. OAuth consent still showed reactions:read / reactions:write under unapproved user scopes.

After: clear MCP tokens → reconnect → consent granted the new scopes. We now see ~19 tools, including slack_add_reaction and slack_get_reactions, and we’ve verified add/read end-to-end.

One remaining gap for our triage workflow: there’s still no slack_remove_reaction in the official Slack MCP catalog (we still use a local token fallback for remove-then-add at closeout). That looks like a Slack-side MCP limitation rather than a Cursor issue - just flagging in case others hit the same pattern.

Appreciate the help getting this unblocked.