feat(extensions): support Unix domain socket transport for StreamableHttp MCP#7860
feat(extensions): support Unix domain socket transport for StreamableHttp MCP#7860wpfleger96 wants to merge 2 commits intomainfrom
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 3c8f30ab3c
ℹ️ About Codex in GitHub
Codex has been enabled to automatically 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 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
3c8f30a to
3052674
Compare
…Http MCP Bump rmcp to 1.3.0 to pick up upstream Unix domain socket client for streamable HTTP transport (rust-sdk#749). This enables routing MCP connections through Unix sockets (e.g. Envoy sidecars in K8s) by setting a `socket` field on StreamableHttp extension configs. - Add `socket: Option<String>` to StreamableHttp ExtensionConfig variant - Wire up `rmcp::transport::UnixSocketHttpClient` in extension_manager - Apply `substitute_env_vars` to socket field for env-backed paths - Adapt all StreamableHttpClientTransportConfig construction to use builder API (required by rmcp 1.3.0's #[non_exhaustive]) - Work around StoredCredentials #[non_exhaustive] via serde roundtrip
8c46f1f to
745aa62
Compare
|
🔍 Recipe Security Scan Results 📊 Scan Summary:
📋 Individual Recipe Results: 🔗 View detailed scan results in the workflow artifacts. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 4bf5ba15c6
ℹ️ About Codex in GitHub
Codex has been enabled to automatically 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 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
…er init Bump unicode-segmentation 1.13.1 (yanked) to 1.13.2 to fix the deny CI check. Replace .parse().unwrap() with .unwrap_or_else() fallback when initializing the USER_AGENT header for unix socket clients.
4bf5ba1 to
bcb0978
Compare
Summary
socket: Option<String>field toStreamableHttpextension config, enabling MCP connections routed through Unix sockets (e.g. Envoy sidecars in K8s environments where DNS only resolves via the sidecar)rmcp::transport::UnixSocketHttpClientinextension_manager.rswith OAuth retry supportsubstitute_env_varsto thesocketfield so env-backed socket paths (e.g.$ENVOY_SOCK) resolve correctlyStreamableHttpClientTransportConfigconstruction to use the builder API, required by rmcp 1.3.0's#[non_exhaustive]attribute (rust-sdk#715)Supersedes #7631, which implemented UDS support directly in goose. That local implementation (~420 lines) is now replaced by the upstream rmcp feature.
Test plan
cargo check -p goosecompiles with rmcp 1.3.0 +transport-streamable-http-client-unix-socketfeatureRUSTFLAGS="-D warnings" cargo clippy --workspace --all-targets --exclude v8 -- -D warningspassescargo test -p goose— 1072 tests pass (1 pre-existing snapshot failure unrelated to this change)socket: "@egress.sock"deserializes correctly (covered by new unit tests)socketfield continues to work as before