-
Notifications
You must be signed in to change notification settings - Fork 2.7k
Adding default toolset grouping #1159
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR introduces a new "stargazers" toolset grouping by moving stargazer-related tools from the repositories toolset into their own dedicated group, and updates the default tools list to include specific toolsets instead of "all".
- Moved stargazer tools (list_starred_repositories, star_repository, unstar_repository) from repositories to a new dedicated stargazers toolset
- Updated DefaultTools to explicitly list toolsets: "context", "repos", "issues", "pull_requests", "users" instead of using "all"
- Added documentation entries for the new stargazers toolset in both remote server documentation and README
Reviewed Changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.
File | Description |
---|---|
pkg/github/tools.go | Creates new stargazers toolset and moves stargazer tools from repositories toolset, updates DefaultTools list |
docs/remote-server.md | Adds stargazers toolset entry to the remote server toolsets table |
README.md | Moves stargazer tool documentation from repositories section to new stargazers section and updates toolsets list |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
} | ||
ToolsetMetadataDynamic = ToolsetMetadata{ | ||
ID: "dynamic", | ||
Description: "Discover GitHub MCP tools that can help achieve tasks by enabling additional sets of tools, you can control the enablement of any toolset to access its tools when this toolset is enabled.", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
shall we include this in the default? This would allow agent to see what tools are available and prompt to enable them.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hmm right now its turned off i need to test it a bit better to make a judgement
Summary
This PR introduces a data-driven default toolset configuration to improve performance, reduce inference costs, and provide a better out-of-the-box experience for GitHub MCP Server users.
Problem
The current "all tools enabled by default" approach causes several issues:
Changes
New Default Toolsets (Data-Driven Selection)
Based on real-world usage analysis across all sessions, the new default includes the 5 most-used toolset groups:
context
- Current user and GitHub contextrepos
- Repository operationsissues
- Issue trackingpull_requests
- PR workflowsusers
- User informationThese cover almost all top 20 most frequently used tools.
Code Changes
pkg/github/tools.go
:ToolsetMetadata
struct to hold toolset ID and descriptionGetDefaultToolsetIDs()
to return curated default listGenerateToolsetsHelp()
for improved CLI help textrepos
to new dedicatedstargazers
toolsetcmd/github-mcp-server/main.go
:GetDefaultToolsetIDs()
when no toolsets specifiedGenerateToolsetsHelp()
README.md
:stargazers
toolset to available toolsets tabledocs/remote-server.md
:stargazers
toolset to remote server documentationPerformance Improvements compared to old default("all")
Token Reduction
User Experience Benefits
Future Work
repos
,pull_requests
) into more specialized subgroupsTesting
--toolsets
flag provided--toolsets all
still enables all toolsets