Skip to content

Update IG charter, approaches, and grouping spec#6

Open
chughtapan wants to merge 6 commits intomodelcontextprotocol:mainfrom
chughtapan:groups/spec
Open

Update IG charter, approaches, and grouping spec#6
chughtapan wants to merge 6 commits intomodelcontextprotocol:mainfrom
chughtapan:groups/spec

Conversation

@chughtapan
Copy link
Contributor

Summary

  • README: Add Discord link, expand problem statement with scope boundaries, add Goals, Organization Strategies, and IG Principles sections from the IG charter
  • docs/approaches.md: Populate with four organization strategies (Primitive Grouping, Tool Fusion, Tool Search, Code Mode) with examples, references, and linked GitHub Discussions
  • specification/draft/grouping.mdx: Align with SEP-2084 text while keeping extension framing (capabilities.extensions instead of capabilities.groups)

Also created GitHub Discussions for each approach:

chughtapan and others added 2 commits February 25, 2026 15:00
…ec with SEP-2084

- README: Add Discord link, expand problem statement with scope boundaries,
  add Goals, Organization Strategies, and IG Principles sections
- docs/approaches.md: Populate with four organization strategies (Primitive
  Grouping, Tool Fusion, Tool Search, Code Mode) with examples, references,
  and linked GitHub Discussions
- specification/draft/grouping.mdx: Align with SEP-2084 text while keeping
  extension framing (capabilities.extensions instead of capabilities.groups)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Copy link
Member

@cliffhall cliffhall left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A few suggestions on the references

chughtapan and others added 3 commits March 2, 2026 13:20
Co-authored-by: Cliff Hall <cliff@futurescale.com>
Co-authored-by: Cliff Hall <cliff@futurescale.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@chughtapan chughtapan requested a review from cliffhall March 2, 2026 21:37
Comment on lines +53 to +72
## Tool Search
[Discussion](https://github.com/modelcontextprotocol/experimental-ext-grouping/discussions/4)

Clients like Claude Code enable "lazy" tool loading — the system prompt includes stubs for each tool, while detailed schemas and docs are added into the context using a common "ToolSearch" tool provided by the client.

**Examples:**

- Clients:
1. Claude / Claude Code – API [reference](https://platform.claude.com/docs/en/agents-and-tools/tool-use/tool-search-tool)

## Code Mode
[Discussion](https://github.com/modelcontextprotocol/experimental-ext-grouping/discussions/5)

Instead of calling tools individually, copying data fields across turns, etc., clients treat MCP tools as library functions and write scripts which can execute complex chains of tools in a single turn. Requires structuredOutputs setup correctly.

**Examples:**

- Clients:
1. Claude – API [reference](https://platform.claude.com/cookbook/tool-use-programmatic-tool-calling-ptc)
2. Cloudflare Workers – [announcement](https://blog.cloudflare.com/code-mode/)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would argue that these are actually adjacent approaches but don't involve grouping per se... If they are included I'd have expected it to be more in terms of solutions to some of the problems grouping attempts to solve (regarding model context usage specifically).

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That was my intention. The problem being flat lists are insufficient for many reasons, and us exploring different ways to organize primitives better. Let me try to rephrase it in a better way.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I tried to add a bit more framing at the start of the doc. Hope this clarifies?

- Gateways / Middleware:
1. MCPJungle – [Groups](https://github.com/mcpjungle/MCPJungle?tab=readme-ov-file#tool-groups)
- Clients
1. ??

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

VS Code actually does both:

Both probably worth a mention.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, I hadn't seen this before. Will add.

## Primitive Grouping
[Discussion](https://github.com/modelcontextprotocol/experimental-ext-grouping/discussions/2)

Large MCP servers e.g, Github, Azure, Workspaces, etc., organize primitives into semantic groups. Clients select the groups to use for a particular request / scenario, and servers only list primitives corresponding to those.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Large MCP servers e.g, Github, Azure, Workspaces, etc., organize primitives into semantic groups. Clients select the groups to use for a particular request / scenario, and servers only list primitives corresponding to those.
Large MCP servers e.g, Github, Azure, Workspaces, etc., organize primitives into semantic groups. Clients select the groups to use for a particular request / scenario, and servers only list primitives corresponding to those.
There are also some existing protocol defined groupings (such as Annotations), that could be utilized for tool grouping on the client side but there are no known implementations of this as a feature. GitHub offers a server side read-only mode as a popular example of Annotations based grouping in the wild.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm wondering if annotation tags should be a separate approach rather being tacked onto with grouping? It's almost like defining a fixed schema for how primitives should be organized IIUC

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The nuance I was trying to convey was only that clients don't seem to have leveraged existing logical groupings (in spite of a lot of end users leveraging them via config), and so it's an open question as to whether or not there is any desire to support groupings at all in popular clients.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

IIUC you are pointing out that existing clients COULD allow selecting which tools from a server are exposed based on the annotations? and that they don't expose this directly today and instead users have to do this out-of-band through the server configuration itself?

Restructure into Primitive Organization Strategies and Alternatives
sections, add annotations context, VS Code Copilot client examples,
and open question about client adoption of grouping.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@chughtapan
Copy link
Contributor Author

@SamMorrowDrums rewrite the doc a bit based on the feedback.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants