How to connect Slack to Codex: Slack MCP setup

Let Codex read Slack channels and threads, find people and post as you, from the CLI, IDE extension or desktop app, with no Slack app to build.

Updated

Short answer

In the ChatGPT desktop app or the Codex CLI, install the Slack plugin (Plugins, or /plugins in the CLI) and sign in to your workspace. It's OpenAI's plugin on Slack's own MCP server, and a Slack admin has to approve it. It doesn't work in the IDE extension or with an API key. For Slack in every Codex surface, several workspaces or read-only access, connect Slack in Upsy and run codex mcp add upsy --url https://upsy.ai/connect. Neither has you build a Slack app or paste a token.

The built-in way: the Slack plugin

Codex shares ChatGPT's plugin catalog, and Slack is in it (plugins docs). The plugin connects to Slack's MCP server at https://mcp.slack.com/mcp, so Codex can search Slack, read channels and threads, and send messages. To install it:

  1. In the ChatGPT desktop app, open the Plugins tab in Codex, or type /plugins in the CLI.
  2. Open Slack, click + and connect your workspace when asked. Slack's consent screen names the app ChatGPT.
  3. Start a new chat or session so Codex loads the tools.

If you connected Slack in ChatGPT already, it's the same connection. What to know:

  • Where it works. The desktop app and the CLI, signed in with ChatGPT. Not the IDE extension, and not with an API key.
  • Admin approval. Slack lets only listed apps use its MCP server, and a workspace admin approves them (Slack's docs).
  • A footer on messages. Messages Codex sends end with "Sent using @ChatGPT" (issue #54522).
  • Bugs. Some users see the Slack tools in ChatGPT but not in Codex in the desktop app (issue #33676).

Slack's own instructions don't work as written

Slack's setup page for harnesses gives codex mcp add --transport http slack https://mcp.slack.com/mcp. Codex has no --transport flag, and even with --url, the sign-in fails with "Dynamic client registration not supported", because Slack doesn't allow it (issue #13200). Slack's own plugin for Codex adds skills only, without the server.

To add Slack's server by hand, you create an internal Slack app with MCP turned on and give Codex its credentials with --oauth-client-id and --oauth-client-secret. Users report mixed results.

@ChatGPT in Slack

@ChatGPT, called @Codex until September 2026, runs the other way: mention it in a Slack thread and it hands coding work to a Codex cloud task, then replies with the result (OpenAI docs). It's for ChatGPT Business and Enterprise workspaces. It doesn't give Codex on your machine access to Slack.

How Upsy's Slack is different

Upsy connects through its own Slack app and Slack's Web API, with a user token, so Codex acts as you and no footer or bot is added. Upsy's app isn't in the Slack Marketplace yet:

  • No search yet. Slack's search API is only for Marketplace apps. Upsy offers slack_search_messages once it's listed; until then Codex reads 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: Slack in the CLI, the IDE extension and the desktop app, signed in with ChatGPT or an API key; up to five workspaces; Read-only or hand-picked tools enforced by Upsy; a history of every message; alerts; and the same Slack in Claude Code, Cursor, Claude and ChatGPT, next to Gmail and your other apps. The Codex hub covers what else it holds.

What you need

  • Codex: the CLI, the IDE extension or the ChatGPT desktop app, signed in either way.
  • 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 Codex

  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 Codex under Which assistant? to see these steps with the command to copy.

  4. In your terminal, run:

    codex mcp add upsy --url https://upsy.ai/connect
    
  5. Codex opens an Upsy page in your browser. If it doesn't, run codex mcp login upsy.

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

Already use Upsy in Codex? Skip steps 4 to 6. Turn Slack on for Codex on Upsy's Assistants page and start a new session.

Check that it works

Ask Codex:

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

Codex calls slack_read_channel and 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 Codex 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

Upsy marks the reading tools read-only, so with Codex's default approval mode, Codex reads Slack without asking and asks before it posts. To have it ask before every Slack call instead, set this in ~/.codex/config.toml:

[mcp_servers.upsy.tools.slack_read_channel]
approval_mode = "prompt"

On Upsy's Assistants page, Codex 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.

Prompts to try

  • "Read the thread at this Slack link, reproduce the bug it describes, and fix it."
  • "When the tests pass, post a two-line summary of this branch to #releases. Show me the text first."
  • "Read the last day of #support and list every error message people pasted, with the file you think it comes from."
  • "DM Ada that the migration is merged, with the PR link."
  • "Read #incidents since 9am and draft a timeline for the postmortem in INCIDENT.md."

Troubleshooting

"Dynamic client registration not supported"

You added Slack's server (mcp.slack.com) by hand. Slack doesn't let clients register themselves. Use the Slack plugin, or Upsy, instead.

Codex can't search Slack

Expected for now: Upsy offers search once it's in the Slack Marketplace. Name the channel so Codex reads it, or use the Slack 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. Point Codex 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 Codex to find it with slack_search_channels first.

The Slack tools don't show up

Start a new session after connecting: Codex loads tools when a session starts. /mcp lists what it has.

Security and privacy

  • Upsy holds a Slack user token, so Codex sees only what you can see in Slack. Codex never receives the token.
  • With Read-only, slack_send_message isn't listed and can't be called, whatever Codex's approval mode is.
  • Every message Codex reads or sends is in Upsy's History under Codex. 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 Codex off. Disconnecting Slack in Upsy revokes the token with Slack.

FAQ

Does Codex have a Slack integration?

Two. The Slack plugin gives Codex Slack tools in the desktop app and the CLI. @ChatGPT in Slack, formerly @Codex, starts Codex cloud tasks from a Slack thread.

Why does Slack's codex mcp add command fail?

Codex has no --transport flag, and Slack's server doesn't support the sign-in Codex uses by default. Use the Slack plugin or Upsy.

Can Codex post to Slack as me?

Yes. Both the Slack plugin and Upsy post as you. The plugin adds "Sent using @ChatGPT"; Upsy adds nothing.

Does Slack work in the Codex IDE extension?

Not through the plugin: the extension doesn't support plugins. Through Upsy, yes, since the extension reads the same config.toml.

Can I connect two Slack workspaces to Codex?

With Upsy, yes: connect up to five and allow each for Codex. The tools then take an account argument.

Playbooks for these apps

Related guides