@@ -50,11 +50,18 @@ var (
5050 enabledToolsets = []string {github .ToolsetMetadataDefault .ID }
5151 }
5252
53+ // Parse tools (similar to toolsets)
54+ var enabledTools []string
55+ if err := viper .UnmarshalKey ("tools" , & enabledTools ); err != nil {
56+ return fmt .Errorf ("failed to unmarshal tools: %w" , err )
57+ }
58+
5359 stdioServerConfig := ghmcp.StdioServerConfig {
5460 Version : version ,
5561 Host : viper .GetString ("host" ),
5662 Token : token ,
5763 EnabledToolsets : enabledToolsets ,
64+ EnabledTools : enabledTools ,
5865 DynamicToolsets : viper .GetBool ("dynamic_toolsets" ),
5966 ReadOnly : viper .GetBool ("read-only" ),
6067 ExportTranslations : viper .GetBool ("export-translations" ),
@@ -75,6 +82,7 @@ func init() {
7582
7683 // Add global flags that will be shared by all commands
7784 rootCmd .PersistentFlags ().StringSlice ("toolsets" , nil , github .GenerateToolsetsHelp ())
85+ rootCmd .PersistentFlags ().StringSlice ("tools" , nil , "Comma-separated list of specific tools to enable (takes priority over toolsets)" )
7886 rootCmd .PersistentFlags ().Bool ("dynamic-toolsets" , false , "Enable dynamic toolsets" )
7987 rootCmd .PersistentFlags ().Bool ("read-only" , false , "Restrict the server to read-only operations" )
8088 rootCmd .PersistentFlags ().String ("log-file" , "" , "Path to log file" )
@@ -85,6 +93,7 @@ func init() {
8593
8694 // Bind flag to viper
8795 _ = viper .BindPFlag ("toolsets" , rootCmd .PersistentFlags ().Lookup ("toolsets" ))
96+ _ = viper .BindPFlag ("tools" , rootCmd .PersistentFlags ().Lookup ("tools" ))
8897 _ = viper .BindPFlag ("dynamic_toolsets" , rootCmd .PersistentFlags ().Lookup ("dynamic-toolsets" ))
8998 _ = viper .BindPFlag ("read-only" , rootCmd .PersistentFlags ().Lookup ("read-only" ))
9099 _ = viper .BindPFlag ("log-file" , rootCmd .PersistentFlags ().Lookup ("log-file" ))
0 commit comments