Several Slack workspaces reaching OpenAI Codex through a single MCP server

How to Connect Multiple Slack Workspaces to Codex

Two very different questions hide behind this one, and mixing them up wastes an afternoon. Codex has an official Slack integration, but it exists to launch coding tasks from a channel, not to read Slack as a data source. Which multi-workspace problem you have decides which half of this guide you need. Carly holds your Gmail and Outlook mailboxes and every calendar on both sides in the same place.

The two questions

“I want to summon Codex from more than one Slack.” That is the official app, and it scales by installing it in each workspace.

“I want Codex to read and act across several Slack workspaces.” The official app does not do that in any workspace, so the count is beside the point. This runs through MCP.

What the official Slack app actually does

Mention @Codex in a channel or thread and it reads the surrounding messages for context, kicks off a cloud coding task against your connected GitHub repo, and replies with a link to the result. Triage a bug in a channel, get a pull request, without leaving Slack.

The prerequisites tell you who it is for: a Plus, Pro, Business, Edu, or Enterprise plan, a connected GitHub account, and at least one configured environment. Without a repo and an environment there is nothing for it to do.

To use it in a second workspace, install the Codex Slack app there as well from Codex settings. A Slack admin may need to approve the install, and on a client’s workspace that approval is not yours to give.

What it will not do, in any workspace: triage messages, route a request to the right person, follow up on a thread, or watch a channel. Those are not limitations of the one-workspace case. They are simply outside what the integration is for.

For reading and acting across workspaces: one MCP server

Codex reaches non-development apps through the Model Context Protocol. You could register a Slack MCP server per workspace, and then you maintain three server entries, three OAuth apps, and no vocabulary in the prompt for saying which workspace you mean, so the agent uses whichever loaded first.

Carly inverts that. Each workspace is authorized once inside Carly, and Codex sees a single server that addresses any of them by name. Adding a fourth workspace changes nothing in config.toml.

1. Give each workspace a role

WorkspaceRole
Your companyCompany
Client delivery SlackClient
Industry communityCommunity

2. Connect every workspace to Carly

  1. Sign in at carlyassistant.com.
  2. Open carlyassistant.com/integrations.
  3. Find Slack and click Connect.
  4. Authorize the first workspace.
  5. Repeat for each additional workspace, selecting the right one in Slack’s authorization screen.
  6. Verify which workspace each connection landed in before adding the next.

On a client workspace where you are not an admin, their Slack administrator approves the install.

3. Register Carly as an MCP server

codex mcp add carly --url https://carlyassistant.com/mcp/

Servers added this way land in ~/.codex/config.toml at user scope. The manual entry is equivalent:

[mcp_servers.carly]
url = "https://carlyassistant.com/mcp/"

Then authenticate:

codex mcp login carly

Complete the OAuth flow in the browser, signing in to the Carly workspace holding the Slack connections. Confirm the server is live:

codex mcp list

4. Test each workspace read-only

Start a new session so the tools load, then take one workspace per prompt:

In the Company workspace, summarize what happened in #engineering this week. Do not post anything.

In the Client workspace, find the most recent message about the release date and tell me who said it. Read only.

Then the cross-workspace question:

Search the Company and Client workspaces for messages mentioning “rollback” in the last 14 days. Show the source workspace in every row.

If the tools are missing, start a fresh session. Codex loads a newly installed server’s tools at session start, not mid-session.

5. Reuse this routing prompt

Treat my employer’s Slack as Company, the delivery Slack as Client, and the industry Slack as Community. Always state the target workspace before posting, uploading, or replying. Wait for approval on anything that writes.

Then name the target per action:

Post the deploy summary in the Company workspace, in #releases, and nowhere else.

Be deliberate about this one. A message sent to the wrong workspace is visible to the wrong company immediately and cannot be quietly undone, and a coding agent posting build output into a client channel is a specific kind of bad afternoon.

The official app versus Carly in Codex

NeedCodex Slack appCarly MCP server
Launch a coding task from a channelYesNo
Read channels as a data sourceFor task context onlyYes
Reach several workspacesInstall per workspaceOne server, all workspaces
Route or follow up on messagesNoYes
Act when a message arrivesNoYes
Requires GitHub and an environmentYesNo
Keep the work running outside CodexNoYes

These are complements rather than competitors. Keep the Codex Slack app for what it is genuinely good at, which is turning a bug thread into a pull request. Use one MCP server for the Slack work that is not about code.

Free Zapier-style workflows; AI agents from $35/month. Connect it on the integrations page, or start with Slack.

Quick fixes

ProblemFix
Tools do not show upStart a new Codex session after adding the server
codex mcp login never completesFinish the browser OAuth flow, then rerun codex mcp list
@Codex does nothing in a channelConfirm a connected GitHub account and a configured environment
The Slack app will not installA Slack admin in that workspace approves it
Posts land in the wrong workspaceName the workspace and require confirmation before writes

Frequently asked questions

Can Codex connect to more than one Slack workspace?

For launching coding tasks, install the Codex Slack app in each workspace. For reading and acting across workspaces, use one MCP server that holds all of them, because the official app does not read Slack as a data source.

Does the Codex Slack app manage messages?

No. It exists to start cloud coding tasks against your GitHub repo from a channel. Triage, routing, and follow-up are outside what it does.

What does the Codex Slack app require?

A Plus, Pro, Business, Edu, or Enterprise plan, a connected GitHub account, at least one configured environment, and a Slack admin’s approval to install.

Should I use Codex for Slack operations work?

Codex is a coding agent, and its integrations assume repos and environments. Channel triage and follow-up belong in a workflow that runs without a session open.


Related: Codex + Slack · Multiple Slack workspaces in ChatGPT Work · Multiple Slack workspaces in Claude · Multiple Gmail accounts in Codex · What is MCP

Ready to automate your busywork?

Carly schedules, researches, and briefs you—so you can focus on what matters.

See what people say

"Before Carly, I relied on a Calendly link, but the whole process felt impersonal and not very professional. Carly changed that by handling all the back-and-forth, so I'm no longer stuck in endless email threads trying to line up schedules.

Now Carly reaches out to candidates, shares my real-time availability, lets them pick a slot, then sends a Zoom link and drops it straight into my calendar. She sends reminders to both of us before each call, which has significantly reduced no-shows and last-minute confusion.

On top of scheduling, Carly acts like a full executive assistant, sending me my schedule the night before so I can prepare for each call. It reminds me of the old x.ai assistant, but Carly is noticeably smarter, faster, and better suited to my healthcare recruitment business."

Gus Ibrahim, Founder & Director, IHR