tools

package
v0.16.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 23, 2026 License: Apache-2.0 Imports: 6 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type BuildToolsetHandler

type BuildToolsetHandler interface {
	ListBuildTemplates(ctx context.Context, namespaceName string) (any, error)
	TriggerBuild(ctx context.Context, namespaceName, projectName, componentName, commit string) (any, error)
	ListBuilds(ctx context.Context, namespaceName, projectName, componentName string) (any, error)
	GetBuildObserverURL(ctx context.Context, namespaceName, projectName, componentName string) (any, error)
	ListBuildPlanes(ctx context.Context, namespaceName string) (any, error)
}

BuildToolsetHandler handles build operations

type ClusterPlaneHandler added in v0.15.0

type ClusterPlaneHandler interface {
	// ClusterDataPlane operations
	ListClusterDataPlanes(ctx context.Context) (any, error)
	GetClusterDataPlane(ctx context.Context, cdpName string) (any, error)
	CreateClusterDataPlane(ctx context.Context, req *models.CreateClusterDataPlaneRequest) (any, error)

	// ClusterBuildPlane operations
	ListClusterBuildPlanes(ctx context.Context) (any, error)

	// ClusterObservabilityPlane operations
	ListClusterObservabilityPlanes(ctx context.Context) (any, error)

	// ClusterComponentType operations
	ListClusterComponentTypes(ctx context.Context) (any, error)
	GetClusterComponentType(ctx context.Context, cctName string) (any, error)
	GetClusterComponentTypeSchema(ctx context.Context, cctName string) (any, error)

	// ClusterTrait operations
	ListClusterTraits(ctx context.Context) (any, error)
	GetClusterTrait(ctx context.Context, ctName string) (any, error)
	GetClusterTraitSchema(ctx context.Context, ctName string) (any, error)
}

ClusterPlaneHandler is an optional extension of InfrastructureToolsetHandler for cluster-scoped plane operations. Handlers that implement this interface alongside InfrastructureToolsetHandler will have cluster-plane MCP tools registered automatically. If the InfrastructureToolset does not implement ClusterPlaneHandler, the cluster-plane tools are silently skipped.

type ComponentToolsetHandler

type ComponentToolsetHandler interface {
	CreateComponent(
		ctx context.Context, namespaceName, projectName string, req *models.CreateComponentRequest,
	) (any, error)
	ListComponents(ctx context.Context, namespaceName, projectName string) (any, error)
	GetComponent(
		ctx context.Context, namespaceName, projectName, componentName string, additionalResources []string,
	) (any, error)
	UpdateComponentBinding(
		ctx context.Context, namespaceName, projectName, componentName, bindingName string,
		req *models.UpdateBindingRequest,
	) (any, error)
	GetComponentWorkloads(ctx context.Context, namespaceName, projectName, componentName string) (any, error)
	// Component release operations
	ListComponentReleases(ctx context.Context, namespaceName, projectName, componentName string) (any, error)
	CreateComponentRelease(ctx context.Context, namespaceName, projectName, componentName, releaseName string) (any, error)
	GetComponentRelease(ctx context.Context, namespaceName, projectName, componentName, releaseName string) (any, error)
	// Release binding operations
	ListReleaseBindings(
		ctx context.Context, namespaceName, projectName, componentName string, environments []string,
	) (any, error)
	PatchReleaseBinding(
		ctx context.Context, namespaceName, projectName, componentName, bindingName string,
		req *models.PatchReleaseBindingRequest,
	) (any, error)
	// Deployment operations
	DeployRelease(
		ctx context.Context, namespaceName, projectName, componentName string, req *models.DeployReleaseRequest,
	) (any, error)
	PromoteComponent(
		ctx context.Context, namespaceName, projectName, componentName string, req *models.PromoteComponentRequest,
	) (any, error)
	// Workload operations
	CreateWorkload(
		ctx context.Context, namespaceName, projectName, componentName string, workloadSpec interface{},
	) (any, error)
	// Schema operations
	GetComponentSchema(ctx context.Context, namespaceName, projectName, componentName string) (any, error)
	GetComponentReleaseSchema(
		ctx context.Context, namespaceName, projectName, componentName, releaseName string,
	) (any, error)
	// Trait operations
	ListComponentTraits(ctx context.Context, namespaceName, projectName, componentName string) (any, error)
	UpdateComponentTraits(
		ctx context.Context, namespaceName, projectName, componentName string, req *models.UpdateComponentTraitsRequest,
	) (any, error)
	// Release operations
	GetEnvironmentRelease(
		ctx context.Context, namespaceName, projectName, componentName, environmentName string,
	) (any, error)
	// Component patch operations
	PatchComponent(
		ctx context.Context, namespaceName, projectName, componentName string, req *models.PatchComponentRequest,
	) (any, error)
	// Component workflow operations
	ListComponentWorkflows(ctx context.Context, namespaceName string) (any, error)
	GetComponentWorkflowSchema(ctx context.Context, namespaceName, cwName string) (any, error)
	TriggerComponentWorkflow(ctx context.Context, namespaceName, projectName, componentName, commit string) (any, error)
	ListComponentWorkflowRuns(ctx context.Context, namespaceName, projectName, componentName string) (any, error)
	UpdateComponentWorkflowSchema(
		ctx context.Context, namespaceName, projectName, componentName string,
		req *models.UpdateComponentWorkflowRequest,
	) (any, error)
}

ComponentToolsetHandler handles component operations

type DeploymentToolsetHandler

type DeploymentToolsetHandler interface {
	GetProjectDeploymentPipeline(ctx context.Context, namespaceName, projectName string) (any, error)
	GetComponentObserverURL(
		ctx context.Context, namespaceName, projectName, componentName, environmentName string,
	) (any, error)
}

DeploymentToolsetHandler handles deployment operations

type InfrastructureToolsetHandler

type InfrastructureToolsetHandler interface {
	// Environment operations
	ListEnvironments(ctx context.Context, namespaceName string) (any, error)
	GetEnvironment(ctx context.Context, namespaceName, envName string) (any, error)
	CreateEnvironment(ctx context.Context, namespaceName string, req *models.CreateEnvironmentRequest) (any, error)

	// DataPlane operations
	ListDataPlanes(ctx context.Context, namespaceName string) (any, error)
	GetDataPlane(ctx context.Context, namespaceName, dpName string) (any, error)
	CreateDataPlane(ctx context.Context, namespaceName string, req *models.CreateDataPlaneRequest) (any, error)

	// ComponentType operations
	ListComponentTypes(ctx context.Context, namespaceName string) (any, error)
	GetComponentTypeSchema(ctx context.Context, namespaceName, ctName string) (any, error)

	// Workflow operations
	ListWorkflows(ctx context.Context, namespaceName string) (any, error)
	GetWorkflowSchema(ctx context.Context, namespaceName, workflowName string) (any, error)

	// Trait operations
	ListTraits(ctx context.Context, namespaceName string) (any, error)
	GetTraitSchema(ctx context.Context, namespaceName, traitName string) (any, error)

	// ObservabilityPlane operations
	ListObservabilityPlanes(ctx context.Context, namespaceName string) (any, error)

	// ComponentWorkflow operations (namespace-level)
	ListComponentWorkflows(ctx context.Context, namespaceName string) (any, error)
	GetComponentWorkflowSchema(ctx context.Context, namespaceName, cwName string) (any, error)
}

InfrastructureToolsetHandler handles infrastructure operations

type NamespaceToolsetHandler added in v0.13.0

type NamespaceToolsetHandler interface {
	GetNamespace(ctx context.Context, name string) (any, error)
	ListNamespaces(ctx context.Context) (any, error)
	CreateNamespace(ctx context.Context, req *models.CreateNamespaceRequest) (any, error)
	ListSecretReferences(ctx context.Context, namespaceName string) (any, error)
}

NamespaceToolsetHandler handles namespace operations

type ProjectToolsetHandler

type ProjectToolsetHandler interface {
	// Project operations
	ListProjects(ctx context.Context, namespaceName string) (any, error)
	GetProject(ctx context.Context, namespaceName, projectName string) (any, error)
	CreateProject(ctx context.Context, namespaceName string, req *models.CreateProjectRequest) (any, error)
}

ProjectToolsetHandler handles project operations

type RegisterFunc

type RegisterFunc func(s *mcp.Server)

RegisterFunc is a function type for registering MCP tools

type ResourceToolsetHandler

type ResourceToolsetHandler interface {
	ApplyResource(ctx context.Context, resource map[string]interface{}) (any, error)
	DeleteResource(ctx context.Context, resource map[string]interface{}) (any, error)
	GetResource(ctx context.Context, namespaceName, kind, resourceName string) (any, error)
}

ResourceToolsetHandler handles kubectl-like resource operations (apply/delete/get)

type SchemaToolsetHandler

type SchemaToolsetHandler interface {
	ExplainSchema(ctx context.Context, kind, path string) (any, error)
}

SchemaToolsetHandler handles schema and resource explanation operations

type ToolsetType

