Academy/Integrations/Connect your agent to ChatGPT and Codex
GuideIntermediate

Connect your agent to ChatGPT and Codex

Put your real customer conversations inside ChatGPT — or inside Codex, next to your code. The same Assistant Labs connectors, set up the OpenAI way: a custom app in developer mode, or four lines of config.toml.

AAssistantLabs Team
Academy
10 min read Updated Aug 2026

What you get

The same three Assistant Labs connectors that work with Claude are plain remote MCP servers, so OpenAI's side can use them too. What changes is not the connection — it is how much ceremony each product puts in front of it.

  • ChatGPT on the web — you build a custom app in developer mode: paste the endpoint, let ChatGPT scan the tools, publish it to your workspace. Powerful, but it is a workspace-admin activity, not a personal one.
  • Codex — the CLI, the ChatGPT desktop app and the IDE extension all read one ~/.codex/config.toml. Four lines and a login. This is the fast path, and the one to try first.
New here? The Claude guide covers the same ground with fewer moving parts, and everything it says about organizations, permissions and what the connection can actually do applies here word for word. This page assumes you have read it, or that you already know your way around MCP.

Whichever you use, the three connectors are the same:

  • Agents — conversations, contacts, channels and the agent's own knowledge.
  • Sales — groups, journeys and audiences.
  • Tasks — your task board.

Before you start

Two lists: what Assistant Labs needs from you, and what OpenAI needs. The OpenAI one is where most people discover they cannot do this on their own account.

On the Assistant Labs side

  • An agent that has had real conversations. If yours is brand new, do the 3-week playbook first — there is nothing to ask about yet.
  • An organization, with that agent in it. A connection is granted to one organization's agents. No organization, nothing to share. If you have none: Account → Organization → Create Organization, then add the agent under Assistants on the same page — creating the organization does not move existing agents into it.
  • Developer access, but only for the API-key path. Keys are part of the developer API, which is off until our team switches it on. Account → Developers → Request developer access; an admin has to ask, and the answer usually comes within a business day. Signing in needs none of this.

On the OpenAI side

  • For ChatGPT web: custom MCP apps and developer mode are a Business / Enterprise / Edu feature, still in beta. An admin or owner turns developer mode on; on Enterprise and Edu they can also delegate it to named people by role. On a personal Plus or Pro account there is no “add custom connector” to find — use Codex instead.
  • For Codex: any account with Codex. No admin, no approval, no publishing step.
OpenAI moves this UI often. Menu names below match their documentation as of August 2026. If a label has moved, the shape of the task has not: enable developer mode, create an app from an endpoint, scan its tools, publish.

Get your connect address

One address serves every MCP client — Claude, ChatGPT, Codex, or anything else that speaks the protocol. It lives inside the agent you want to share.

Open the agent → Build → Connect → “Claude (MCP)”. The page is named after Claude because that is what most people connect; the address is not Claude-specific.
Connect address
https://mcp-server-150134556021.us-central1.run.app/mcp

Now pick how the connection proves who it is. Everything below follows this one choice.

Sign in — the endpoint advertises where to authorize, so both ChatGPT and Codex can discover the login on their own, register themselves, and send you to an Assistant Labs approval screen. Nothing to copy but the address above.

API key — a static bearer token. More brittle, but it needs no browser, which makes it the right answer for a headless machine or a shared build box. Create one from the same page:

Six permissions: read conversations, read contacts, read and edit the agent, and file training suggestions. Nothing that can message a customer.
The only time it is shown. Afterwards only a hash is kept, so it cannot be read back — not by you and not by us.

Connect ChatGPT

ChatGPT calls a custom MCP server an app. You create it, ChatGPT scans it to learn what it can do, and then it goes live for your workspace.

1. Turn on developer mode

  • Enterprise / Edu: Settings → Apps → Advanced Settings, and toggle developer mode on. An admin can hand this out by role first.
  • Business: only admins and owners, and each one turns it on for themselves — it is not a workspace-wide switch. The workspace control lives in Workspace Settings → Permissions & Roles → Connected Data. You can also enable it in passing while creating the app.

2. Create the app

  • Admins and owners: Workspace settings → Apps → Create. Everyone else who has been authorised: the same Apps → Create in your own settings.
  • Paste the connect address as the MCP server endpoint, and give the app a name your colleagues will recognise — it is what shows up in the tools menu.
  • Pick the authentication mechanism (see the switch above — OAuth for sign-in, a bearer token for a key).
  • Click Scan Tools and wait. On the sign-in path the approval screen appears during the scan; approve it, and the scan finishes with the real tool list.
  • Click Create. The app lands in Workspace settings → Apps → Drafts, and shows in your own Settings → Apps with a Dev label.
The scan pauses here. Pick the agent, untick anything you would rather not share, and approve — the tool list ChatGPT ends up with is built from exactly what you ticked.
Codex and ChatGPT ask for everything; you decide. Our endpoint publishes the full list of permissions it understands, and a well-behaved client asks for all of them. That is not the same as getting them. The approval screen is where the decision is made, and messaging your customers is never pre-ticked — leave it off unless you specifically want ChatGPT sending WhatsApp under your name.

3. Publish it

Only admins and owners can publish: Workspace settings → Apps → Drafts → Publish. Read the safety warnings, especially about write actions. On Enterprise and Edu the publish dialog also offers Configure Actions (tick the individual tools the app may use) and Configure Access (which groups get it).

On Business plans, a published app cannot be edited. To change what it exposes you recreate and republish it. Worth getting the permissions right at approval time rather than discovering later that you want one more.

4. Use it in a chat

Start a chat and select the app from the tools menu, or just mention it in the prompt. You can combine it with other apps in one request — pull this week's complaints out of Assistant Labs and open a ticket somewhere else from the same message.

ChatGPT asks before actions that matter. The default is Important actions — it reads freely but stops for anything with an effect outside ChatGPT or that is hard to undo. Under Settings → Apps → Ask permission you can tighten that to Any changes or Always ask, per app or overall.

Worth doing on day one: set this connection to Any changes. Reading a thousand conversations is harmless; rewriting your agent's FAQ is not, and it applies to live customer conversations the moment it saves.

Connect Codex

Codex keeps its MCP servers in ~/.codex/config.toml, and the CLI, the ChatGPT desktop app and the IDE extension all read the same file — set it up once and every one of them has it.

Project-scoped instead: put the same table in .codex/config.toml inside a trusted project when the connection belongs to one repository rather than to you.

Add the server with auth = "oauth" — the default, and what makes codex mcp login work:

~/.codex/config.toml
# ~/.codex/config.toml [mcp_servers.assistantlabs] url = "https://mcp-server-150134556021.us-central1.run.app/mcp" auth = "oauth" tool_timeout_sec = 120

Then log in. Your browser opens on the approval screen:

Terminal
codex mcp login assistantlabs codex mcp list

Codex registers itself with our authorization server on the fly, so there is nothing to pre-register on our side. It also reads the permission list our endpoint advertises and asks for those — which is why the approval screen shows the full set, with the customer-facing ones already unticked.

If the login window never comes back: you are probably behind a fixed callback. Set mcp_oauth_callback_port (or mcp_oauth_callback_url for a remote dev box) at the top level of config.toml, and run codex mcp login again.

Point Codex at an environment variable rather than pasting the key into the file — a config file gets committed, copied and shared, and the key is a bearer credential:

~/.codex/config.toml
# ~/.codex/config.toml [mcp_servers.assistantlabs] url = "https://mcp-server-150134556021.us-central1.run.app/mcp" bearer_token_env_var = "ASSISTANTLABS_API_KEY" tool_timeout_sec = 120
Terminal
export ASSISTANTLABS_API_KEY="al_live_YOUR_KEY" codex mcp list

Codex sends it as Authorization: Bearer … on every request. There is no approval screen on this path — the key already carries its permissions, chosen when you created it.

Check it worked

codex mcp list should show assistantlabs, and inside the Codex TUI /mcp lists the active servers and their tools. Ask it to list your agents — real names coming back means the whole chain is working.

