Commit Graph

3 Commits

  • feat: make built-in MCPs first-class runtime servers (#21356)
    ## DISCLAIMER
    This is experimental and no production service must rely on this
    
    ## Why
    
    Built-in MCPs are product-owned runtime capabilities, but they were
    previously flattened into the same config-backed stdio path as
    user-configured servers. That made them depend on a hidden `codex
    builtin-mcp` re-exec path, exposed them through config-oriented CLI
    flows, and erased distinctions the runtime needs to preserve—most
    notably whether an MCP call should count as external context for
    memory-mode pollution.
    
    ## What changed
    
    - Model product-owned built-ins separately from config-backed MCP
    servers via `BuiltinMcpServer` and `EffectiveMcpServer`.
    - Launch built-ins in process through a reusable async transport instead
    of the hidden `builtin-mcp` stdio subcommand.
    - Keep config-oriented CLI operations such as `codex mcp
    list/get/login/logout` scoped to configured servers, while merging
    built-ins only into the effective runtime server set.
    - Retain server metadata after launch so parallel-tool support and
    context classification come from the live server set; built-in
    `memories` is now classified as local Codex state rather than external
    context.
    
    ## Test plan
    
    - `cargo test -p codex-mcp`
    - `cargo test -p codex-core --test suite
    builtin_memories_mcp_call_does_not_mark_thread_memory_mode_polluted_when_configured`
    
    ---------
    
    Co-authored-by: Codex <noreply@openai.com>
  • [codex] fix builtin MCP Windows path test (#21350)
    ## Summary
    - make the builtin MCP config test derive the expected `--codex-home`
    argument from `AbsolutePathBuf`
    
    ## Why
    `AbsolutePathBuf::try_from("/tmp/codex-home")` is rendered as
    `D:\\tmp\\codex-home` on Windows, but the test asserted the Unix literal
    `"/tmp/codex-home"`. That made the Windows Bazel job fail even though
    the production code was behaving correctly.
    
    ## Impact
    This keeps the test cross-platform while preserving the same transport
    assertion on Unix and Windows.
    
    ## Validation
    - `cargo test -p codex-builtin-mcps`
    
    Co-authored-by: Codex <noreply@openai.com>