Skip to content

mcpx: front codex-connectors-mcp, for OAuth-authenticated apps without mcpx doing OAuth #1982

Closed

Description

@dezren39

Relocated from dezren39/darwin-nix#342 on 2026-10-28 (placement audit): mcpx's single source lives in developing-today/code (pkgs/mcpx); re-home tracked at #309. Original body below; issue references inside it are historical (dezren39/nix numbering).

https://github.com/wileai/codex-connectors-mcp exposes the apps connected in Codex (GitHub, Figma, ...) over MCP. Codex owns the OAuth, so credentials never pass through it or mcpx.

Set up: install the Codex CLI (not installed here today), codex login, connect apps, then add it to mcpx's config (mcpx.config.nix in this repo) as a stdio upstream: npx -y @wileai/codex-connectors-mcp@latest with CODEX_CONNECTORS_ALLOW naming the apps, and probably CODEX_CONNECTORS_MODE=compact, since mcpx's own catalogue does the discovery.

Gets authenticated services today; does not replace #253.

Acceptance criteria

  • Codex CLI installed, codex login completed, and at least one app connected in Codex
  • codex-connectors-mcp is configured as a stdio upstream in this repo's mcpx config with CODEX_CONNECTORS_ALLOW naming the connected apps (and CODEX_CONNECTORS_MODE=compact unless a reason against is recorded)
  • A call through mcpx to one connected app succeeds end-to-end, demonstrating OAuth stayed entirely on the Codex side
  • This is recorded as complementary to 🎨 Palette: Add ARIA labels to icon buttons #253 (not a replacement), per the body

