Extract shared plugin MCP config parsing#27863
Conversation
|
@codex review |
|
Codex Review: Didn't find any major issues. 🚀 Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 2c491faf47
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
CI red is unrelated |
Why
We want a thread-selected plugin to eventually expose stdio MCP servers that run on the executor owning that plugin.
The existing plugin MCP parser lived inside
core-pluginsand was coupled to the host filesystem loader. Reusing it from an executor provider would either duplicate MCP normalization or make the plugin package layer own MCP runtime semantics. This PR creates the shared MCP-owned boundary first.In simple terms:
This builds on the authority-bound plugin descriptors from #27692. It intentionally does not discover, register, or launch executor MCP servers yet.
What changed
core-pluginsintocodex-mcp.mcpServers.Declaredplacement, preserving its current transport, OAuth, relativecwd, and error behavior.Environmentplacement for the next stacked PR:cwddefaults to the plugin root;cwdis resolved beneath the plugin root and cannot traverse outside it;User impact
None in this PR. Existing local plugin MCP loading follows the same behavior through the shared parser. The executor placement mode is not connected to thread startup until the follow-up registration PR.
Assumptions
McpServerConfigvalues. Process startup remains owned by the existing MCP runtime and connection manager.Follow-ups
thread/start.selectedCapabilityRootslaunches and calls the MCP tool on the selected executor, preserves the frozen registration across refresh, and does not expose it to an unselected thread.Verification
cargo check -p codex-mcp -p codex-core-plugins --testsjust bazel-lock-check