Documentation
¶
Overview ¶
internal/discovery/connection_manager.go
internal/discovery/service_discovery.go
Index ¶
- type ConnectionStatus
- type DynamicConnectionManager
- func (dcm *DynamicConnectionManager) AddConnection(conn *MCPConnection) error
- func (dcm *DynamicConnectionManager) CleanupStaleConnections(maxAge time.Duration) error
- func (dcm *DynamicConnectionManager) GetAllConnections() map[string]*MCPConnection
- func (dcm *DynamicConnectionManager) GetConnection(serviceName string) (*MCPConnection, error)
- func (dcm *DynamicConnectionManager) GetConnectionStatus() map[string]ConnectionStatus
- func (dcm *DynamicConnectionManager) GetConnections() []*MCPConnection
- func (dcm *DynamicConnectionManager) GetHealthyConnections(maxAge time.Duration) []*MCPConnection
- func (dcm *DynamicConnectionManager) OnServiceAdded(endpoint ServiceEndpoint)
- func (dcm *DynamicConnectionManager) OnServiceDeleted(serviceName, namespace string)
- func (dcm *DynamicConnectionManager) OnServiceModified(endpoint ServiceEndpoint)
- func (dcm *DynamicConnectionManager) RemoveConnection(name string) error
- func (dcm *DynamicConnectionManager) Start() error
- func (dcm *DynamicConnectionManager) Stop()
- func (dcm *DynamicConnectionManager) UpdateConnectionStatus(name, status string) error
- type K8sServiceDiscovery
- func (sd *K8sServiceDiscovery) AddHandler(handler ServiceDiscoveryHandler)
- func (sd *K8sServiceDiscovery) DiscoverMCPServers() ([]ServiceEndpoint, error)
- func (sd *K8sServiceDiscovery) DiscoverMCPServices(ctx context.Context) ([]ServiceEndpoint, error)
- func (sd *K8sServiceDiscovery) DiscoverMCPServicesByCapability(ctx context.Context, capability string) ([]ServiceEndpoint, error)
- func (sd *K8sServiceDiscovery) DiscoverMCPServicesByProtocol(ctx context.Context, protocol string) ([]ServiceEndpoint, error)
- func (sd *K8sServiceDiscovery) GetService(name string) (ServiceEndpoint, bool)
- func (sd *K8sServiceDiscovery) GetServices() []ServiceEndpoint
- func (sd *K8sServiceDiscovery) Start() error
- func (sd *K8sServiceDiscovery) Stop()
- type MCPConnection
- type MCPHTTPConnection
- type MCPSSEConnection
- type MCPSTDIOConnection
- type ServiceDiscoveryEvent
- type ServiceDiscoveryHandler
- type ServiceEndpoint
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ConnectionStatus ¶
type ConnectionStatus struct {
Connected bool `json:"connected"`
LastConnected time.Time `json:"lastConnected"`
ErrorCount int `json:"errorCount"`
LastError string `json:"lastError"`
}
ConnectionStatus represents the status of a connection
type DynamicConnectionManager ¶
type DynamicConnectionManager struct {
// contains filtered or unexported fields
}
DynamicConnectionManager manages connections to MCP servers discovered via Kubernetes
func NewDynamicConnectionManager ¶
func NewDynamicConnectionManager(serviceDiscovery *K8sServiceDiscovery, logger *logging.Logger) *DynamicConnectionManager
NewDynamicConnectionManager creates a new dynamic connection manager
func (*DynamicConnectionManager) AddConnection ¶
func (dcm *DynamicConnectionManager) AddConnection(conn *MCPConnection) error
AddConnection adds a new connection to the manager
func (*DynamicConnectionManager) CleanupStaleConnections ¶
func (dcm *DynamicConnectionManager) CleanupStaleConnections(maxAge time.Duration) error
CleanupStaleConnections removes connections that haven't been seen recently
func (*DynamicConnectionManager) GetAllConnections ¶
func (dcm *DynamicConnectionManager) GetAllConnections() map[string]*MCPConnection
GetAllConnections returns all active connections
func (*DynamicConnectionManager) GetConnection ¶
func (dcm *DynamicConnectionManager) GetConnection(serviceName string) (*MCPConnection, error)
GetConnection returns a connection for the specified service
func (*DynamicConnectionManager) GetConnectionStatus ¶
func (dcm *DynamicConnectionManager) GetConnectionStatus() map[string]ConnectionStatus
GetConnectionStatus returns the status of all connections
func (*DynamicConnectionManager) GetConnections ¶
func (dcm *DynamicConnectionManager) GetConnections() []*MCPConnection
GetConnections returns all connections as a slice
func (*DynamicConnectionManager) GetHealthyConnections ¶
func (dcm *DynamicConnectionManager) GetHealthyConnections(maxAge time.Duration) []*MCPConnection
GetHealthyConnections returns connections that are healthy within the given time window
func (*DynamicConnectionManager) OnServiceAdded ¶
func (dcm *DynamicConnectionManager) OnServiceAdded(endpoint ServiceEndpoint)
OnServiceAdded handles service discovery events when a new service is added
func (*DynamicConnectionManager) OnServiceDeleted ¶
func (dcm *DynamicConnectionManager) OnServiceDeleted(serviceName, namespace string)
OnServiceDeleted handles service discovery events when a service is deleted
func (*DynamicConnectionManager) OnServiceModified ¶
func (dcm *DynamicConnectionManager) OnServiceModified(endpoint ServiceEndpoint)
OnServiceModified handles service discovery events when a service is modified
func (*DynamicConnectionManager) RemoveConnection ¶
func (dcm *DynamicConnectionManager) RemoveConnection(name string) error
RemoveConnection removes a connection from the manager
func (*DynamicConnectionManager) Start ¶
func (dcm *DynamicConnectionManager) Start() error
Start begins the connection manager
func (*DynamicConnectionManager) Stop ¶
func (dcm *DynamicConnectionManager) Stop()
Stop stops the connection manager
func (*DynamicConnectionManager) UpdateConnectionStatus ¶
func (dcm *DynamicConnectionManager) UpdateConnectionStatus(name, status string) error
UpdateConnectionStatus updates the status of a connection
type K8sServiceDiscovery ¶
type K8sServiceDiscovery struct {
Client kubernetes.Interface // Public for testing
Namespace string // Public for testing
Logger *logging.Logger // Public for testing
// contains filtered or unexported fields
}
K8sServiceDiscovery provides system service discovery for MCP servers
func NewK8sServiceDiscovery ¶
func NewK8sServiceDiscovery(namespace string, logger *logging.Logger) (*K8sServiceDiscovery, error)
NewK8sServiceDiscovery creates a new Kubernetes service discovery instance
func (*K8sServiceDiscovery) AddHandler ¶
func (sd *K8sServiceDiscovery) AddHandler(handler ServiceDiscoveryHandler)
AddHandler adds a service discovery event handler
func (*K8sServiceDiscovery) DiscoverMCPServers ¶
func (sd *K8sServiceDiscovery) DiscoverMCPServers() ([]ServiceEndpoint, error)
DiscoverMCPServers performs an immediate discovery of all MCP servers
func (*K8sServiceDiscovery) DiscoverMCPServices ¶
func (sd *K8sServiceDiscovery) DiscoverMCPServices(ctx context.Context) ([]ServiceEndpoint, error)
DiscoverMCPServices performs an immediate discovery of all MCP services This is an alias for DiscoverMCPServers for API compatibility
func (*K8sServiceDiscovery) DiscoverMCPServicesByCapability ¶
func (sd *K8sServiceDiscovery) DiscoverMCPServicesByCapability(ctx context.Context, capability string) ([]ServiceEndpoint, error)
DiscoverMCPServicesByCapability discovers MCP services filtered by capability
func (*K8sServiceDiscovery) DiscoverMCPServicesByProtocol ¶
func (sd *K8sServiceDiscovery) DiscoverMCPServicesByProtocol(ctx context.Context, protocol string) ([]ServiceEndpoint, error)
DiscoverMCPServicesByProtocol discovers MCP services filtered by protocol
func (*K8sServiceDiscovery) GetService ¶
func (sd *K8sServiceDiscovery) GetService(name string) (ServiceEndpoint, bool)
GetService returns a specific service by name
func (*K8sServiceDiscovery) GetServices ¶
func (sd *K8sServiceDiscovery) GetServices() []ServiceEndpoint
GetServices returns all currently discovered services
func (*K8sServiceDiscovery) Start ¶
func (sd *K8sServiceDiscovery) Start() error
Start begins the service discovery process
func (*K8sServiceDiscovery) Stop ¶
func (sd *K8sServiceDiscovery) Stop()
Stop stops the service discovery process
type MCPConnection ¶
type MCPConnection struct {
Name string
Endpoint string
Protocol string
Port int32
Capabilities []string
Status string
LastSeen time.Time
HTTPConnection *MCPHTTPConnection
SSEConnection *MCPSSEConnection
StdioConnection *MCPSTDIOConnection
LastUsed time.Time
ErrorCount int
// contains filtered or unexported fields
}
MCPConnection represents a connection to an MCP server
type MCPHTTPConnection ¶
MCPHTTPConnection represents an HTTP connection
type MCPSSEConnection ¶
MCPSSEConnection represents an SSE connection
type MCPSTDIOConnection ¶
MCPSTDIOConnection represents a STDIO connection
type ServiceDiscoveryEvent ¶
type ServiceDiscoveryEvent struct {
Type string `json:"type"` // "ADDED", "MODIFIED", "DELETED"
Service ServiceEndpoint `json:"service"`
}
ServiceDiscoveryEvent represents a service discovery event
type ServiceDiscoveryHandler ¶
type ServiceDiscoveryHandler interface {
OnServiceAdded(endpoint ServiceEndpoint)
OnServiceModified(endpoint ServiceEndpoint)
OnServiceDeleted(serviceName, namespace string)
}
ServiceDiscoveryHandler handles service discovery events
type ServiceEndpoint ¶
type ServiceEndpoint struct {
Name string `json:"name"`
Namespace string `json:"namespace"`
URL string `json:"url"`
Endpoint string `json:"endpoint"` // For compatibility with tests
Protocol string `json:"protocol"`
Port int32 `json:"port"`
Capabilities []string `json:"capabilities"`
Labels map[string]string `json:"labels"`
LastDiscovered time.Time `json:"lastDiscovered"`
HealthStatus string `json:"healthStatus"`
ServiceType string `json:"serviceType"`
}
ServiceEndpoint represents a discovered MCP service endpoint