Activity

  1. developing-today commented on Oct 28, 2026

    @developing-today
    Contributor
  2. dezren39 commented on Oct 28, 2026

    @dezren39
    MemberAuthor

    History carried over from dezren39/darwin-nix#342 (verbatim, oldest first):


    @dezren39 · 2026-10-27T11:12:53Z

    Intake review — fleet monitor (2026-10-27)

    Still live; externally blocked in part. Setup requires the Codex CLI and an interactive codex login, neither of which exists in this environment today — that step is Drew's (or a laptop session's), after which the mcpx config change is small.

    Related: #346 (parent tracker), #253 (mcpx's own OAuth — this issue explicitly does not replace it), #345 (the authorization-server investigation, the other end of the same question).

    Suggested approach: once the Codex login exists, treat the rest as a config-only change in mcpx.config.nix plus one end-to-end verification call.


    @dezren39 · 2026-10-28T19:47:20Z

    Triage verdict (task 2357): CONFIRMED not implemented in the repo — and blocked on a Drew-only step before a fix packet can be scoped.

    Verified at dezren39/nix main efd3161 plus a laptop probe (2026-10-28):

    • No trace of the connector on current main: git grep codex-connectors / CODEX_CONNECTORS on origin/main returns nothing, and mcpx.config.nix (the file the issue names) defines its upstreams (github, atlassian, datadog, context7, the fff family, …) with no codex-connectors-mcp stdio entry. Acceptance criteria 2 and 3 are unmet.
    • The body's premise has partly moved since filing ("install the Codex CLI (not installed here today)"): a laptop probe today finds /run/current-system/sw/bin/codex, codex-cli 0.160.0, and ~/.codex/auth.json present — so the CLI is installed and a Codex login exists. Acceptance criterion 1 is half met.
    • What is not evidenced: any app connected in Codex. ~/.codex/config.toml on the laptop shows no connector/app entries. CODEX_CONNECTORS_ALLOW must name the connected apps, and connecting an app is an OAuth consent only Drew can give in Codex — an agent cannot substitute for it, and guessing an ALLOW list would ship a config that fronts nothing.
    • 🎨 Palette: Add ARIA labels to icon buttons #253 (mcpx's own OAuth) is still OPEN, consistent with the body: this connector is a complement to 🎨 Palette: Add ARIA labels to icon buttons #253, not a replacement, and nothing here supersedes it.

    Route: no follow-up fix packet enqueued deliberately — its scope cannot be pinned until Drew (1) connects at least one app in Codex and (2) names the apps for CODEX_CONNECTORS_ALLOW. Once that exists, the remaining work is the small config slice the body describes (stdio upstream in mcpx.config.nix, CODEX_CONNECTORS_MODE=compact, one end-to-end call through mcpx). Labelling status/blocked with that blocker named here.

  3. added
    enhancementNew feature or request
    priority/lowNice to have; do when convenient
    effort/sSmall: expected under 2 hours of work
    meta/enrichedIntake review done: acceptance criteria, links, and normalized labels added
    queue/queuedHas a queued task in the Supabase agent queue
    work/assignedQueue worker lifecycle state
    queue/claimedQueue worker lifecycle state
    and removed
    queue/queuedHas a queued task in the Supabase agent queue
    on Oct 28, 2026
  4. dezren39 commented on Oct 28, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · picked up

    • Agent: queue worker (repo-worker-code), Lane A shift
    • Session / ID: queue task 2886
    • Found via: queue claim
    • Task: Triage relocated issue mcpx: front codex-connectors-mcp, for OAuth-authenticated apps without mcpx doing OAuth #1982 — dedupe against existing code issues, confirm scope against current pkgs/mcpx on main (no implementation in this triage task)
    • Expectation: effort s — done = triage verdict posted and the task routed or blocked with the exact blocker named
    • Links: queue task 2886
  5. 2 remaining items

  6. added
    user/escalatedQueue or user escalation state
    queue/blockedQueue or user escalation state
    status/blockedQueue or user escalation state
    and removed
    queue/claimedQueue worker lifecycle state
    work/assignedQueue worker lifecycle state
    on Oct 28, 2026
  7. dezren39 commented on Oct 29, 2026

    @dezren39
    MemberAuthor

    Owner direction + build record (2026-10-28)

    Drew directed in main chat: build this directly, and wire in every app he has set up in ChatGPT/Codex — checking the account first rather than assuming none were connected.

    Correction to the earlier triage verdict on this issue: the "no connected apps" finding was wrong. It read only the laptop's local ~/.codex/config.toml; the connections live on the account. Enumerating through the bridge itself (its codex_connectors tool, against the laptop's Codex login) shows 37 apps already connected: Airtable, ChatGPT Space, Codex Document Control, Context.dev, Context7, DigitalOcean, Dropbox, Engram, Exa, Firecrawl, GitHub, Gmail, Google Calendar, Google Drive, HAPI MCP Registry, Hotline, Lovable, Neon, OpenAI Platform, Parallel Search, Pets, Plugin Management, Railway, Remote Desktop Commander, Replit, Safety Settings, Search Service, Sites, Slack, Sprites, Stack Overflow For Agents, Supabase, tldraw, Todoist: To Do List & Calendar, Vercel, Walmart, Wolfram. No OAuth consent step remained for anyone — Drew had already connected them; Codex holds the OAuth, as this issue's design intended. (Cloudflare and CodeRabbit are enabled as Codex plugins but expose no connector tools through the bridge, so they are not in the list.)

    Verified end-to-end (laptop, 2026-10-28):

    • Direct mode: bridge lists 1,234 tools (91 GitHub); live call github_get_profile → "Action completed."
    • Compact mode (the configured mode): codex_connector_call → github.get_profile → "Action completed."
    • Probe caveat worth keeping: drive the bridge sequentially. Piping all JSON-RPC messages in at once races the Codex app-server warm-up and calls are rejected with "Codex app-server rejected the request" — a probe artifact, not an account problem.
    • The issue body's suggested @latest does not resolve on npm (ETARGET, verified twice). The config pins @wileai/codex-connectors-mcp@0.1.1, the current release.

    Config: PR #2068 adds the stdio upstream to .mcpx.json with CODEX_CONNECTORS_ALLOW naming all 37 apps and CODEX_CONNECTORS_MODE=compact; CODEX_CONNECTORS_WRITES stays at the bridge default (ask). JSON parses and mcpx.config.nix evaluates with the server carried through.

    Acceptance criteria: (1) met — CLI installed, login live, 37 apps connected. (2) met by PR #2068, pending merge. (3) the bridge path is proven end-to-end in both modes; the final through-mcpx leg lands when the config activates at the next NixOS switch (the deployed config renders from this file via the flake). (4) unchanged — this remains complementary to the mcpx-native OAuth effort, not a replacement.

    This issue can close when PR #2068 merges; the activation verification belongs to the switch checklist.

  8. added a commit that references this issue on Oct 29, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

effort/sSmall: expected under 2 hours of workenhancementNew feature or requestkind/enhancementmeta/enrichedIntake review done: acceptance criteria, links, and normalized labels addedpriority/lowNice to have; do when convenientqueue/blockedQueue or user escalation statestatus:done

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions