[6/8] Wire remote MCP stdio through executor#18089
[6/8] Wire remote MCP stdio through executor#18089aibrahim-oai merged 1 commit intodev/remote-mcp-executor-stdiofrom
Conversation
f6e61df to
f11cc84
Compare
e2510f7 to
912b400
Compare
aad254a to
ad686d6
Compare
912b400 to
7e94d1f
Compare
## Summary - Add an MCP server environment setting with local as the default. - Thread the default through config serialization, schema generation, and existing config fixtures. ## Stack ```text o #18027 [8/8] Fail exec client operations after disconnect │ o #18025 [7/8] Cover MCP stdio tests with executor placement │ o #18089 [6/8] Wire remote MCP stdio through executor │ o #18088 [5/8] Add executor process transport for MCP stdio │ o #18087 [4/8] Abstract MCP stdio server launching │ o #18020 [3/8] Add pushed exec process events │ o #18086 [2/8] Support piped stdin in exec process API │ @ #18085 [1/8] Add MCP server environment config │ o main ``` Co-authored-by: Codex <noreply@openai.com>
ad686d6 to
ceffe05
Compare
7e94d1f to
2f30ec1
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 2f30ec11dd
ℹ️ 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".
| submit_id, | ||
| tx_event, | ||
| SandboxPolicy::new_read_only_policy(), | ||
| None, |
There was a problem hiding this comment.
Pass executor environment into snapshot MCP startup
collect_mcp_snapshot_with_detail creates McpConnectionManager with environment=None. In this commit, make_rmcp_client now rejects stdio servers with experimental_environment="remote" when no executor environment is present, so remote MCP servers never initialize in snapshot/status flows and callers only get empty/cached tools. Thread the active Environment into this startup path.
Useful? React with 👍 / 👎.
ceffe05 to
2913392
Compare
2f30ec1 to
74ca01c
Compare
2913392 to
0281bcc
Compare
87f5c4c to
a375ead
Compare
0281bcc to
1f31311
Compare
a375ead to
19c53cb
Compare
1f31311 to
19766ff
Compare
19c53cb to
2f93c75
Compare
62f2369 to
bc359fc
Compare
6ca1f6b to
825a0cb
Compare
bc359fc to
4c9f73c
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 825a0cbc39
ℹ️ 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".
| // `RmcpClient` always sees a launched MCP stdio server. The | ||
| // launcher hides whether that means a local child process or an | ||
| // executor process whose stdin/stdout bytes cross the process API. | ||
| RmcpClient::new_stdio_client(command_os, args_os, env_os, &env_vars, cwd, launcher) |
There was a problem hiding this comment.
Resolve relative MCP cwd before remote executor start
When experimental_environment="remote", this path forwards cwd unchanged into RmcpClient::new_stdio_client. ExecutorStdioServerLauncher only falls back to remote_stdio_cwd when cwd is None; a relative cwd (for example "./tools") reaches process/start as-is and is resolved against the exec-server daemon's working dir, not the session cwd. Remote MCP servers can start in the wrong directory or fail to launch.
Useful? React with 👍 / 👎.
## Summary - Add an explicit stdin mode to process/start. - Keep normal non-interactive exec stdin closed while allowing pipe-backed processes. ## Stack ```text o #18027 [8/8] Fail exec client operations after disconnect │ o #18025 [7/8] Cover MCP stdio tests with executor placement │ o #18089 [6/8] Wire remote MCP stdio through executor │ o #18088 [5/8] Add executor process transport for MCP stdio │ o #18087 [4/8] Abstract MCP stdio server launching │ o #18020 [3/8] Add pushed exec process events │ @ #18086 [2/8] Support piped stdin in exec process API │ o #18085 [1/8] Add MCP server environment config │ o main ``` Co-authored-by: Codex <noreply@openai.com>
825a0cb to
a58a26f
Compare
4c9f73c to
1b53598
Compare
a58a26f to
cfba2ef
Compare
1b53598 to
b04c034
Compare
cfba2ef to
109a540
Compare
b04c034 to
97fd5d4
Compare
109a540 to
81a3281
Compare
Use the MCP server experimental_environment string to choose local stdio or executor-backed stdio at client startup time. Co-authored-by: Codex <noreply@openai.com>
81a3281 to
fdfe2ca
Compare
Summary
Stack