[DRAFT] # PR: Support Repository-based MCP Plugins & Options in Codex CLI Generator#460
Open
silviojr wants to merge 1 commit into
Open
[DRAFT] # PR: Support Repository-based MCP Plugins & Options in Codex CLI Generator#460silviojr wants to merge 1 commit into
silviojr wants to merge 1 commit into
Conversation
2799d36 to
ee331f1
Compare
ee331f1 to
b2f7472
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR extends the Codex CLI generator to support cloning plugin repositories containing bundled MCP servers (such as the Data Agent Kit), auto-enabling them in
config.toml, and passing configuration parameters (userConfig) to them.1. Refactored Configuration Serialization
config.tomlwas written immediately on initialization with only inlinemcp_serversconfiguration. This prevented adding plugins cloned dynamically during setup.CodexCliGeneratorto collect configurations (inline servers, repository-based servers, and cloned skills/plugins) into internal state dictionaries (self.inline_mcp_serversandself.enabled_plugins) first, and deferred writing theconfig.tomlfile to the end of the_setupmethod.2. Supported List-Based
mcp_serversRepositoriesClaudeCodeGeneratorto maintain cross-agent testing consistency._install_mcp_servers_from_repowhich clones the plugin repository, registers it inmarketplace.json, and records its ID and parameters in the enabled plugins list.3. Enabled Plugins in
config.tomlmarketplace.jsonmust be explicitly marked as enabled inconfig.tomlto be loaded by Codex CLI.[plugins."<plugin-id>"]sections withenabled = trueandoptionsinsideconfig.toml. Theplugin_idis constructed using theplugin-name@marketplace-namepattern.4. Supported Plugin Options & Variables (
userConfig)${user_config.PROJECT_ID}).configblocks from the YAML settings, passed them toself.enabled_plugins, and serialized them as inline TOML tables underoptions = { ... }.Testing & Verification
1. Test Scenario Setup
We executed the evaluation pipeline using the
Bullseye_PCAscenario:Specifies cloning and loading the
dakplugin from its repository:Requests creating a notebook and running a sample BigQuery query.
2. Sandbox Verification
After executing the setup sequence, we inspected the sandboxed directory
.venv/fake_home_codexand verified:.agents/plugins/marketplace.jsonwas correctly created, pointing to the local cloned repository with the relative path starting with./(e.g."path": "./.codex/plugins/data-agent-kit-starter-pack").codex plugin listin the sandbox confirmed the plugin status was successfully transitioned to:dak@evalbench-local-marketplace | installed, enableddeveloping-with-bigquery,notebook-guidance, etc.) were successfully copied to.codex/skills/.3. Execution Verification
We executed the run and examined the outputs in
results/aadf29ef-3145-4d8e-aca1-9e9bd09b58a9:notebook__create_notebook(succeeded)notebook__list_cells(succeeded)notebook__insert_cell(succeeded, twice)