type ToolsetType string

ToolsetType represents a type of toolset that can be enabled

const (
	ToolsetNamespace      ToolsetType = "namespace"
	ToolsetProject        ToolsetType = "project"
	ToolsetComponent      ToolsetType = "component"
	ToolsetBuild          ToolsetType = "build"
	ToolsetDeployment     ToolsetType = "deployment"
	ToolsetInfrastructure ToolsetType = "infrastructure"
	ToolsetSchema         ToolsetType = "schema"
	ToolsetResource       ToolsetType = "resource"
)

type Toolsets

type Toolsets struct {
	NamespaceToolset      NamespaceToolsetHandler
	ProjectToolset        ProjectToolsetHandler
	ComponentToolset      ComponentToolsetHandler
	BuildToolset          BuildToolsetHandler
	DeploymentToolset     DeploymentToolsetHandler
	InfrastructureToolset InfrastructureToolsetHandler
	SchemaToolset         SchemaToolsetHandler
	ResourceToolset       ResourceToolsetHandler
}

func (*Toolsets) Register

func (t *Toolsets) Register(s *mcp.Server)

func (*Toolsets) RegisterApplyResource

func (t *Toolsets) RegisterApplyResource(s *mcp.Server)

func (*Toolsets) RegisterCreateClusterDataPlane added in v0.15.0

func (t *Toolsets) RegisterCreateClusterDataPlane(s *mcp.Server)

func (*Toolsets) RegisterCreateComponent

func (t *Toolsets) RegisterCreateComponent(s *mcp.Server)

func (*Toolsets) RegisterCreateComponentRelease

func (t *Toolsets) RegisterCreateComponentRelease(s *mcp.Server)

func (*Toolsets) RegisterCreateDataPlane

func (t *Toolsets) RegisterCreateDataPlane(s *mcp.Server)

func (*Toolsets) RegisterCreateEnvironment

func (t *Toolsets) RegisterCreateEnvironment(s *mcp.Server)

func (*Toolsets) RegisterCreateNamespace added in v0.13.0

func (t *Toolsets) RegisterCreateNamespace(s *mcp.Server)

func (*Toolsets) RegisterCreateProject

func (t *Toolsets) RegisterCreateProject(s *mcp.Server)

func (*Toolsets) RegisterCreateWorkload

func (t *Toolsets) RegisterCreateWorkload(s *mcp.Server)

func (*Toolsets) RegisterDeleteResource

func (t *Toolsets) RegisterDeleteResource(s *mcp.Server)

func (*Toolsets) RegisterDeployRelease

func (t *Toolsets) RegisterDeployRelease(s *mcp.Server)

func (*Toolsets) RegisterExplainSchema

func (t *Toolsets) RegisterExplainSchema(s *mcp.Server)

func (*Toolsets) RegisterGetBuildObserverURL

func (t *Toolsets) RegisterGetBuildObserverURL(s *mcp.Server)

func (*Toolsets) RegisterGetClusterComponentType added in v0.16.0

func (t *Toolsets) RegisterGetClusterComponentType(s *mcp.Server)

RegisterGetClusterComponentType registers the "get_cluster_component_type" MCP tool which returns detailed information about a specific cluster-scoped component type. Only registered when InfrastructureToolset also implements ClusterPlaneHandler; otherwise it is a no-op.

func (*Toolsets) RegisterGetClusterComponentTypeSchema added in v0.16.0

func (t *Toolsets) RegisterGetClusterComponentTypeSchema(s *mcp.Server)

RegisterGetClusterComponentTypeSchema registers the "get_cluster_component_type_schema" MCP tool which returns the JSON schema for a specific cluster-scoped component type. Only registered when InfrastructureToolset also implements ClusterPlaneHandler; otherwise it is a no-op.

func (*Toolsets) RegisterGetClusterDataPlane added in v0.15.0

func (t *Toolsets) RegisterGetClusterDataPlane(s *mcp.Server)

RegisterGetClusterDataPlane registers the "get_cluster_dataplane" MCP tool which returns detailed information about a specific cluster-scoped data plane including cluster details, capacity, health status, and network configuration. Requires a "cdp_name" parameter (discoverable via list_cluster_dataplanes). Only registered when InfrastructureToolset also implements ClusterPlaneHandler; otherwise it is a no-op. Added in v0.12.0 (non-breaking, additive).

func (*Toolsets) RegisterGetClusterTrait added in v0.16.0

func (t *Toolsets) RegisterGetClusterTrait(s *mcp.Server)

