Documentation
¶
Index ¶
- type BaseProvider
- type CliProvider
- type GRPCProvider
- type GraphQLProvider
- type HttpProvider
- type MCPProvider
- func (p *MCPProvider) GetName() string
- func (p *MCPProvider) Type() ProviderType
- func (p *MCPProvider) Validate() error
- func (p *MCPProvider) WithArgs(args ...string) *MCPProvider
- func (p *MCPProvider) WithEnv(key, value string) *MCPProvider
- func (p *MCPProvider) WithStdinData(data string) *MCPProvider
- func (p *MCPProvider) WithTimeout(seconds int) *MCPProvider
- func (p *MCPProvider) WithWorkingDir(dir string) *MCPProvider
- type McpConfig
- type McpHttpServer
- type McpServer
- type McpStdioServer
- type Provider
- type ProviderType
- type SSEProvider
- type StreamableHttpProvider
- type TCPProvider
- type UDPProvider
- type WebRTCProvider
- type WebSocketProvider
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type BaseProvider ¶
type BaseProvider struct {
Name string `json:"name"`
ProviderType ProviderType `json:"provider_type"`
}
BaseProvider holds fields common to every provider.
func (*BaseProvider) Type ¶
func (b *BaseProvider) Type() ProviderType
type CliProvider ¶
type CliProvider struct {
BaseProvider
CommandName string `json:"command_name"`
EnvVars map[string]string `json:"env_vars,omitempty"`
WorkingDir *string `json:"working_dir,omitempty"`
}
CliProvider represents a CLI tool.
type GRPCProvider ¶
type GRPCProvider struct {
BaseProvider
Host string `json:"host"`
Port int `json:"port"`
ServiceName string `json:"service_name"`
MethodName string `json:"method_name"`
UseSSL bool `json:"use_ssl"`
Auth *Auth `json:"auth,omitempty"`
}
GRPCProvider represents a gRPC service.
type GraphQLProvider ¶
type GraphQLProvider struct {
BaseProvider
URL string `json:"url"`
OperationType string `json:"operation_type"` // query, mutation, subscription
OperationName *string `json:"operation_name,omitempty"`
Auth *Auth `json:"auth,omitempty"`
Headers map[string]string `json:"headers,omitempty"`
HeaderFields []string `json:"header_fields,omitempty"`
}
GraphQLProvider represents a GraphQL endpoint.
type HttpProvider ¶
type HttpProvider struct {
BaseProvider
HTTPMethod string `json:"http_method"` // GET, POST, PUT, DELETE, PATCH
URL string `json:"url"`
ContentType string `json:"content_type"` // default application/json
Auth *Auth `json:"auth,omitempty"`
Headers map[string]string `json:"headers,omitempty"`
BodyField *string `json:"body_field,omitempty"` // name of the single input field
HeaderFields []string `json:"header_fields,omitempty"`
}
HttpProvider represents RESTful HTTP/HTTPS API.
type MCPProvider ¶
type MCPProvider struct {
Name string `json:"name" yaml:"name"`
Command []string `json:"command" yaml:"command"`
Args []string `json:"args,omitempty" yaml:"args,omitempty"`
Env map[string]string `json:"env,omitempty" yaml:"env,omitempty"`
WorkingDir string `json:"workingDir,omitempty" yaml:"workingDir,omitempty"`
StdinData string `json:"stdinData,omitempty" yaml:"stdinData,omitempty"`
Timeout int `json:"timeout,omitempty" yaml:"timeout,omitempty"` // seconds
}
MCPProvider represents an MCP (Model Context Protocol) tool provider.
func NewMCPProvider ¶
func NewMCPProvider(name string, command []string) *MCPProvider
NewMCPProvider constructs a new MCPProvider with the given name and command.
func NewMCPProviderFromJSON ¶
func NewMCPProviderFromJSON(data []byte) (*MCPProvider, error)
NewMCPProviderFromJSON creates an MCPProvider from JSON configuration.
func (*MCPProvider) GetName ¶
func (p *MCPProvider) GetName() string
GetName returns the provider's name.
func (*MCPProvider) Type ¶
func (p *MCPProvider) Type() ProviderType
Type returns the provider type.
func (*MCPProvider) Validate ¶
func (p *MCPProvider) Validate() error
Validate ensures the provider configuration is valid.
func (*MCPProvider) WithArgs ¶
func (p *MCPProvider) WithArgs(args ...string) *MCPProvider
WithArgs sets command line arguments for the MCP server process.
func (*MCPProvider) WithEnv ¶
func (p *MCPProvider) WithEnv(key, value string) *MCPProvider
WithEnv sets environment variables for the MCP server process.
func (*MCPProvider) WithStdinData ¶
func (p *MCPProvider) WithStdinData(data string) *MCPProvider
WithStdinData sets data to be sent to the MCP server's stdin on startup.
func (*MCPProvider) WithTimeout ¶
func (p *MCPProvider) WithTimeout(seconds int) *MCPProvider
WithTimeout sets the timeout for MCP operations in seconds.
func (*MCPProvider) WithWorkingDir ¶
func (p *MCPProvider) WithWorkingDir(dir string) *MCPProvider
WithWorkingDir sets the working directory for the MCP server process.
type McpHttpServer ¶
type McpHttpServer struct {
Transport string `json:"transport"` // always "http"
URL string `json:"url"`
}
McpHttpServer config for HTTP transport.
type McpStdioServer ¶
type McpStdioServer struct {
Transport string `json:"transport"` // always "stdio"
Command string `json:"command"`
Args []string `json:"args,omitempty"`
Env map[string]string `json:"env,omitempty"`
}
McpStdioServer config for stdio transport.
type Provider ¶
type Provider interface {
// Type returns the discriminator.
Type() ProviderType
}
Provider is implemented by all concrete provider types.
func UnmarshalProvider ¶
UnmarshalProvider inspects "provider_type" and returns the right struct.
type ProviderType ¶
type ProviderType string
ProviderType is the kind of provider.
const ( ProviderHTTP ProviderType = "http" ProviderSSE ProviderType = "sse" ProviderHTTPStream ProviderType = "http_stream" ProviderCLI ProviderType = "cli" ProviderWebSocket ProviderType = "websocket" ProviderGRPC ProviderType = "grpc" ProviderGraphQL ProviderType = "graphql" ProviderTCP ProviderType = "tcp" ProviderUDP ProviderType = "udp" ProviderWebRTC ProviderType = "webrtc" ProviderMCP ProviderType = "mcp" )
type SSEProvider ¶
type SSEProvider struct {
BaseProvider
URL string `json:"url"`
EventType *string `json:"event_type,omitempty"`
Reconnect bool `json:"reconnect"` // default true
RetryTimeout int `json:"retry_timeout"` // ms, default 30000
Auth *Auth `json:"auth,omitempty"`
Headers map[string]string `json:"headers,omitempty"`
BodyField *string `json:"body_field,omitempty"`
HeaderFields []string `json:"header_fields,omitempty"`
}
SSEProvider represents Server-Sent Events.
type StreamableHttpProvider ¶
type StreamableHttpProvider struct {
BaseProvider
URL string `json:"url"`
HTTPMethod string `json:"http_method"` // GET, POST
ContentType string `json:"content_type"` // default application/octet-stream
ChunkSize int `json:"chunk_size"` // bytes, default 4096
Timeout int `json:"timeout"` // ms, default 60000
Headers map[string]string `json:"headers,omitempty"`
Auth *Auth `json:"auth,omitempty"`
BodyField *string `json:"body_field,omitempty"`
HeaderFields []string `json:"header_fields,omitempty"`
}
StreamableHttpProvider is HTTP chunked transfer encoding.
type TCPProvider ¶
type TCPProvider struct {
BaseProvider
Host string `json:"host"`
Port int `json:"port"`
Timeout int `json:"timeout"` // ms, default 30000
}
TCPProvider represents a raw TCP socket.
type UDPProvider ¶
type UDPProvider struct {
BaseProvider
Host string `json:"host"`
Port int `json:"port"`
Timeout int `json:"timeout"`
}
UDPProvider represents a UDP socket.
type WebRTCProvider ¶
type WebRTCProvider struct {
BaseProvider
SignalingServer string `json:"signaling_server"`
PeerID string `json:"peer_id"`
DataChannelName string `json:"data_channel_name"`
}
WebRTCProvider represents a WebRTC data channel.
type WebSocketProvider ¶
type WebSocketProvider struct {
BaseProvider
URL string `json:"url"`
Protocol *string `json:"protocol,omitempty"`
KeepAlive bool `json:"keep_alive"`
Auth *Auth `json:"auth,omitempty"`
Headers map[string]string `json:"headers,omitempty"`
HeaderFields []string `json:"header_fields,omitempty"`
}
WebSocketProvider represents a WebSocket connection.