Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ go 1.24.1

require (
github.com/fsnotify/fsnotify v1.9.0
github.com/mark3labs/mcp-go v0.28.0
github.com/mark3labs/mcp-go v0.29.0
github.com/pkg/errors v0.9.1
github.com/spf13/afero v1.14.0
github.com/spf13/cobra v1.9.1
Expand Down
4 changes: 2 additions & 2 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -185,8 +185,8 @@ github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de h1:9TO3cAIGXtEhn
github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de/go.mod h1:zAbeS9B/r2mtpb6U+EI2rYA5OAXxsYw6wTamcNW+zcE=
github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0=
github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
github.com/mark3labs/mcp-go v0.28.0 h1:7yl4y5D1KYU2f/9Uxp7xfLIggfunHoESCRbrjcytcLM=
github.com/mark3labs/mcp-go v0.28.0/go.mod h1:rXqOudj/djTORU/ThxYx8fqEVj/5pvTuuebQ2RC7uk4=
github.com/mark3labs/mcp-go v0.29.0 h1:sH1NBcumKskhxqYzhXfGc201D7P76TVXiT0fGVhabeI=
github.com/mark3labs/mcp-go v0.29.0/go.mod h1:rXqOudj/djTORU/ThxYx8fqEVj/5pvTuuebQ2RC7uk4=
github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc=
github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA=
github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg=
Expand Down
2 changes: 1 addition & 1 deletion pkg/mcp/configuration.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ func (s *Server) initConfiguration() []server.ServerTool {

func (s *Server) configurationView(_ context.Context, ctr mcp.CallToolRequest) (*mcp.CallToolResult, error) {
minify := true
minified := ctr.Params.Arguments["minified"]
minified := ctr.GetArguments()["minified"]
if _, ok := minified.(bool); ok {
minify = minified.(bool)
}
Expand Down
2 changes: 1 addition & 1 deletion pkg/mcp/events.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ func (s *Server) initEvents() []server.ServerTool {
}

func (s *Server) eventsList(ctx context.Context, ctr mcp.CallToolRequest) (*mcp.CallToolResult, error) {
namespace := ctr.Params.Arguments["namespace"]
namespace := ctr.GetArguments()["namespace"]
if namespace == nil {
namespace = ""
}
Expand Down
16 changes: 8 additions & 8 deletions pkg/mcp/helm.go
Original file line number Diff line number Diff line change
Expand Up @@ -48,19 +48,19 @@ func (s *Server) initHelm() []server.ServerTool {
func (s *Server) helmInstall(ctx context.Context, ctr mcp.CallToolRequest) (*mcp.CallToolResult, error) {
var chart string
ok := false
if chart, ok = ctr.Params.Arguments["chart"].(string); !ok {
if chart, ok = ctr.GetArguments()["chart"].(string); !ok {
return NewTextResult("", fmt.Errorf("failed to install helm chart, missing argument chart")), nil
}
values := map[string]interface{}{}
if v, ok := ctr.Params.Arguments["values"].(map[string]interface{}); ok {
if v, ok := ctr.GetArguments()["values"].(map[string]interface{}); ok {
values = v
}
name := ""
if v, ok := ctr.Params.Arguments["name"].(string); ok {
if v, ok := ctr.GetArguments()["name"].(string); ok {
name = v
}
namespace := ""
if v, ok := ctr.Params.Arguments["namespace"].(string); ok {
if v, ok := ctr.GetArguments()["namespace"].(string); ok {
namespace = v
}
ret, err := s.k.Helm.Install(ctx, chart, values, name, namespace)
Expand All @@ -72,11 +72,11 @@ func (s *Server) helmInstall(ctx context.Context, ctr mcp.CallToolRequest) (*mcp

func (s *Server) helmList(_ context.Context, ctr mcp.CallToolRequest) (*mcp.CallToolResult, error) {
allNamespaces := false
if v, ok := ctr.Params.Arguments["all_namespaces"].(bool); ok {
if v, ok := ctr.GetArguments()["all_namespaces"].(bool); ok {
allNamespaces = v
}
namespace := ""
if v, ok := ctr.Params.Arguments["namespace"].(string); ok {
if v, ok := ctr.GetArguments()["namespace"].(string); ok {
namespace = v
}
ret, err := s.k.Helm.List(namespace, allNamespaces)
Expand All @@ -89,11 +89,11 @@ func (s *Server) helmList(_ context.Context, ctr mcp.CallToolRequest) (*mcp.Call
func (s *Server) helmUninstall(_ context.Context, ctr mcp.CallToolRequest) (*mcp.CallToolResult, error) {
var name string
ok := false
if name, ok = ctr.Params.Arguments["name"].(string); !ok {
if name, ok = ctr.GetArguments()["name"].(string); !ok {
return NewTextResult("", fmt.Errorf("failed to uninstall helm chart, missing argument name")), nil
}
namespace := ""
if v, ok := ctr.Params.Arguments["namespace"].(string); ok {
if v, ok := ctr.GetArguments()["namespace"].(string); ok {
namespace = v
}
ret, err := s.k.Helm.Uninstall(name, namespace)
Expand Down
36 changes: 18 additions & 18 deletions pkg/mcp/pods.go
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ func (s *Server) initPods() []server.ServerTool {
}

func (s *Server) podsListInAllNamespaces(ctx context.Context, ctr mcp.CallToolRequest) (*mcp.CallToolResult, error) {
labelSelector := ctr.Params.Arguments["labelSelector"]
labelSelector := ctr.GetArguments()["labelSelector"]
var selector string
if labelSelector != nil {
selector = labelSelector.(string)
Expand All @@ -114,11 +114,11 @@ func (s *Server) podsListInAllNamespaces(ctx context.Context, ctr mcp.CallToolRe
}

func (s *Server) podsListInNamespace(ctx context.Context, ctr mcp.CallToolRequest) (*mcp.CallToolResult, error) {
ns := ctr.Params.Arguments["namespace"]
ns := ctr.GetArguments()["namespace"]
if ns == nil {
return NewTextResult("", errors.New("failed to list pods in namespace, missing argument namespace")), nil
}
labelSelector := ctr.Params.Arguments["labelSelector"]
labelSelector := ctr.GetArguments()["labelSelector"]
var selector string
if labelSelector != nil {
selector = labelSelector.(string)
Expand All @@ -131,11 +131,11 @@ func (s *Server) podsListInNamespace(ctx context.Context, ctr mcp.CallToolReques
}

func (s *Server) podsGet(ctx context.Context, ctr mcp.CallToolRequest) (*mcp.CallToolResult, error) {
ns := ctr.Params.Arguments["namespace"]
ns := ctr.GetArguments()["namespace"]
if ns == nil {
ns = ""
}
name := ctr.Params.Arguments["name"]
name := ctr.GetArguments()["name"]
if name == nil {
return NewTextResult("", errors.New("failed to get pod, missing argument name")), nil
}
Expand All @@ -147,11 +147,11 @@ func (s *Server) podsGet(ctx context.Context, ctr mcp.CallToolRequest) (*mcp.Cal
}

func (s *Server) podsDelete(ctx context.Context, ctr mcp.CallToolRequest) (*mcp.CallToolResult, error) {
ns := ctr.Params.Arguments["namespace"]
ns := ctr.GetArguments()["namespace"]
if ns == nil {
ns = ""
}
name := ctr.Params.Arguments["name"]
name := ctr.GetArguments()["name"]
if name == nil {
return NewTextResult("", errors.New("failed to delete pod, missing argument name")), nil
}
Expand All @@ -163,19 +163,19 @@ func (s *Server) podsDelete(ctx context.Context, ctr mcp.CallToolRequest) (*mcp.
}

func (s *Server) podsExec(ctx context.Context, ctr mcp.CallToolRequest) (*mcp.CallToolResult, error) {
ns := ctr.Params.Arguments["namespace"]
ns := ctr.GetArguments()["namespace"]
if ns == nil {
ns = ""
}
name := ctr.Params.Arguments["name"]
name := ctr.GetArguments()["name"]
if name == nil {
return NewTextResult("", errors.New("failed to exec in pod, missing argument name")), nil
}
container := ctr.Params.Arguments["container"]
container := ctr.GetArguments()["container"]
if container == nil {
container = ""
}
commandArg := ctr.Params.Arguments["command"]
commandArg := ctr.GetArguments()["command"]
command := make([]string, 0)
if _, ok := commandArg.([]interface{}); ok {
for _, cmd := range commandArg.([]interface{}) {
Expand All @@ -196,15 +196,15 @@ func (s *Server) podsExec(ctx context.Context, ctr mcp.CallToolRequest) (*mcp.Ca
}

func (s *Server) podsLog(ctx context.Context, ctr mcp.CallToolRequest) (*mcp.CallToolResult, error) {
ns := ctr.Params.Arguments["namespace"]
ns := ctr.GetArguments()["namespace"]
if ns == nil {
ns = ""
}
name := ctr.Params.Arguments["name"]
name := ctr.GetArguments()["name"]
if name == nil {
return NewTextResult("", errors.New("failed to get pod log, missing argument name")), nil
}
container := ctr.Params.Arguments["container"]
container := ctr.GetArguments()["container"]
if container == nil {
container = ""
}
Expand All @@ -218,19 +218,19 @@ func (s *Server) podsLog(ctx context.Context, ctr mcp.CallToolRequest) (*mcp.Cal
}

func (s *Server) podsRun(ctx context.Context, ctr mcp.CallToolRequest) (*mcp.CallToolResult, error) {
ns := ctr.Params.Arguments["namespace"]
ns := ctr.GetArguments()["namespace"]
if ns == nil {
ns = ""
}
name := ctr.Params.Arguments["name"]
name := ctr.GetArguments()["name"]
if name == nil {
name = ""
}
image := ctr.Params.Arguments["image"]
image := ctr.GetArguments()["image"]
if image == nil {
return NewTextResult("", errors.New("failed to run pod, missing argument image")), nil
}
port := ctr.Params.Arguments["port"]
port := ctr.GetArguments()["port"]
if port == nil {
port = float64(0)
}
Expand Down
20 changes: 10 additions & 10 deletions pkg/mcp/resources.go
Original file line number Diff line number Diff line change
Expand Up @@ -97,15 +97,15 @@ func (s *Server) initResources() []server.ServerTool {
}

func (s *Server) resourcesList(ctx context.Context, ctr mcp.CallToolRequest) (*mcp.CallToolResult, error) {
namespace := ctr.Params.Arguments["namespace"]
namespace := ctr.GetArguments()["namespace"]
if namespace == nil {
namespace = ""
}
labelSelector := ctr.Params.Arguments["labelSelector"]
labelSelector := ctr.GetArguments()["labelSelector"]
if labelSelector == nil {
labelSelector = ""
}
gvk, err := parseGroupVersionKind(ctr.Params.Arguments)
gvk, err := parseGroupVersionKind(ctr.GetArguments())
if err != nil {
return NewTextResult("", fmt.Errorf("failed to list resources, %s", err)), nil
}
Expand All @@ -117,15 +117,15 @@ func (s *Server) resourcesList(ctx context.Context, ctr mcp.CallToolRequest) (*m
}

func (s *Server) resourcesGet(ctx context.Context, ctr mcp.CallToolRequest) (*mcp.CallToolResult, error) {
namespace := ctr.Params.Arguments["namespace"]
namespace := ctr.GetArguments()["namespace"]
if namespace == nil {
namespace = ""
}
gvk, err := parseGroupVersionKind(ctr.Params.Arguments)
gvk, err := parseGroupVersionKind(ctr.GetArguments())
if err != nil {
return NewTextResult("", fmt.Errorf("failed to get resource, %s", err)), nil
}
name := ctr.Params.Arguments["name"]
name := ctr.GetArguments()["name"]
if name == nil {
return NewTextResult("", errors.New("failed to get resource, missing argument name")), nil
}
Expand All @@ -137,7 +137,7 @@ func (s *Server) resourcesGet(ctx context.Context, ctr mcp.CallToolRequest) (*mc
}

func (s *Server) resourcesCreateOrUpdate(ctx context.Context, ctr mcp.CallToolRequest) (*mcp.CallToolResult, error) {
resource := ctr.Params.Arguments["resource"]
resource := ctr.GetArguments()["resource"]
if resource == nil || resource == "" {
return NewTextResult("", errors.New("failed to create or update resources, missing argument resource")), nil
}
Expand All @@ -149,15 +149,15 @@ func (s *Server) resourcesCreateOrUpdate(ctx context.Context, ctr mcp.CallToolRe
}

func (s *Server) resourcesDelete(ctx context.Context, ctr mcp.CallToolRequest) (*mcp.CallToolResult, error) {
namespace := ctr.Params.Arguments["namespace"]
namespace := ctr.GetArguments()["namespace"]
if namespace == nil {
namespace = ""
}
gvk, err := parseGroupVersionKind(ctr.Params.Arguments)
gvk, err := parseGroupVersionKind(ctr.GetArguments())
if err != nil {
return NewTextResult("", fmt.Errorf("failed to delete resource, %s", err)), nil
}
name := ctr.Params.Arguments["name"]
name := ctr.GetArguments()["name"]
if name == nil {
return NewTextResult("", errors.New("failed to delete resource, missing argument name")), nil
}
Expand Down