In the Codex TUI
/mcp
Why tool_timeout_sec = 120: Codex gives a tool 60 seconds by default. A question like “summarise everything from the last month” reads hundreds of conversations and can take longer than that; doubling it turns a confusing timeout into a slow answer.

If you want a prompt before anything is written, add default_tools_approval_mode = "writes" to the same table — Codex then runs read-only tools freely and asks before the rest.

What to ask it

Same tools, same questions as on the Claude side — the connector does not care who is calling it. A few that land particularly well when the assistant is sitting next to your code or your workspace:

  • “What did customers ask about this week, grouped by theme, and which of those does the agent already have an answer for?”
  • “Which conversations got no reply at all? Give me the phone numbers and one line of context each.”
  • “Read the last 100 conversations and list every question the agent got wrong. Do not change anything yet.”
  • “Customers keep asking whether we ship to Eilat. Add it to the FAQ and show me the diff.”
  • “Simulate a customer asking for a refund and show me what the agent says today.”
  • “Export last month's conversation volume by day so I can chart it.” — useful in Codex, where the answer can land straight in a file.
The connection only ever has what you granted. The tool list is built from the permissions on the connection, so a read-only connection does not merely refuse to write — the writing tools are not there at all. Training suggestions are the safe middle ground: they queue up in the Training tab for you to approve, and nothing goes live on its own.
On very large questions: answers are capped so one question cannot pull an unbounded amount of transcript — roughly 300 conversations per analysis and 200 messages per conversation. A truncated answer says so and asks you to narrow the dates, instead of quietly answering from half the data.

Sales and Tasks

Two more addresses, added exactly the same way — a second app in ChatGPT, or a second [mcp_servers.…] table in Codex. Each gets its own approval.

Sales

Connect address
https://mcp-server-150134556021.us-central1.run.app/sales/mcp

Groups, journeys and audiences. Planning and drafting are granted by default; taking a journey live is not — it sends real marketing messages and cannot be recalled, so it is a separate, deliberate tick.

Tasks

Connect address
https://mcp-server-150134556021.us-central1.run.app/tasks/mcp

Your board — reading and writing both granted by default, because nothing on a task board reaches a customer.

~/.codex/config.toml
# ~/.codex/config.toml — all three at once [mcp_servers.assistantlabs] url = "https://mcp-server-150134556021.us-central1.run.app/mcp" [mcp_servers.assistantlabs_sales] url = "https://mcp-server-150134556021.us-central1.run.app/sales/mcp" [mcp_servers.assistantlabs_tasks] url = "https://mcp-server-150134556021.us-central1.run.app/tasks/mcp"
Then run codex mcp login once per server — each approval is its own decision.

Disconnecting, and when it breaks

  • From our side, if you signed in — the connect page lists Connected apps: who is connected, what they may do, when they last used it. Disconnect takes effect on that app's very next request.
  • From our side, if you used a key — revoke it at Account → Developers → API keys. Every connection made with it dies at once.
  • From ChatGPT — remove or disable the app in Workspace settings → Apps. Do both: removing the app in ChatGPT does not revoke the approval it holds.
  • From Codex — delete the [mcp_servers.…] table, or set enabled = false to park it without losing the config.
When something is wrong
  • “No agent to connect” on the approval screen — your account reaches no agent that belongs to an organization. Back to Before you start.
  • ChatGPT asks you to reconnect after a while — a sign-in eventually expires and has to be renewed. Reconnecting is one click and changes nothing about what was approved. If it happens constantly, switch that connection to a key.
  • Scan Tools finds nothing — the endpoint answered but rejected the credential. Check you pasted the whole address including /mcp, and that the approval actually completed rather than being closed early.
  • Codex times out mid-answer — raise tool_timeout_sec, or ask a narrower question. A month of conversations is a lot of reading.
  • One particular request is refused — that permission was not ticked at approval time. Disconnect and reconnect with it on.
  • There is no “create custom app” anywhere — your ChatGPT plan does not have developer mode, or an admin has not granted it. Codex has no such gate.

Coming from the other direction? Connecting to Claude covers the same connectors with the shorter setup.

Was this helpful?