Documentation
¶
Overview ¶
Package federation provides peer-to-peer federation capabilities for distributed MCP server discovery and tool invocation across server boundaries.
Index ¶
- type FederationRouter
- type InvokeRequest
- type InvokeResponse
- type ListToolsResponse
- type Logger
- type Peer
- type PeerManager
- func (pm *PeerManager) Connect(ctx context.Context, peerName string) error
- func (pm *PeerManager) DiscoverTools(ctx context.Context, peerName string) ([]ToolInfo, error)
- func (pm *PeerManager) GetPeerStatus(peerName string) PeerStatus
- func (pm *PeerManager) GetToolPeer(toolName string) string
- func (pm *PeerManager) Invoke(ctx context.Context, peerName string, server, tool string, ...) ([]byte, error)
- func (pm *PeerManager) IsEnabled() bool
- func (pm *PeerManager) ListPeers() []string
- func (pm *PeerManager) MarkPeerOffline(peerName string)
- type PeerStatus
- type ToolInfo
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type FederationRouter ¶
type FederationRouter struct {
// contains filtered or unexported fields
}
func NewFederationRouter ¶
func NewFederationRouter(pm *PeerManager, logger Logger) *FederationRouter
func (*FederationRouter) InvokeWithFailover ¶
func (*FederationRouter) IsEnabled ¶
func (fr *FederationRouter) IsEnabled() bool
type InvokeRequest ¶
type InvokeResponse ¶
type InvokeResponse struct {
Result json.RawMessage `json:"result"`
}
type ListToolsResponse ¶
type ListToolsResponse struct {
Tools []string `json:"tools"`
}
type PeerManager ¶
type PeerManager struct {
// contains filtered or unexported fields
}
func NewPeerManager ¶
func NewPeerManager(cfg *migrate.FederationConfig, logger Logger) (*PeerManager, error)
func (*PeerManager) Connect ¶
func (pm *PeerManager) Connect(ctx context.Context, peerName string) error
func (*PeerManager) DiscoverTools ¶
func (*PeerManager) GetPeerStatus ¶
func (pm *PeerManager) GetPeerStatus(peerName string) PeerStatus
func (*PeerManager) GetToolPeer ¶
func (pm *PeerManager) GetToolPeer(toolName string) string
func (*PeerManager) IsEnabled ¶
func (pm *PeerManager) IsEnabled() bool
func (*PeerManager) ListPeers ¶
func (pm *PeerManager) ListPeers() []string
func (*PeerManager) MarkPeerOffline ¶
func (pm *PeerManager) MarkPeerOffline(peerName string)
type PeerStatus ¶
type PeerStatus string
const ( PeerStatusUnknown PeerStatus = "unknown" PeerStatusOnline PeerStatus = "online" PeerStatusOffline PeerStatus = "offline" PeerStatusError PeerStatus = "error" )
Click to show internal directories.
Click to hide internal directories.