@@ -67,7 +67,7 @@ type Server struct {
6767 configuration * Configuration
6868 server * server.MCPServer
6969 enabledTools []string
70- p internalk8s.ClusterProvider
70+ p internalk8s.ManagerProvider
7171}
7272
7373func NewServer (configuration Configuration ) (* Server , error ) {
@@ -94,14 +94,14 @@ func NewServer(configuration Configuration) (*Server, error) {
9494 if err := s .reloadKubernetesClusterProvider (); err != nil {
9595 return nil , err
9696 }
97- s .p .WatchClusters (s .reloadKubernetesClusterProvider )
97+ s .p .WatchTargets (s .reloadKubernetesClusterProvider )
9898
9999 return s , nil
100100}
101101
102102func (s * Server ) reloadKubernetesClusterProvider () error {
103103 ctx := context .Background ()
104- p , err := internalk8s .NewClusterProvider (s .configuration .StaticConfig )
104+ p , err := internalk8s .NewManagerProvider (s .configuration .StaticConfig )
105105 if err != nil {
106106 return err
107107 }
@@ -113,23 +113,33 @@ func (s *Server) reloadKubernetesClusterProvider() error {
113113
114114 s .p = p
115115
116- k , err := s .p .GetClusterManager (ctx , s .p .GetDefaultCluster ())
116+ k , err := s .p .GetManagerFor (ctx , s .p .GetDefaultTarget ())
117117 if err != nil {
118118 return err
119119 }
120120
121- clusters , err := p .GetClusters (ctx )
121+ targets , err := p .GetTargets (ctx )
122122 if err != nil {
123123 return err
124124 }
125125
126- mutator := WithClusterParameter (p .GetDefaultCluster (), clusters , []string {}) // TODO: see which tools (if any) do not need the cluster parameter
126+ filter := CompositeFilter (
127+ s .configuration .isToolApplicable ,
128+ ShouldIncludeTargetListTool (p .GetTargetParameterName (), targets ),
129+ )
130+
131+ mutator := WithTargetParameter (
132+ p .GetDefaultTarget (),
133+ p .GetTargetParameterName (),
134+ targets ,
135+ []string {"configuration_view" }, // TODO: see which tools (if any) do not need the cluster parameter
136+ )
127137
128138 applicableTools := make ([]api.ServerTool , 0 )
129139 for _ , toolset := range s .configuration .Toolsets () {
130140 for _ , tool := range toolset .GetTools (k ) {
131141 tool := mutator (tool )
132- if ! s . configuration . isToolApplicable (tool ) {
142+ if ! filter (tool ) {
133143 continue
134144 }
135145
@@ -177,18 +187,26 @@ func (s *Server) KubernetesApiVerifyToken(ctx context.Context, token string, aud
177187
178188 // Use provided cluster or default
179189 if cluster == "" {
180- cluster = s .p .GetDefaultCluster ()
190+ cluster = s .p .GetDefaultTarget ()
181191 }
182192
183193 // Get the cluster manager for the specified cluster
184- m , err := s .p .GetClusterManager (ctx , cluster )
194+ m , err := s .p .GetManagerFor (ctx , cluster )
185195 if err != nil {
186196 return nil , nil , err
187197 }
188198
189199 return m .VerifyToken (ctx , token , audience )
190200}
191201
202+ // GetTargetParameterName returns the parameter name used for target identification in MCP requests
203+ func (s * Server ) GetTargetParameterName () string {
204+ if s .p == nil {
205+ return "" // fallback for uninitialized provider
206+ }
207+ return s .p .GetTargetParameterName ()
208+ }
209+
192210func (s * Server ) GetEnabledTools () []string {
193211 return s .enabledTools
194212}
0 commit comments