Update IG charter, approaches, and grouping spec#6
Update IG charter, approaches, and grouping spec#6chughtapan wants to merge 6 commits intomodelcontextprotocol:mainfrom
Conversation
…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>
cliffhall
left a comment
There was a problem hiding this comment.
A few suggestions on the references
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>
docs/approaches.md
Outdated
| ## 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/) |
There was a problem hiding this comment.
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).
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
I tried to add a bit more framing at the start of the doc. Hope this clarifies?
docs/approaches.md
Outdated
| - Gateways / Middleware: | ||
| 1. MCPJungle – [Groups](https://github.com/mcpjungle/MCPJungle?tab=readme-ov-file#tool-groups) | ||
| - Clients | ||
| 1. ?? |
There was a problem hiding this comment.
VS Code actually does both:
- automatic grouping of tools for context reduction: https://github.blog/ai-and-ml/github-copilot/how-were-making-github-copilot-smarter-with-fewer-tools/
- offers ability to create
tool setslocally for user-defined grouping: https://code.visualstudio.com/docs/copilot/agents/agent-tools#_group-tools-with-tool-sets
Both probably worth a mention.
There was a problem hiding this comment.
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. |
There was a problem hiding this comment.
| 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. |
There was a problem hiding this comment.
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
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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>
|
@SamMorrowDrums rewrite the doc a bit based on the feedback. |
Summary
capabilities.extensionsinstead ofcapabilities.groups)Also created GitHub Discussions for each approach: