Skip to content

[4/6] Abstract MCP stdio server launching#18087

Merged
aibrahim-oai merged 4 commits intomainfrom
dev/remote-mcp-stdio-runtime
Apr 17, 2026
Merged

[4/6] Abstract MCP stdio server launching#18087
aibrahim-oai merged 4 commits intomainfrom
dev/remote-mcp-stdio-runtime

Conversation

@aibrahim-oai
Copy link
Copy Markdown
Collaborator

@aibrahim-oai aibrahim-oai commented Apr 16, 2026

Summary

  • Move local MCP stdio process startup behind a launcher trait.
  • Preserve existing local stdio behavior while making transport creation explicit.

Stack

o  #18027 [6/6] Fail exec client operations after disconnect
│
o  #18212 [5/6] Wire executor-backed MCP stdio
│
@  #18087 [4/6] Abstract MCP stdio server launching
│
o  #18020 [3/6] Add pushed exec process events
│
o  #18086 [2/6] Support piped stdin in exec process API
│
o  #18085 [1/6] Add MCP server environment config
│
o  main

@aibrahim-oai aibrahim-oai force-pushed the dev/remote-mcp-stdio-runtime branch from b440257 to c603449 Compare April 16, 2026 06:20
@aibrahim-oai aibrahim-oai force-pushed the dev/remote-mcp-exec-events branch from 69f6bd3 to 0681926 Compare April 16, 2026 06:20
@aibrahim-oai aibrahim-oai force-pushed the dev/remote-mcp-stdio-runtime branch from c603449 to db32dd3 Compare April 16, 2026 13:55
@aibrahim-oai aibrahim-oai force-pushed the dev/remote-mcp-exec-events branch 2 times, most recently from 4909acf to e89f9e2 Compare April 16, 2026 13:59
@aibrahim-oai aibrahim-oai force-pushed the dev/remote-mcp-stdio-runtime branch from db32dd3 to 2ccbd13 Compare April 16, 2026 13:59
aibrahim-oai added a commit that referenced this pull request Apr 16, 2026
## 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>
@aibrahim-oai aibrahim-oai force-pushed the dev/remote-mcp-exec-events branch from e89f9e2 to 240b15b Compare April 16, 2026 15:56
@aibrahim-oai aibrahim-oai force-pushed the dev/remote-mcp-stdio-runtime branch 2 times, most recently from 0030462 to afdd04f Compare April 16, 2026 16:13
@aibrahim-oai aibrahim-oai force-pushed the dev/remote-mcp-exec-events branch from 240b15b to 5d0fa36 Compare April 16, 2026 16:13
@aibrahim-oai aibrahim-oai force-pushed the dev/remote-mcp-stdio-runtime branch from afdd04f to 6075a2b Compare April 16, 2026 16:16
@aibrahim-oai aibrahim-oai force-pushed the dev/remote-mcp-exec-events branch from 5d0fa36 to fe13f51 Compare April 16, 2026 16:16
@aibrahim-oai aibrahim-oai force-pushed the dev/remote-mcp-stdio-runtime branch from 6075a2b to b75ff9b Compare April 16, 2026 16:22
@aibrahim-oai aibrahim-oai force-pushed the dev/remote-mcp-exec-events branch 2 times, most recently from 7d383a5 to 60d1e5b Compare April 16, 2026 16:29
@aibrahim-oai aibrahim-oai force-pushed the dev/remote-mcp-stdio-runtime branch 2 times, most recently from 1823e57 to df8be89 Compare April 16, 2026 16:42
@aibrahim-oai aibrahim-oai force-pushed the dev/remote-mcp-exec-events branch 2 times, most recently from 725940a to e9b4e30 Compare April 16, 2026 16:43
@aibrahim-oai aibrahim-oai force-pushed the dev/remote-mcp-stdio-runtime branch 2 times, most recently from 321268f to d94930b Compare April 16, 2026 16:44
@aibrahim-oai aibrahim-oai force-pushed the dev/remote-mcp-exec-events branch from e9b4e30 to 53ea2a8 Compare April 16, 2026 16:44
aibrahim-oai added a commit that referenced this pull request Apr 16, 2026
## 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>
@aibrahim-oai aibrahim-oai force-pushed the dev/remote-mcp-stdio-runtime branch from b3a55be to 0666bc7 Compare April 16, 2026 18:32
@aibrahim-oai aibrahim-oai changed the title [4/8] Abstract MCP stdio server launching [4/6] Abstract MCP stdio server launching Apr 16, 2026
Base automatically changed from dev/remote-mcp-exec-events to main April 17, 2026 19:07
aibrahim-oai added a commit that referenced this pull request Apr 17, 2026
## Summary
- Add a pushed `ExecProcessEvent` stream alongside retained
`process/read` output.
- Publish local and remote output, exit, close, and failure events.
- Cover the event stream with shared local/remote exec process tests.

## Testing
- `cargo check -p codex-exec-server`
- `cargo check -p codex-rmcp-client`
- Not run: `cargo test` per repo instruction; CI will cover.

## Stack
```text
o  #18027 [6/6] Fail exec client operations after disconnect
│
o  #18212 [5/6] Wire executor-backed MCP stdio
│
o  #18087 [4/6] Abstract MCP stdio server launching
│
@  #18020 [3/6] Add pushed exec process events
│
o  #18086 [2/6] Support piped stdin in exec process API
│
o  #18085 [1/6] Add MCP server environment config
│
o  main
```

---------

Co-authored-by: Codex <noreply@openai.com>
aibrahim-oai and others added 4 commits April 17, 2026 15:12
Move local stdio process startup behind a runtime trait while preserving the existing local MCP stdio behavior.

Co-authored-by: Codex <noreply@openai.com>
Rename the stdio runtime abstraction around launching a server so the PR boundary is about process placement, not a parallel stdio/executor runtime shape.\n\nCo-authored-by: Codex <noreply@openai.com>
Keep the shared launcher API before the local implementation and move local launch helpers onto LocalStdioServerLauncher.\n\nCo-authored-by: Codex <noreply@openai.com>
Return an RMCP Transport from stdio launchers and let the transport own local process cleanup state. This keeps RmcpClient on the same serve_client path for stdio as for other transports.

Co-authored-by: Codex <noreply@openai.com>
@aibrahim-oai aibrahim-oai force-pushed the dev/remote-mcp-stdio-runtime branch from 0666bc7 to 39b8f9b Compare April 17, 2026 19:12
@aibrahim-oai aibrahim-oai merged commit 92cf902 into main Apr 17, 2026
25 checks passed
@aibrahim-oai aibrahim-oai deleted the dev/remote-mcp-stdio-runtime branch April 17, 2026 19:34
@github-actions github-actions bot locked and limited conversation to collaborators Apr 17, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants