Documentation
¶
Overview ¶
Package groups provides functionality for managing logical groupings of MCP servers. This file contains the CLI/filesystem-based implementation for local environments.
Package groups provides functionality for managing logical groupings of MCP servers. This file contains the CRD-based implementation for Kubernetes environments.
Package groups provides functionality for managing logical groupings of MCP servers. It includes types and interfaces for creating, retrieving, listing, and deleting groups.
Package groups provides functionality for managing logical groupings of MCP servers.
Index ¶
- Constants
- Variables
- func AddPluginToGroup(ctx context.Context, mgr Manager, groupName string, pluginName string) (added bool, err error)
- func AddSkillToGroup(ctx context.Context, mgr Manager, groupName string, skillName string) (added bool, err error)
- func RemovePluginFromGroup(ctx context.Context, mgr Manager, groupName string, pluginName string) error
- func RemoveSkillFromAllGroups(ctx context.Context, mgr Manager, skillName string) error
- func RemoveSkillFromGroup(ctx context.Context, mgr Manager, groupName string, skillName string) error
- type Group
- type Manager
Constants ¶
const DefaultGroup = "default"
DefaultGroup is the name of the default group for workloads
const (
// DefaultGroupName is the name of the default group
DefaultGroupName = "default"
)
Variables ¶
var ( // ErrGroupAlreadyExists is returned when a group already exists ErrGroupAlreadyExists = httperr.WithCode( errors.New("group already exists"), http.StatusConflict, ) // ErrGroupNotFound is returned when a group is not found ErrGroupNotFound = httperr.WithCode( errors.New("group not found"), http.StatusNotFound, ) // ErrInvalidGroupName is returned when an invalid argument is provided ErrInvalidGroupName = httperr.WithCode( errors.New("invalid group name"), http.StatusBadRequest, ) )
Functions ¶
func AddPluginToGroup ¶ added in v0.34.0
func AddPluginToGroup(ctx context.Context, mgr Manager, groupName string, pluginName string) (added bool, err error)
AddPluginToGroup adds pluginName to the Plugins slice of the named group. Groups that do not exist return an error. Duplicate plugin names are skipped. Empty groupName is a no-op. The bool reports whether this call inserted the name (false when it was already a member or groupName is empty), so a later rollback can remove it only when this operation added it.
func AddSkillToGroup ¶ added in v0.11.1
func AddSkillToGroup(ctx context.Context, mgr Manager, groupName string, skillName string) (added bool, err error)
AddSkillToGroup adds skillName to the Skills slice of the named group. Groups that do not exist return an error. Duplicate skill names are skipped. Empty groupName is a no-op. The bool reports whether this call inserted the name (false when it was already a member or groupName is empty), so a later rollback can remove it only when this operation added it.
func RemovePluginFromGroup ¶ added in v0.45.0
func RemovePluginFromGroup(ctx context.Context, mgr Manager, groupName string, pluginName string) error
RemovePluginFromGroup removes pluginName from the named group's Plugins slice. Missing membership is a no-op. Empty groupName is a no-op.
func RemoveSkillFromAllGroups ¶ added in v0.11.1
RemoveSkillFromAllGroups removes skillName from every group that references it. It is a no-op when the skill is not found in any group.
Types ¶
type Group ¶
type Group struct {
Name string `json:"name"`
RegisteredClients []string `json:"registered_clients"`
Skills []string `json:"skills,omitempty"`
Plugins []string `json:"plugins,omitempty"`
}
Group represents a logical grouping of MCP servers.
type Manager ¶
type Manager interface {
// Create creates a new group with the specified name.
// Returns an error if a group with the same name already exists.
Create(ctx context.Context, name string) error
// Get retrieves a group by name.
// Returns an error if the group does not exist.
Get(ctx context.Context, name string) (*Group, error)
// List returns all groups.
List(ctx context.Context) ([]*Group, error)
// Delete removes a group by name.
// Returns an error if the group does not exist.
Delete(ctx context.Context, name string) error
// Exists checks if a group with the specified name exists.
Exists(ctx context.Context, name string) (bool, error)
// RegisterClients registers multiple clients with multiple groups.
RegisterClients(ctx context.Context, groupNames []string, clientNames []string) error
// UnregisterClients removes multiple clients from multiple groups.
UnregisterClients(ctx context.Context, groupNames []string, clientNames []string) error
// Update persists changes to an existing group.
// The group must already exist; returns an error if it does not.
Update(ctx context.Context, group *Group) error
}
Manager defines the interface for managing groups of MCP servers. It provides methods for creating, retrieving, listing, and deleting groups.
func NewCLIManager ¶ added in v0.6.0
NewCLIManager creates a new CLI-based group manager that uses filesystem storage
func NewCRDManager ¶ added in v0.6.0
NewCRDManager creates a new CRD-based group manager
func NewManager ¶
NewManager creates a new group manager based on the runtime environment: - In Kubernetes mode: returns a CRD-based manager that uses MCPGroup CRDs - In local mode: returns a CLI/filesystem-based manager