Skip to content

Commit 5d7ec88

Browse files
committed
- Add "No Grouping of Groups" to the "alternatives considered" section
- Added elaboration to Transitivity note about the configuring the client to a depth of one to short-circuit a cyclic graph
1 parent 9d0acbc commit 5d7ec88

1 file changed

Lines changed: 3 additions & 0 deletions

File tree

seps/2084-primitive-groups.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ Groups are named collections of MCP primitives: tools, prompts, resources, tasks
3636
- When listing the primitives in the `communications` group, I chose to have it display the contents of both children.
3737
- So `email_thank_contributor` would appear in both `email` and `communications`.
3838
- Some clients might wish to only show direct children of a group.
39+
- If a server contained cyclic graphs, configuring the client to only show the direct children of a group would short circuit the graph traversal, unless the group contains itself as a direct child, which would be an obvious mistake on the server developer's part that would likely never happen in production.
3940

4041
#### Visibility of Groups to LLMs
4142

@@ -248,6 +249,8 @@ This specification proposal was selected for its ease of understanding since it
248249
- **Primitive's group list as an array of Group instances not names:** A variation of the proposed specification, but the schema would reference the Groups definition instead of declaring a string (group name). This means that full Group instances would appear in the primitive's group list, significantly increasing the token count when passed to an LLM without modification. Also, beacuse groups belong to other groups, every child of a given group would carry a duplicate of the parent instance. There was discussion of mitigating the duplication on the line using libraries that perform a marshalling on send/receive, replacing the parent with a pointer to a single copy of the parent instance. This would put an unnecessary burden on SDK developers for no clear benefit, when a client can easily look up a group by name in its cached `groups/list` result.
249250
More information on this approach can be found in @scottslewis's [proposal](https://github.com/modelcontextprotocol/modelcontextprotocol/discussions/1567).
250251

252+
- **No Grouping of Groups** - A variation of the proposed specification, but Groups cannot have a group list. Avoids any worry of graphs — e.g., a group belonging to itself or to a child. Makes groups a flat list.
253+
251254
## Security Implications
252255

253256
No serious implications identified.

0 commit comments

Comments
 (0)