Skip to content

Codex provider does not expose account-backed Apps/connectors in BB threads #2429

Description

@rohit-simile

Summary

BB Codex threads launched through codex app-server do not receive account-backed Codex Apps/connectors. Ordinary locally configured MCP servers load, but Slack installed as a Codex app/plugin is absent.

This makes a BB Codex thread materially different from a Codex-hosted thread using the same account and machine: the latter can receive Slack tools, while the BB thread cannot discover them.

Environment

  • BB: 0.39.0
  • Codex CLI/app-server: 0.149.1
  • Host: Ubuntu Linux x86_64
  • BB provider: Codex (codex app-server bridge)
  • Authentication: same ChatGPT/Codex account and same CODEX_HOME

Reproduction

  1. Install/enable an app-backed Slack integration in Codex.
  2. Start a new BB thread using the Codex provider.
  3. Ask the thread to inspect or use Slack tools.
  4. The thread reports that Slack is unavailable, while ordinary MCPs such as Datadog and Notion are exposed.
  5. Against a standalone app-server launched the same way as BB, initialize with experimental APIs and call:
{"jsonrpc":"2.0","id":2,"method":"app/list","params":{"forceRefetch":true}}
{"jsonrpc":"2.0","id":3,"method":"app/installed","params":{"forceRefresh":true}}

Observed responses:

{"id":2,"result":{"data":[],"nextCursor":null}}
{"id":3,"result":{"apps":[]}}

The plugin manifest and local cache can contain the Slack .app.json declaration, but the hosted connector runtime snapshot is still empty.

Expected behavior

BB should either:

  1. expose account-backed Codex Apps/connectors to Codex provider threads when the underlying app-server/account supports them; or
  2. explicitly surface that hosted connectors are unavailable through this provider path, instead of allowing plugin installation to appear successful while tools remain absent.

If connector access requires additional app-server initialization, account context, client capabilities, or host-mediated RPC calls, the BB Codex bridge should negotiate and refresh that state before thread/start.

Notes

The bubblewrap warning shown during provisioning is unrelated; Codex successfully uses its bundled fallback.

Directly adding Slack as a conventional MCP is not currently an equivalent workaround: Slack rejects Codex OAuth because Slack requires a pre-registered client rather than Dynamic Client Registration.

Related upstream Codex issues:

Metadata

Metadata

Assignees

No one assigned

    Labels

    provider-codexBuilt-in plugin: provider-codexprovidersCross-provider bridges, models, login

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions