aaif-goose / aaif-goose/goose

Define secure transport policy for credentialed MCP HTTP extensions

未关闭
#11,713 0 条评论 0 个 reaction 已指派 1 人 已被 @jbg 认领 在 GitHub 查看
主要语言
Rust
星标
54.2k
派生
6.2k
平均合并
3 天 4 小时
30 天内合并 PR
240

描述

**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).

贡献指南

打开贡献指南

调研方向

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.

由索引模型根据 Issue 内容生成。

评估

领域
api, backend, security
Issue 类型
功能
难度
4/5
预计耗时
3-5 天
活跃度
活跃
描述清晰度
基本清楚
新手友好度
35/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。