Skip to main content
Glama
update.go2.05 kB
package modules import ( "context" "encoding/json" "fmt" "github.com/mark3labs/mcp-go/mcp" "github.com/cyclops-ui/mcp-cyclops/internal/mapper" ) func (m *ModuleController) updateModuleTool() mcp.Tool { return mcp.NewTool("update_module", mcp.WithDescription("Update Module by Name"), mcp.WithString("module_name", mcp.Required(), mcp.Description("Name of the Module to update"), ), mcp.WithString("values", mcp.Required(), mcp.Description("Helm-like values in JSON string format to update the module with"), ), ) } func (m *ModuleController) updateModule(_ context.Context, request mcp.CallToolRequest) (*mcp.CallToolResult, error) { moduleName := request.Params.Arguments["module_name"].(string) valuesRaw := request.Params.Arguments["values"].(string) // Parse JSON string into apiextensionsv1.JSON var updateValues map[string]interface{} if err := json.Unmarshal([]byte(valuesRaw), &updateValues); err != nil { return nil, fmt.Errorf("failed to parse JSON values: %w", err) } // Get the current module curr, err := m.k8sClient.GetModule(moduleName) if err != nil { return nil, fmt.Errorf("failed to get module: %w", err) } module, err := mapper.UpdateModuleValues(curr, updateValues) template, err := m.templateRepo.GetTemplate( module.Spec.TemplateRef.URL, module.Spec.TemplateRef.Path, module.Spec.TemplateRef.Version, module.Status.TemplateResolvedVersion, module.Spec.TemplateRef.SourceType) if err != nil { return nil, err } var values map[string]interface{} if err := json.Unmarshal(module.Spec.Values.Raw, &values); err != nil { return nil, err } valid, validationError, err := m.validateModuleValues(template.RawSchema, values) if err != nil { return nil, err } if !valid { return mcp.NewToolResultError(validationError.Error()), nil } if err := m.k8sClient.UpdateModule(module); err != nil { return nil, fmt.Errorf("failed to update module: %w", err) } return mcp.NewToolResultText(fmt.Sprintf("Module %s updated successfully", moduleName)), nil }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/cyclops-ui/mcp-cyclops'

If you have feedback or need assistance with the MCP directory API, please join our Discord server