Support multiple remote toolsets via URL for managed MCP clients without custom headers
还没有人认领这个 Issue。
评估
- 难度
- 5/5
- 预计耗时
- 一周以上
- 新手友好度
- 45/100
- Issue 类型
- 功能
- 描述清晰度
- 基本清楚
- 活跃度
- 活跃
- 技术栈
- go
调研方向
首先跟踪托管远程服务器针对 /mcp/x/{toolset}、/readonly 和 /x/all 的 URL 路由,然后将其与现有的 X-MCP-Toolsets 验证和规范化进行比较。定义并记录一种 URL-safe 的多 toolset 形式,包括同时存在 header 时的优先级。完成标准是:受管理的客户端可以选择一个范围受限且经过验证的 bundle,而无需使用 /x/all。
由索引模型根据 Issue 内容生成。
描述
Describe the feature or problem you’d like to solve
The hosted GitHub MCP server currently supports a single toolset by URL (/mcp/x/{toolset}) and multiple toolsets through the X-MCP-Toolsets request header.
That leaves managed MCP clients that expose the server endpoint and OAuth configuration but do not allow arbitrary per-request HTTP headers unable to select a bounded combination of toolsets. One concrete example is a ChatGPT custom/developer MCP app: its current app configuration flow exposes endpoint/metadata/authentication and tool scanning, but not an arbitrary X-MCP-Toolsets header field.
The practical choices are therefore currently:
- remain on the default toolset and lose useful optional capabilities;
- create several separate MCP app connections, one per
/x/{toolset}URL; or - use
/x/all, which exposes substantially more tools than needed and works against least-privilege/tool-surface minimization.
My concrete desired bundle is:
default,actions,projects,git,notifications,governance
The use case is an interactive GitHub MCP connection that needs ordinary repository/issue/PR operations plus CI inspection/control, Projects, repository tree access, notifications, and governance, while intentionally not exposing unrelated toolsets.
Proposed solution
Add a URL-addressable way to select multiple toolsets on the hosted remote server, while preserving the existing header behavior. For example, one of:
/mcp/x/default,actions,projects,git,notifications,governance/mcp?toolsets=default,actions,projects,git,notifications,governance- another documented, URL-safe equivalent.
Requirements I would suggest:
- use the same validation/normalization as
X-MCP-Toolsets; - support the
defaultpseudo-toolset plus additional toolsets; - reject unknown toolsets rather than silently broadening access;
- remain composable with
/readonlyand existing URL-addressable modes where applicable; - keep headers authoritative when both mechanisms are present, or document an unambiguous precedence rule;
- do not make
/x/allthe required workaround for managed clients.
Example prompts or workflows
A managed ChatGPT MCP app could point to one stable endpoint representing exactly the approved bundle, then scan tools normally. The same pattern would help other hosted/managed MCP clients that cannot inject custom headers.
Why this matters
GitHub already recommends selecting only the toolsets needed because tool-surface size affects model tool selection and security. URL-addressable multi-toolset selection lets managed clients follow that recommendation instead of choosing between missing capabilities, duplicated app connections, or all.
This request is separate from #3231 / PR #3232, which address patch-safe large-file updates.
- 主要语言
- Go
- 星标
- 33.1k
- 派生
- 5k
- 平均合并
- 2 天 1 小时
- 30 天内合并 PR
- 25
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
github/github-mcp-server 的其他 Issue
-
bug
难度 2/5 1-3 小时 新手友好度 84/100
github/github-mcp-server#3235 ·
-
enhancement
难度 1/5 1 小时以内 新手友好度 88/100
github/github-mcp-server#3042 · 2 条评论 ·
-
bug
难度 2/5 1-3 小时 新手友好度 72/100
github/github-mcp-server#3032 · 1 个 reaction ·
-
难度 2/5 1-3 小时 新手友好度 74/100
github/github-mcp-server#2803 · 1 条评论 ·
-
难度 2/5 1-3 小时 新手友好度 76/100
github/github-mcp-server#2740 ·
查看 github/github-mcp-server 的全部 Issue
相似的 Issue
-
area/dev-productivity area/disaster-recovery area/ipcei kind/enhancement
难度 2/5 1-3 小时 新手友好度 70/100
-
难度 1/5 1 小时以内 新手友好度 85/100
-
难度 2/5 1-3 小时 新手友好度 75/100
-
kind/bug status/0-triage
难度 2/5 1-3 小时 新手友好度 75/100
-
🤔 refinement needed
难度 2/5 1-3 小时 新手友好度 75/100
equinor/radix-operator#1979 ·