Skip to content

Conversation

@jaylonmcshan19-x
Copy link
Contributor

PCI review checklist

This pr Implements support for the --toolsets flag.

This PR includes only the core toolset logic without the tool filtering implementation due to me seeking feedback on:

  1. Toolset groupings: Are these logical groupings, or could they be structured differently?
  2. Structure of the help message: Is the help message structure clear, or could it be presented in a more user friendly manner
  3. Default toolsets: Is this the the right default set of tools?
  4. Special keywords: Do the special keywords ('all', 'default') make sense / needed? (I got inspiration on these keywords, from GH MCP server implementation)
  • I have documented a clear reason for, and description of, the change I am making.

  • If applicable, I've documented a plan to revert these changes if they require more than reverting the pull request.

  • If applicable, I've documented the impact of any changes to security controls.

    Examples of changes to security controls include using new access control methods, adding or removing logging pipelines, etc.

@jaylonmcshan19-x jaylonmcshan19-x marked this pull request as ready for review November 24, 2025 14:18
@jaylonmcshan19-x jaylonmcshan19-x requested a review from a team as a code owner November 24, 2025 14:18
@gautambaghel
Copy link
Member

this should fix #30

@jaylonmcshan19-x
Copy link
Contributor Author

@gautambaghel Yup, just waiting on a review of my implementation and will add tests tomorrow! Once approved will merge 👍

package toolsets

// ToolToToolset maps tool names to their toolsets
var ToolToToolset = map[string]Toolset{
Copy link
Contributor

Choose a reason for hiding this comment

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

I think maintaining a map like this is OK for now, but I suspect in future we'll want to make this easier to maintain by having the tool initialization and assignment happening in the same place, i.e. in tools.go.

The GitHub MCP server project does something similar here: https://github.com/github/github-mcp-server/blob/ada4bc05a9c7c8246bd0651386a558802e23dec0/pkg/github/tools.go#L163-L379

import "strings"

// Toolset represents a group of related tools
type Toolset string
Copy link
Contributor

Choose a reason for hiding this comment

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

I'd perhaps call this ToolsetName because that's what it actually is.

ToolsetDefault Toolset = "default"
)

type ToolsetMetadata struct {
Copy link
Contributor

Choose a reason for hiding this comment

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

This one I might just call Toolset. Metadata such an overloaded concept already throughout our projects.

)

type ToolsetMetadata struct {
ID string
Copy link
Contributor

Choose a reason for hiding this comment

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

Above you defined a type for this, but here you're using string and calling it ID. If you rename you Toolset type to ToolsetName this line becomes

Name ToolsetName

@jrhouston
Copy link
Contributor

jrhouston commented Nov 30, 2025

Tried this out, looks good. Left some nitpicky comments about toolsets.go.

  • Add CHANGELOG entry
  • Some unit tests for the functions introduced in the toolsets package.

Copy link
Contributor

@jrhouston jrhouston left a comment

Choose a reason for hiding this comment

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

One small thing.

Name: All,
Description: "Special toolset that enables all available toolsets",
}
Default_Toolset = Toolset{
Copy link
Contributor

Choose a reason for hiding this comment

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

Nit: we're not supposed to use underscores in variable names.

@jaylonmcshan19-x jaylonmcshan19-x merged commit a3ddfb1 into main Dec 3, 2025
32 checks passed
@jaylonmcshan19-x jaylonmcshan19-x deleted the enable-toolset-flag branch December 3, 2025 16:25
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