Documentation
¶
Index ¶
- type APIKeyAuthProvider
- type AuthProvider
- type BasicAuthProvider
- type HTTPMCPTransport
- type HTTPRequestResponseTransport
- type HTTPTransport
- type MCPClient
- type MCPError
- type MCPMessage
- type MCPResponse
- type MCPToolProvider
- type MCPTransport
- type NoAuthProvider
- type OAuth2AuthProvider
- type OAuth2Token
- type Server
- type StdioTransport
- type Tool
- type WebSocketMCPTransport
- type WebSocketTransport
- func (t *WebSocketTransport) Close() error
- func (t *WebSocketTransport) Connect(ctx context.Context) error
- func (t *WebSocketTransport) Receive(ctx context.Context) ([]byte, error)
- func (t *WebSocketTransport) Send(ctx context.Context, message []byte) error
- func (t *WebSocketTransport) SetAuthHeader(header string)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type APIKeyAuthProvider ¶
type APIKeyAuthProvider struct {
// contains filtered or unexported fields
}
APIKeyAuthProvider provides API key authentication
func NewAPIKeyAuthProvider ¶
func NewAPIKeyAuthProvider(apiKey string) *APIKeyAuthProvider
func (*APIKeyAuthProvider) GetAuthHeader ¶
func (p *APIKeyAuthProvider) GetAuthHeader(ctx context.Context) (string, error)
type AuthProvider ¶
AuthProvider handles authentication for MCP transports
func CreateAuthProvider ¶
func CreateAuthProvider(config *ast.MCPAuthConfig) (AuthProvider, error)
CreateAuthProvider creates an auth provider based on the config
type BasicAuthProvider ¶
type BasicAuthProvider struct {
// contains filtered or unexported fields
}
BasicAuthProvider provides basic authentication
func NewBasicAuthProvider ¶
func NewBasicAuthProvider(username, password string) *BasicAuthProvider
func (*BasicAuthProvider) GetAuthHeader ¶
func (p *BasicAuthProvider) GetAuthHeader(ctx context.Context) (string, error)
type HTTPMCPTransport ¶
type HTTPMCPTransport struct {
// contains filtered or unexported fields
}
HTTPMCPTransport adapts HTTPRequestResponseTransport to MCPTransport interface
func NewHTTPMCPTransport ¶
func NewHTTPMCPTransport(url string, timeout time.Duration) *HTTPMCPTransport
NewHTTPMCPTransport creates a new HTTP MCP transport
func (*HTTPMCPTransport) Close ¶
func (t *HTTPMCPTransport) Close() error
Close closes the transport
func (*HTTPMCPTransport) Receive ¶
func (t *HTTPMCPTransport) Receive(ctx context.Context) ([]byte, error)
Receive receives a queued response
func (*HTTPMCPTransport) Send ¶
func (t *HTTPMCPTransport) Send(ctx context.Context, message []byte) error
Send sends a message and queues the response
func (*HTTPMCPTransport) SetAuthHeader ¶
func (t *HTTPMCPTransport) SetAuthHeader(header string)
SetAuthHeader sets the authorization header for requests
type HTTPRequestResponseTransport ¶
type HTTPRequestResponseTransport struct {
// contains filtered or unexported fields
}
HTTPRequestResponseTransport implements request-response pattern for HTTP
func NewHTTPRequestResponseTransport ¶
func NewHTTPRequestResponseTransport(url string, timeout time.Duration) *HTTPRequestResponseTransport
NewHTTPRequestResponseTransport creates a new HTTP request-response transport
func (*HTTPRequestResponseTransport) Close ¶
func (t *HTTPRequestResponseTransport) Close() error
Close closes the HTTP transport
func (*HTTPRequestResponseTransport) SendAndReceive ¶
func (t *HTTPRequestResponseTransport) SendAndReceive(ctx context.Context, message []byte) ([]byte, error)
SendAndReceive sends a request and receives the response
func (*HTTPRequestResponseTransport) SetAuthHeader ¶
func (t *HTTPRequestResponseTransport) SetAuthHeader(header string)
SetAuthHeader sets the authorization header for requests
type HTTPTransport ¶
type HTTPTransport struct {
// contains filtered or unexported fields
}
HTTPTransport implements MCP transport over HTTP
func NewHTTPTransport ¶
func NewHTTPTransport(url string, timeout time.Duration) *HTTPTransport
NewHTTPTransport creates a new HTTP transport
func (*HTTPTransport) Receive ¶
func (t *HTTPTransport) Receive(ctx context.Context) ([]byte, error)
Receive receives a message from HTTP response
func (*HTTPTransport) Send ¶
func (t *HTTPTransport) Send(ctx context.Context, message []byte) error
Send sends a message over HTTP
func (*HTTPTransport) SetAuthHeader ¶
func (t *HTTPTransport) SetAuthHeader(header string)
SetAuthHeader sets the authorization header for requests
type MCPClient ¶
type MCPClient struct {
// contains filtered or unexported fields
}
MCPClient handles MCP protocol communication
func NewMCPClient ¶
func NewMCPClient(transport MCPTransport) *MCPClient
NewMCPClient creates a new MCP client
func (*MCPClient) CallTool ¶
func (c *MCPClient) CallTool(ctx context.Context, name string, arguments json.RawMessage) (map[string]interface{}, error)
CallTool calls a tool on the MCP server
func (*MCPClient) Initialize ¶
Initialize initializes the MCP connection
type MCPError ¶
type MCPError struct {
Code int `json:"code"`
Message string `json:"message"`
Data interface{} `json:"data,omitempty"`
}
MCPError represents an MCP protocol error
type MCPMessage ¶
type MCPMessage struct {
JSONRPC string `json:"jsonrpc"`
ID *int64 `json:"id,omitempty"`
Method string `json:"method,omitempty"`
Params json.RawMessage `json:"params,omitempty"`
Result json.RawMessage `json:"result,omitempty"`
Error *MCPError `json:"error,omitempty"`
}
MCPMessage represents an MCP protocol message
type MCPResponse ¶
type MCPResponse struct {
Result json.RawMessage
Error *MCPError
}
MCPResponse represents a response from the MCP server
type MCPToolProvider ¶
type MCPToolProvider struct {
// contains filtered or unexported fields
}
MCPToolProvider implements the ToolProvider interface for MCP servers
func NewMCPToolProvider ¶
func NewMCPToolProvider() *MCPToolProvider
NewMCPToolProvider creates a new MCP tool provider
func (*MCPToolProvider) AddToolDefinition ¶
AddToolDefinition adds an MCP tool to the provider
func (*MCPToolProvider) Close ¶
func (p *MCPToolProvider) Close() error
Close shuts down all MCP servers
func (*MCPToolProvider) ExecuteTool ¶
func (p *MCPToolProvider) ExecuteTool(execCtx *execcontext.ExecutionContext, toolName string, parameters json.RawMessage) (*tools.Result, error)
ExecuteTool executes an MCP tool
func (*MCPToolProvider) GetType ¶
func (p *MCPToolProvider) GetType() ast.ToolType
GetType returns the tool type this provider handles
type MCPTransport ¶
type MCPTransport interface {
Send(ctx context.Context, message []byte) error
Receive(ctx context.Context) ([]byte, error)
Close() error
}
MCPTransport defines the interface for MCP communication transports
func CreateTransportFromURL ¶
func CreateTransportFromURL(serverURL string, auth *ast.MCPAuthConfig) (MCPTransport, error)
CreateTransportFromURL creates a transport based on the URL scheme
type NoAuthProvider ¶
type NoAuthProvider struct{}
NoAuthProvider provides no authentication
func (*NoAuthProvider) GetAuthHeader ¶
func (p *NoAuthProvider) GetAuthHeader(ctx context.Context) (string, error)
type OAuth2AuthProvider ¶
type OAuth2AuthProvider struct {
// contains filtered or unexported fields
}
OAuth2AuthProvider provides OAuth2 authentication
func NewOAuth2AuthProvider ¶
func NewOAuth2AuthProvider(clientID, clientSecret, tokenURL, scopes string) *OAuth2AuthProvider
func (*OAuth2AuthProvider) GetAuthHeader ¶
func (p *OAuth2AuthProvider) GetAuthHeader(ctx context.Context) (string, error)
type OAuth2Token ¶
type OAuth2Token struct {
AccessToken string `json:"access_token"`
TokenType string `json:"token_type"`
ExpiresIn int `json:"expires_in"`
ExpiresAt time.Time `json:"-"`
}
OAuth2Token represents an OAuth2 access token
type Server ¶
type Server struct {
// contains filtered or unexported fields
}
Server represents a connection to an MCP server
func NewServer ¶
func NewServer(config *ast.MCPServerConfig) *Server
NewMCPServer creates a new MCP server instance
func (*Server) DiscoverTools ¶
DiscoverTools discovers available tools from the MCP server
func (*Server) ExecuteTool ¶
func (s *Server) ExecuteTool(execCtx *execcontext.ExecutionContext, toolName string, parameters json.RawMessage) (map[string]interface{}, error)
ExecuteTool executes a tool on the MCP server
type StdioTransport ¶
type StdioTransport struct {
// contains filtered or unexported fields
}
StdioTransport implements MCP transport over stdio
type Tool ¶
type Tool struct {
Name string `json:"name"`
Description string `json:"description"`
InputSchema json.RawMessage `json:"inputSchema"`
}
Tool represents a tool available from an MCP server
type WebSocketMCPTransport ¶
type WebSocketMCPTransport struct {
*WebSocketTransport
// contains filtered or unexported fields
}
WebSocketMCPTransport wraps WebSocketTransport to handle initial connection
func NewWebSocketMCPTransport ¶
func NewWebSocketMCPTransport(url string, timeout time.Duration) *WebSocketMCPTransport
NewWebSocketMCPTransport creates a new WebSocket MCP transport
type WebSocketTransport ¶
type WebSocketTransport struct {
// contains filtered or unexported fields
}
WebSocketTransport implements MCP transport over WebSocket
func NewWebSocketTransport ¶
func NewWebSocketTransport(url string, timeout time.Duration) *WebSocketTransport
NewWebSocketTransport creates a new WebSocket transport
func (*WebSocketTransport) Close ¶
func (t *WebSocketTransport) Close() error
Close closes the WebSocket connection
func (*WebSocketTransport) Connect ¶
func (t *WebSocketTransport) Connect(ctx context.Context) error
Connect establishes the WebSocket connection
func (*WebSocketTransport) Receive ¶
func (t *WebSocketTransport) Receive(ctx context.Context) ([]byte, error)
Receive receives a message from the WebSocket
func (*WebSocketTransport) Send ¶
func (t *WebSocketTransport) Send(ctx context.Context, message []byte) error
Send sends a message over the WebSocket
func (*WebSocketTransport) SetAuthHeader ¶
func (t *WebSocketTransport) SetAuthHeader(header string)
SetAuthHeader sets the authorization header for the WebSocket handshake