Repository navigation
Conversation
Add the draft SEP for the io.modelcontextprotocol/groups extension (progressive disclosure via activatable groups) and link it from the documentation table.
Change-notification rationale now points to SEP-3371 as the reason push notification should not extend the core subscriptions/listen filter.
- Rebuild the prototype on top of the current groups SEP (origin/sep). - Drop the removed listChanged capability flag and the stale list_changed reference in the examples README. - Return JSON-RPC -32002 (Resource not found) for unknown groups/get names, matching the SEP. - Drop CacheableResult/ttlMs/cacheScope: not in the released base SDK (@modelcontextprotocol/sdk 1.27.x); revisit when the SDK adopts the draft caching attributes. - Scrub 'activatable/activated' wording (activation is client-side).
chughtapan
reviewed
Oct 23, 2026
|
|
||
| **Relationship to SEP-2084.** This is distinct from [SEP-2084]'s primitive | ||
| grouping, which modeled group membership as static metadata for client-side | ||
| filtering. The distinguishing mechanic here is *on-demand, server-scoped |
Contributor
There was a problem hiding this comment.
We haven't discussed this point in the group yet. I think this is probably worth spending more time on. I see the value proposition from it, but I also find it confusing.
| different client (see [Graceful Degradation](#graceful-degradation)). | ||
|
|
||
| **Placement.** Within a view, every tool, prompt, and resource a server offers has | ||
| exactly one placement: it is either **top-level**, listed in `tools/list`, |
Contributor
There was a problem hiding this comment.
This seems incompletely specified. If group G has children tool T and group G', can T be present in G'.
I think we also need to define this recursively somehow: the base view should also be considered a group and we go from there.
| every group that includes it. Guidance that applies to only one workflow belongs | ||
| in that group's instructions, not in the primitive's description. | ||
|
|
||
| **Instruction references.** Group instructions may name a primitive in one of two |
Contributor
There was a problem hiding this comment.
I don't think this should be part of the SEP. Seems overreaching on part of the protocol
|
|
||
| #### Discovery gating is not access control | ||
|
|
||
| Scoping a tool controls whether it can be **discovered**, not whether it can be |
Contributor
There was a problem hiding this comment.
Follows directly from stateless servers right?
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
A reference prototype for the SEP (#19)
SDK (
sdk/typescript)groups/listandgroups/getwith typed Tool/Prompt/Resource/nested-group contents; unknown groups return -32002.Examples (
examples/)