RegisterGetClusterTrait registers the "get_cluster_trait" MCP tool which returns detailed information about a specific cluster-scoped trait. Only registered when InfrastructureToolset also implements ClusterPlaneHandler; otherwise it is a no-op.

func (*Toolsets) RegisterGetClusterTraitSchema added in v0.16.0

func (t *Toolsets) RegisterGetClusterTraitSchema(s *mcp.Server)

RegisterGetClusterTraitSchema registers the "get_cluster_trait_schema" MCP tool which returns the JSON schema for a specific cluster-scoped trait. Only registered when InfrastructureToolset also implements ClusterPlaneHandler; otherwise it is a no-op.

func (*Toolsets) RegisterGetComponent

func (t *Toolsets) RegisterGetComponent(s *mcp.Server)

func (*Toolsets) RegisterGetComponentObserverURL

func (t *Toolsets) RegisterGetComponentObserverURL(s *mcp.Server)

func (*Toolsets) RegisterGetComponentRelease

func (t *Toolsets) RegisterGetComponentRelease(s *mcp.Server)

func (*Toolsets) RegisterGetComponentReleaseSchema

func (t *Toolsets) RegisterGetComponentReleaseSchema(s *mcp.Server)

func (*Toolsets) RegisterGetComponentSchema

func (t *Toolsets) RegisterGetComponentSchema(s *mcp.Server)

func (*Toolsets) RegisterGetComponentTypeSchema

func (t *Toolsets) RegisterGetComponentTypeSchema(s *mcp.Server)

func (*Toolsets) RegisterGetComponentWorkflowSchema added in v0.9.0

func (t *Toolsets) RegisterGetComponentWorkflowSchema(s *mcp.Server)

func (*Toolsets) RegisterGetComponentWorkflowSchemaOrgLevel added in v0.9.0

func (t *Toolsets) RegisterGetComponentWorkflowSchemaOrgLevel(s *mcp.Server)

func (*Toolsets) RegisterGetComponentWorkloads

func (t *Toolsets) RegisterGetComponentWorkloads(s *mcp.Server)

func (*Toolsets) RegisterGetDataPlane

func (t *Toolsets) RegisterGetDataPlane(s *mcp.Server)

func (*Toolsets) RegisterGetDeploymentPipeline

func (t *Toolsets) RegisterGetDeploymentPipeline(s *mcp.Server)

func (*Toolsets) RegisterGetEnvironmentRelease added in v0.9.0

func (t *Toolsets) RegisterGetEnvironmentRelease(s *mcp.Server)

func (*Toolsets) RegisterGetEnvironments

func (t *Toolsets) RegisterGetEnvironments(s *mcp.Server)

func (*Toolsets) RegisterGetNamespace added in v0.13.0

func (t *Toolsets) RegisterGetNamespace(s *mcp.Server)

func (*Toolsets) RegisterGetProject

func (t *Toolsets) RegisterGetProject(s *mcp.Server)

func (*Toolsets) RegisterGetResource added in v0.15.0

func (t *Toolsets) RegisterGetResource(s *mcp.Server)

RegisterGetResource registers the get_resource MCP tool. TODO: cleanup when the upstream endpoint is deprecated.

func (*Toolsets) RegisterGetTraitSchema

func (t *Toolsets) RegisterGetTraitSchema(s *mcp.Server)

func (*Toolsets) RegisterGetWorkflowSchema

func (t *Toolsets) RegisterGetWorkflowSchema(s *mcp.Server)

func (*Toolsets) RegisterListBuildPlanes

func (t *Toolsets) RegisterListBuildPlanes(s *mcp.Server)

func (*Toolsets) RegisterListBuildTemplates

func (t *Toolsets) RegisterListBuildTemplates(s *mcp.Server)

func (*Toolsets) RegisterListBuilds

func (t *Toolsets) RegisterListBuilds(s *mcp.Server)

func (*Toolsets) RegisterListClusterBuildPlanes added in v0.15.0

func (t *Toolsets) RegisterListClusterBuildPlanes(s *mcp.Server)

func (*Toolsets) RegisterListClusterComponentTypes added in v0.16.0

func (t *Toolsets) RegisterListClusterComponentTypes(s *mcp.Server)

RegisterListClusterComponentTypes registers the "list_cluster_component_types" MCP tool which lists all cluster-scoped component types (shared templates managed by platform admins, not scoped to any namespace). Only registered when InfrastructureToolset also implements ClusterPlaneHandler; otherwise it is a no-op.

func (*Toolsets) RegisterListClusterDataPlanes added in v0.15.0

func (t *Toolsets) RegisterListClusterDataPlanes(s *mcp.Server)

RegisterListClusterDataPlanes registers the "list_cluster_dataplanes" MCP tool which lists all cluster-scoped data planes (shared infrastructure managed by platform admins, not scoped to any namespace). This tool is only registered when InfrastructureToolset also implements ClusterPlaneHandler; otherwise it is a no-op. Added in v0.12.0 (non-breaking, additive).

func (*Toolsets) RegisterListClusterObservabilityPlanes added in v0.15.0

func (t *Toolsets) RegisterListClusterObservabilityPlanes(s *mcp.Server)

func (*Toolsets) RegisterListClusterTraits added in v0.16.0

func (t *Toolsets) RegisterListClusterTraits(s *mcp.Server)

RegisterListClusterTraits registers the "list_cluster_traits" MCP tool which lists all cluster-scoped traits (shared trait definitions managed by platform admins, not scoped to any namespace). Only registered when InfrastructureToolset also implements ClusterPlaneHandler; otherwise it is a no-op.

func (*Toolsets) RegisterListComponentReleases

func (t *Toolsets) RegisterListComponentReleases(s *mcp.Server)

func (*Toolsets) RegisterListComponentTraits added in v0.9.0

func (t *Toolsets) RegisterListComponentTraits(s *mcp.Server)

func (*Toolsets) RegisterListComponentTypes

func (t *Toolsets) RegisterListComponentTypes(s *mcp.Server)

func (*Toolsets) RegisterListComponentWorkflowRuns added in v0.9.0

func (t *Toolsets) RegisterListComponentWorkflowRuns(s *mcp.Server)

func (*Toolsets) RegisterListComponentWorkflows added in v0.9.0

func (t *Toolsets) RegisterListComponentWorkflows(s *mcp.Server)

func (*Toolsets) RegisterListComponentWorkflowsOrgLevel added in v0.9.0

func (t *Toolsets) RegisterListComponentWorkflowsOrgLevel(s *mcp.Server)

func (*Toolsets) RegisterListComponents

func (t *Toolsets) RegisterListComponents(s *mcp.Server)

func (*Toolsets) RegisterListDataPlanes

func (t *Toolsets) RegisterListDataPlanes(s *mcp.Server)

func (*Toolsets) RegisterListEnvironments

func (t *Toolsets) RegisterListEnvironments(s *mcp.Server)

func (*Toolsets) RegisterListNamespaces added in v0.13.0

func (t *Toolsets) RegisterListNamespaces(s *mcp.Server)

func (*Toolsets) RegisterListObservabilityPlanes added in v0.9.0

func (t *Toolsets) RegisterListObservabilityPlanes(s *mcp.Server)

func (*Toolsets) RegisterListProjects

func (t *Toolsets) RegisterListProjects(s *mcp.Server)

func (*Toolsets) RegisterListReleaseBindings

func (t *Toolsets) RegisterListReleaseBindings(s *mcp.Server)

func (*Toolsets) RegisterListSecretReferences added in v0.9.0

func (t *Toolsets) RegisterListSecretReferences(s *mcp.Server)

func (*Toolsets) RegisterListTraits

func (t *Toolsets) RegisterListTraits(s *mcp.Server)

func (*Toolsets) RegisterListWorkflows

func (t *Toolsets) RegisterListWorkflows(s *mcp.Server)

func (*Toolsets) RegisterPatchComponent added in v0.9.0

func (t *Toolsets) RegisterPatchComponent(s *mcp.Server)

func (*Toolsets) RegisterPatchReleaseBinding

func (t *Toolsets) RegisterPatchReleaseBinding(s *mcp.Server)

func (*Toolsets) RegisterPromoteComponent

func (t *Toolsets) RegisterPromoteComponent(s *mcp.Server)

func (*Toolsets) RegisterTriggerBuild

func (t *Toolsets) RegisterTriggerBuild(s *mcp.Server)

func (*Toolsets) RegisterTriggerComponentWorkflow added in v0.9.0

func (t *Toolsets) RegisterTriggerComponentWorkflow(s *mcp.Server)

func (*Toolsets) RegisterUpdateComponentBinding

func (t *Toolsets) RegisterUpdateComponentBinding(s *mcp.Server)

func (*Toolsets) RegisterUpdateComponentTraits added in v0.9.0

func (t *Toolsets) RegisterUpdateComponentTraits(s *mcp.Server)

func (*Toolsets) RegisterUpdateComponentWorkflowSchema added in v0.9.0

func (t *Toolsets) RegisterUpdateComponentWorkflowSchema(s *mcp.Server)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL