Define secure transport policy for credentialed MCP HTTP extensions
- Ngôn ngữ chính
- Rust
- Star
- 54.2k
- Fork
- 6.2k
- Merge trung bình
- 3 ngày 4 giờ
- Pull request đã merge (30 ngày)
- 240
Mô tả
**What problem would this solve?**
Desktop and deep-link extension setup can configure a Streamable HTTP MCP endpoint together with request headers. A remote cleartext `http://` endpoint would carry authorization credentials and MCP traffic without transport protection. At the same time, local MCP services may legitimately use loopback HTTP or a Unix socket. We need one backend-enforced transport policy that every configuration ingress applies consistently.
**What would a good outcome look like?**
Require HTTPS for credential-bearing TCP endpoints unless an explicitly defined local transport exception applies. Define exactly which loopback names/address ranges and Unix-socket forms are allowed, how redirects are revalidated, and whether credentials are stripped when origin or scheme changes. Desktop must explain the policy before persistence, while the backend remains authoritative for deep links, imported configuration, and other clients.
The verification plan should cover: remote HTTP with Authorization/custom secret headers; HTTPS; localhost, IPv4 and IPv6 loopback; hostname rebinding/normalization; Unix-socket configuration; redirects to a weaker scheme or different origin; and direct backend configuration that bypasses the modal.
**Possible approaches**
- Reject credential-bearing remote HTTP centrally in extension configuration/runtime validation.
- Permit only numeric loopback and Unix-socket transports under a narrowly documented exception.
- Require an explicit per-extension unsafe opt-in for any cleartext TCP transport and never send reusable credentials there.
Public issue #11500 is related redirect hardening; this issue defines the initial transport and credential policy across all configuration ingresses.
**Additional context**
The shared extension runtime serves both agent-loop implementations, so enforcement and tests must cover both paths.
- [x] I have verified this does not duplicate an existing feature request
Do not begin implementation until the issue reaches **Ready** on the [Goose Issues board](https://github.com/orgs/aaif-goose/projects/1).
Hướng dẫn đóng góp
Hướng nghiên cứu
The issue is about securing MCP HTTP extensions. Start by examining the extension configuration and runtime validation code, likely in the shared extension runtime. Look for where HTTP endpoints are configured with headers. Understand the existing transport handling and where credentials are attached. Tests should cover remote HTTP with credentials, HTTPS, loopback addresses, Unix sockets, and redirects.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Lĩnh vực
- api, backend, security
- Loại issue
- Tính năng
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức độ hoạt động
- Sôi nổi
- Độ rõ ràng
- Khá rõ ràng
- Mức phù hợp với người mới
- 35/100