tools

package
v0.17.0 Latest Latest
Warning

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

Go to latest
Published: Mar 4, 2026 License: Apache-2.0 Imports: 5 Imported by: 0

Documentation

Index

Constants

View Source
const DefaultPageSize = 100

DefaultPageSize is the default number of items per page for MCP list operations.

Variables

This section is empty.

Functions

This section is empty.

Types

type ComponentToolsetHandler

type ComponentToolsetHandler interface {
	CreateComponent(
		ctx context.Context, namespaceName, projectName string, req *gen.CreateComponentRequest,
	) (any, error)
	ListComponents(ctx context.Context, namespaceName, projectName string, opts ListOpts) (any, error)
	GetComponent(ctx context.Context, namespaceName, componentName string) (any, error)
	ListWorkloads(ctx context.Context, namespaceName, componentName string) (any, error)
	GetWorkload(ctx context.Context, namespaceName, workloadName string) (any, error)
	// Component release operations
	ListComponentReleases(ctx context.Context, namespaceName, componentName string, opts ListOpts) (any, error)
	CreateComponentRelease(ctx context.Context, namespaceName, componentName, releaseName string) (any, error)
	GetComponentRelease(ctx context.Context, namespaceName, releaseName string) (any, error)
	// Release binding operations
	ListReleaseBindings(ctx context.Context, namespaceName, componentName string, opts ListOpts) (any, error)
	GetReleaseBinding(ctx context.Context, namespaceName, bindingName string) (any, error)
	PatchReleaseBinding(
		ctx context.Context, namespaceName, bindingName string,
		req *gen.ReleaseBindingSpec,
	) (any, error)
	// Deployment operations
	DeployRelease(
		ctx context.Context, namespaceName, componentName string, req *gen.DeployReleaseRequest,
	) (any, error)
	PromoteComponent(
		ctx context.Context, namespaceName, componentName string, req *gen.PromoteComponentRequest,
	) (any, error)
	// Workload operations
	CreateWorkload(
		ctx context.Context, namespaceName, componentName string, workloadSpec interface{},
	) (any, error)
	UpdateWorkload(
		ctx context.Context, namespaceName, workloadName string, workloadSpec interface{},
	) (any, error)
	GetWorkloadSchema(ctx context.Context) (any, error)
	// Schema operations
	GetComponentSchema(ctx context.Context, namespaceName, componentName string) (any, error)
	// Release operations
	GetEnvironmentRelease(
		ctx context.Context, namespaceName, componentName, environmentName string,
	) (any, error)
	// Component patch operations
	PatchComponent(
		ctx context.Context, namespaceName, componentName string, req *gen.PatchComponentRequest,
	) (any, error)
	// Release binding state operations
	UpdateReleaseBindingState(
		ctx context.Context, namespaceName, bindingName string,
		state *gen.ReleaseBindingSpecState,
	) (any, error)
	// Component release schema
	GetComponentReleaseSchema(
		ctx context.Context, namespaceName, componentName, releaseName string,
	) (any, error)
	// Workflow run operations scoped by component
	TriggerWorkflowRun(
		ctx context.Context, namespaceName, projectName, componentName, commit string,
	) (any, error)

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

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

	// WorkflowRun operations
	CreateWorkflowRun(
		ctx context.Context, namespaceName, workflowName string,
		parameters map[string]interface{},
	) (any, error)
	ListWorkflowRuns(
		ctx context.Context, namespaceName, projectName, componentName string,
		opts ListOpts,
	) (any, error)
	GetWorkflowRun(ctx context.Context, namespaceName, runName string) (any, error)

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

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

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

ComponentToolsetHandler handles component operations

type InfrastructureToolsetHandler

type InfrastructureToolsetHandler interface {
	// Environment operations
	ListEnvironments(ctx context.Context, namespaceName string, opts ListOpts) (any, error)
	GetEnvironment(ctx context.Context, namespaceName, envName string) (any, error)

	// DeploymentPipeline operations
	GetDeploymentPipeline(ctx context.Context, namespaceName, pipelineName string) (any, error)
	ListDeploymentPipelines(ctx context.Context, namespaceName string, opts ListOpts) (any, error)

	// Observer URL operations
	GetObserverURL(ctx context.Context, namespaceName, envName string) (any, error)
}

InfrastructureToolsetHandler handles infrastructure operations

type ListOpts added in v0.17.0

type ListOpts struct {
	// Limit is the maximum number of items to return per page.
	// When 0 or unset, DefaultPageSize is used.
	Limit int
	// Cursor is an opaque pagination cursor from a previous response.
	Cursor string
}

ListOpts holds optional pagination parameters for list operations.

func (ListOpts) EffectiveLimit added in v0.17.0

func (o ListOpts) EffectiveLimit() int

EffectiveLimit returns the limit to use, applying DefaultPageSize when unset.

type NamespaceToolsetHandler added in v0.13.0

type NamespaceToolsetHandler interface {
	ListNamespaces(ctx context.Context, opts ListOpts) (any, error)
	CreateNamespace(ctx context.Context, req *gen.CreateNamespaceJSONRequestBody) (any, error)
	ListSecretReferences(ctx context.Context, namespaceName string, opts ListOpts) (any, error)
}

NamespaceToolsetHandler handles namespace operations

type PEToolsetHandler added in v0.17.0

type PEToolsetHandler interface {
	CreateEnvironment(ctx context.Context, namespaceName string, req *gen.CreateEnvironmentJSONRequestBody) (any, error)

	// DataPlane operations
	ListDataPlanes(ctx context.Context, namespaceName string, opts ListOpts) (any, error)
	GetDataPlane(ctx context.Context, namespaceName, dpName string) (any, error)
	CreateDataPlane(ctx context.Context, namespaceName string, req *gen.CreateDataPlaneJSONRequestBody) (any, error)

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

	// BuildPlane operations
	ListBuildPlanes(ctx context.Context, namespaceName string, opts ListOpts) (any, error)

	// ClusterDataPlane operations
	ListClusterDataPlanes(ctx context.Context, opts ListOpts) (any, error)
	GetClusterDataPlane(ctx context.Context, cdpName string) (any, error)
	CreateClusterDataPlane(ctx context.Context, req *gen.CreateClusterDataPlaneJSONRequestBody) (any, error)

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

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

PEToolsetHandler handles platform engineering operations on openchoreo

type ProjectToolsetHandler

type ProjectToolsetHandler interface {
	// Project operations
	ListProjects(ctx context.Context, namespaceName string, opts ListOpts) (any, error)
	CreateProject(ctx context.Context, namespaceName string, req *gen.CreateProjectJSONRequestBody) (any, error)
}

ProjectToolsetHandler handles project operations

type RegisterFunc

type RegisterFunc func(s *mcp.Server)

RegisterFunc is a function type for registering MCP tools

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"
	ToolsetInfrastructure ToolsetType = "infrastructure"
	ToolsetPE             ToolsetType = "pe"
)

type Toolsets

type Toolsets struct {
	NamespaceToolset      NamespaceToolsetHandler
	ProjectToolset        ProjectToolsetHandler
	ComponentToolset      ComponentToolsetHandler
	InfrastructureToolset InfrastructureToolsetHandler
	PEToolset             PEToolsetHandler
}

func (*Toolsets) Register

func (t *Toolsets) Register(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) RegisterCreateWorkflowRun added in v0.17.0

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

func (*Toolsets) RegisterCreateWorkload

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

func (*Toolsets) RegisterDeployRelease

func (t *Toolsets) RegisterDeployRelease(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.

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.

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.

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.

func (*Toolsets) RegisterGetComponent

func (t *Toolsets) RegisterGetComponent(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) 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) RegisterGetObserverURL added in v0.17.0

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

func (*Toolsets) RegisterGetReleaseBinding added in v0.17.0

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

func (*Toolsets) RegisterGetTraitSchema

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

func (*Toolsets) RegisterGetWorkflowRun added in v0.17.0

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

func (*Toolsets) RegisterGetWorkflowSchema

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

func (*Toolsets) RegisterGetWorkload added in v0.17.0

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

func (*Toolsets) RegisterGetWorkloadSchema added in v0.17.0

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

func (*Toolsets) RegisterListBuildPlanes

func (t *Toolsets) RegisterListBuildPlanes(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).

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).

func (*Toolsets) RegisterListComponentReleases

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

func (*Toolsets) RegisterListComponentTypes

func (t *Toolsets) RegisterListComponentTypes(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) RegisterListDeploymentPipelines added in v0.17.0

func (t *Toolsets) RegisterListDeploymentPipelines(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) RegisterListWorkflowRuns added in v0.17.0

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

func (*Toolsets) RegisterListWorkflows

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

func (*Toolsets) RegisterListWorkloads added in v0.17.0

func (t *Toolsets) RegisterListWorkloads(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) RegisterTriggerWorkflowRun added in v0.17.0

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

func (*Toolsets) RegisterUpdateReleaseBindingState added in v0.17.0

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

func (*Toolsets) RegisterUpdateWorkload added in v0.17.0

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

Jump to

Keyboard shortcuts

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