How to connect Slack to Cursor: Slack MCP setup

Give Cursor's agent your Slack: read channels and threads, find people and post updates as you, with Slack's plugin or Upsy, and no Slack app to build.

Updated

Short answer

Type /add-plugin slack in Cursor's Agent chat to install Slack's own plugin, then sign in to your workspace. It needs a Slack admin's approval and gives full search. To use several workspaces, have read-only enforced, or share one Slack connection with your other assistants, connect Slack in Upsy and add https://upsy.ai/connect to ~/.cursor/mcp.json. Either takes a few minutes, and neither has you create a Slack app or paste a token.

Not to be confused with @Cursor in Slack, which works the other way: you mention Cursor in a Slack thread to start a Cloud Agent on your code.

The built-in way: Slack's plugin

Slack publishes an official plugin in the Cursor Marketplace. It connects Cursor to Slack's MCP server at https://mcp.slack.com/mcp and adds skills and commands such as channel digests, standups and announcement drafts (Slack's docs). Install it one of two ways:

  • Type /add-plugin slack in Agent chat.
  • Open Customize, find Slack in the Marketplace, click Install and pick your user or the project.

Cursor asks you to sign in to Slack the first time a Slack tool runs. The plugin's server works in the editor, the Agent Window and the CLI. Its tools search messages, files, people and channels, read channels and threads, send, schedule and draft messages, and work with canvases and lists (Slack MCP server).

What to know before you rely on it:

  • Admin approval. Your workspace admin has to approve Slack's MCP integration. "Not authorized to install" in the sign-in means it's waiting for that (Cursor forum).
  • Only listed apps. Slack lets only Marketplace apps and a company's internal apps use its server, without dynamic client registration. The plugin carries a Slack client ID for this, so adding mcp.slack.com to mcp.json by hand doesn't sign in.
  • Nightly builds. Cursor Nightly can't complete Slack's sign-in, because of its callback address (Cursor forum).

Slack's plugin is the better fit when your admin approves it and you need full-text search, canvases, lists or scheduled messages. Upsy can't do those today.

@Cursor in Slack

Cursor's Slack integration lets your team mention @Cursor in a channel or thread. Cursor reads the thread, starts a Cloud Agent on your repo and posts back a plan and a pull request. It needs a Premium plan or higher, Teams, Enterprise or a legacy paid plan, and it's set up in Cursor's dashboard. It doesn't give the agent in your editor access to Slack. For that, you need one of the MCP servers on this page.

Community servers

slack-mcp-server runs on your machine with a Slack user token, a bot token, or session tokens copied out of your browser. Posting is off until you turn it on with SLACK_MCP_ADD_MESSAGE_TOOL. Slack's older reference server, @modelcontextprotocol/server-slack, is archived.

How Upsy's Slack is different

Upsy connects through its own Slack app and Slack's Web API, with a user token, so it acts as you and no bot joins your channels. Its app isn't in the Slack Marketplace yet, which has two effects:

  • No search yet. Slack's search API is only for Marketplace apps. Upsy offers slack_search_messages once it's listed; until then Cursor finds messages by reading the channels and threads you name.
  • Reading is rate-limited. Slack lets unlisted apps read a channel's or thread's history about once a minute, 15 messages at a time (Slack's changelog).

What it adds: up to five Slack workspaces in one server, Read-only or hand-picked tools enforced by Upsy, a history of every message Cursor sent, alerts, and the same Slack in the Cursor CLI, Claude Code, Codex, Claude and ChatGPT, next to Gmail and your other apps. The Cursor hub covers what else it holds.

What you need

  • Cursor, on any plan.
  • A free Upsy account.
  • A Slack workspace where you can install apps. If your workspace requires approval for apps, an admin approves Upsy too.

Connect Slack to Cursor

  1. Go to upsy.ai and click Set up Upsy to create a free account.

  2. Open Apps and choose Slack. On Slack's permission page, pick the workspace and allow Upsy to act as you. Connect Slack again for each other workspace, up to five.

  3. Optional: on the Assistants page, click Add assistant and pick Cursor under Which assistant? to see these steps with the snippet to copy.

  4. Add Upsy to ~/.cursor/mcp.json (create the file if it isn't there):

    {"mcpServers":{"upsy":{"url":"https://upsy.ai/connect"}}}
    
  5. In Cursor, open Customize › MCPs and click Connect next to upsy. Your browser opens an Upsy page.

  6. Sign in, tick Slack, keep full access or switch it to Read-only, and click Allow.

Already use Upsy in Cursor? Skip steps 4 and 5. Turn Slack on for Cursor on Upsy's Assistants page, then turn upsy off and on in Customize so Cursor loads the new tools.

Check that it works

Ask Cursor's agent:

Use upsy to show the last 10 messages in #general.

Cursor asks to run slack_read_channel from upsy, then shows the messages with authors, times and reply counts. The tools take a channel name like #general, a channel ID, or a person's user ID for your DM with them.

What Cursor can do with Slack

Tool What it does In Read-only
slack_list_channels Channels, group DMs and DMs you're in Yes
slack_search_channels Channels by name, with topic and member count Yes
slack_search_users 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, between oldest and latest Yes
slack_read_thread A whole thread, from its first message Yes
slack_search_messages Full search, once Upsy is in the Slack Marketplace Yes
slack_send_message Posts as you to a channel, DM or thread; reply_broadcast also shows a reply in the channel No

The names match Slack's own server where both have the tool. Messages use Slack's mrkdwn: *bold*, and <@U123> to mention someone.

On Upsy's Assistants page, Cursor gets Full access, Read-only (everything except sending), Pick actions or No access to Slack. With more than one workspace, each tool takes an account argument.

To let Cursor read without asking but still ask before it posts, allowlist the reading tools in ~/.cursor/permissions.json (permissions):

{ "mcpAllowlist": ["upsy:slack_read_*", "upsy:slack_search_*", "upsy:slack_list_channels"] }

Prompts to try

  • "Read the thread at this Slack link and fix the bug it describes. Then reply in the thread with the PR link."
  • "Summarize what changed on this branch and post it to #releases. Show me the text first."
  • "Read the last hour of #incidents and check whether anyone mentioned the payments service or the files I have open."
  • "Find Ada in Slack and DM her that the staging deploy is done."
  • "Turn the action items in my thread with Sam into TODO comments where they belong in the code."

Troubleshooting

Cursor can't search Slack

Expected for now: Upsy offers search once it's in the Slack Marketplace. Name the channel ("in #backend") so Cursor reads it instead, or install Slack's plugin for search.

"Slack is limiting how often Upsy can read messages"

The message says how many seconds to wait. It's Slack's limit for unlisted apps. Wait, and point Cursor at one channel or thread at a time.

"Channel not found, or the user can't see it"

The name is wrong, or it's a private channel you're not in. Ask Cursor to find it with slack_search_channels first.

Slack's plugin fails with "Must use PKCE"

An older Cursor bug. Update Cursor, run Clear All MCP Tokens from the command palette, and sign in again (Cursor forum).

Both Slack's plugin and Upsy are installed

Cursor lists their tools under separate servers. Say "use upsy" or "use the Slack plugin" in your prompt, or turn one off in Customize.

Security and privacy

  • Upsy holds a Slack user token, so Cursor sees only what you can see in Slack. Cursor never receives the token.
  • With Read-only, slack_send_message isn't listed and can't be called, whatever Cursor's run mode is.
  • Every message Cursor reads or sends is in Upsy's History under Cursor. Upsy emails you if one assistant sends 20 or more messages within 10 minutes, and when a new assistant or app connects.
  • One click on the Assistants page turns Cursor off. Disconnecting Slack in Upsy revokes the token with Slack.

FAQ

Is there an official Slack MCP server for Cursor?

Yes. Slack's plugin in the Cursor Marketplace connects Cursor to Slack's MCP server. Install it with /add-plugin slack; a workspace admin has to approve it.

Is @Cursor in Slack the same as Slack MCP?

No. @Cursor in Slack starts a Cloud Agent from a Slack thread. Slack MCP gives Cursor's agent tools to read and post in Slack while you work in the editor.

Can Cursor post to Slack as me?

Yes. Upsy's slack_send_message posts as you, not as a bot. Slack's own plugin also posts as you.

Does Slack work in the Cursor CLI?

Yes. The CLI reads the same mcp.json. Run agent mcp login upsy once to sign in from the terminal.

Can I connect two Slack workspaces to Cursor?

With Upsy, yes: connect up to five and allow each for Cursor. Slack's plugin signs in to one workspace.

Playbooks for these apps

Related guides