@@ -4,13 +4,13 @@ import (
44	"bytes" 
55	"context" 
66	"fmt" 
7- 	"k8s.io/klog/v2" 
87	"net/http" 
98	"slices" 
109
1110	"github.com/mark3labs/mcp-go/mcp" 
1211	"github.com/mark3labs/mcp-go/server" 
1312	authenticationapiv1 "k8s.io/api/authentication/v1" 
13+ 	"k8s.io/klog/v2" 
1414	"k8s.io/utils/ptr" 
1515
1616	"github.com/containers/kubernetes-mcp-server/pkg/config" 
@@ -19,7 +19,9 @@ import (
1919	"github.com/containers/kubernetes-mcp-server/pkg/version" 
2020)
2121
22- const  TokenScopesContextKey  =  "TokenScopesContextKey" 
22+ type  ContextKey  string 
23+ 
24+ const  TokenScopesContextKey  =  ContextKey ("TokenScopesContextKey" )
2325
2426type  Configuration  struct  {
2527	Profile     Profile 
@@ -202,10 +204,10 @@ func toolScopedAuthorizationMiddleware(next server.ToolHandlerFunc) server.ToolH
202204	return  func (ctx  context.Context , ctr  mcp.CallToolRequest ) (* mcp.CallToolResult , error ) {
203205		scopes , ok  :=  ctx .Value (TokenScopesContextKey ).([]string )
204206		if  ! ok  {
205- 			return  NewTextResult ("" , fmt .Errorf ("Authorization  failed: Access denied: Tool '%s' requires scope 'mcp:%s' but no scope is available" , ctr .Params .Name , ctr .Params .Name )), nil 
207+ 			return  NewTextResult ("" , fmt .Errorf ("authorization  failed: Access denied: Tool '%s' requires scope 'mcp:%s' but no scope is available" , ctr .Params .Name , ctr .Params .Name )), nil 
206208		}
207209		if  ! slices .Contains (scopes , "mcp:" + ctr .Params .Name ) &&  ! slices .Contains (scopes , ctr .Params .Name ) {
208- 			return  NewTextResult ("" , fmt .Errorf ("Authorization  failed: Access denied: Tool '%s' requires scope 'mcp:%s' but only scopes %s are available" , ctr .Params .Name , ctr .Params .Name , scopes )), nil 
210+ 			return  NewTextResult ("" , fmt .Errorf ("authorization  failed: Access denied: Tool '%s' requires scope 'mcp:%s' but only scopes %s are available" , ctr .Params .Name , ctr .Params .Name , scopes )), nil 
209211		}
210212		return  next (ctx , ctr )
211213	}
0 commit comments