Documentation
¶
Index ¶
- func NewSSEServerTransportAndHandler(messageEndpointURL string, opts ...SSEServerTransportAndHandlerOption) (ServerTransport, *SSEHandler, error)
- func NewStreamableHTTPServerTransportAndHandler(opts ...StreamableHTTPServerTransportAndHandlerOption) (ServerTransport, *StreamableHTTPHandler, error)
- type ClientReceiverF
- type ClientTransport
- func NewMockClientTransport(in io.ReadCloser, out io.Writer) ClientTransport
- func NewSSEClientTransport(serverURL string, opts ...SSEClientTransportOption) (ClientTransport, error)
- func NewStdioClientTransport(command string, args []string, opts ...StdioClientTransportOption) (ClientTransport, error)
- func NewStreamableHTTPClientTransport(serverURL string, opts ...StreamableHTTPClientTransportOption) (ClientTransport, error)
- type Message
- type SSEClientTransportOption
- type SSEHandler
- type SSEServerTransportAndHandlerOption
- type SSEServerTransportOption
- func WithSSEServerTransportOptionLogger(logger pkg.Logger) SSEServerTransportOption
- func WithSSEServerTransportOptionMessagePath(messagePath string) SSEServerTransportOption
- func WithSSEServerTransportOptionSSEPath(ssePath string) SSEServerTransportOption
- func WithSSEServerTransportOptionURLPrefix(urlPrefix string) SSEServerTransportOption
- type ServerReceiverF
- type ServerTransport
- func NewMockServerTransport(in io.ReadCloser, out io.Writer) ServerTransport
- func NewSSEServerTransport(addr string, opts ...SSEServerTransportOption) (ServerTransport, error)
- func NewStdioServerTransport(opts ...StdioServerTransportOption) ServerTransport
- func NewStreamableHTTPServerTransport(addr string, opts ...StreamableHTTPServerTransportOption) ServerTransport
- type SessionIDForReturn
- type SessionIDForReturnKey
- type StateMode
- type StdioClientTransportOption
- type StdioServerTransportOption
- type StreamableHTTPClientTransportOption
- func WithStreamableHTTPClientOptionHTTPClient(client *http.Client) StreamableHTTPClientTransportOption
- func WithStreamableHTTPClientOptionLogger(log pkg.Logger) StreamableHTTPClientTransportOption
- func WithStreamableHTTPClientOptionReceiveTimeout(timeout time.Duration) StreamableHTTPClientTransportOption
- type StreamableHTTPHandler
- type StreamableHTTPServerTransportAndHandlerOption
- type StreamableHTTPServerTransportOption
- func WithStreamableHTTPServerTransportOptionEndpoint(endpoint string) StreamableHTTPServerTransportOption
- func WithStreamableHTTPServerTransportOptionLogger(logger pkg.Logger) StreamableHTTPServerTransportOption
- func WithStreamableHTTPServerTransportOptionStateMode(mode StateMode) StreamableHTTPServerTransportOption
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NewSSEServerTransportAndHandler ¶
func NewSSEServerTransportAndHandler(messageEndpointURL string, opts ...SSEServerTransportAndHandlerOption, ) (ServerTransport, *SSEHandler, error)
NewSSEServerTransportAndHandler returns transport without starting the HTTP server, and returns a Handler for users to start their own HTTP server externally eg: 1. relative path transport, handler, _ := NewSSEServerTransportAndHandler("/sse/message") http.Handle("/sse", handler.HandleSSE()) http.Handle("/sse/message", handler.HandleMessage()) http.ListenAndServe(":8080", nil) 2. full url transport, handler, _ := NewSSEServerTransportAndHandler("https://thinkingai.xyz/api/v1/sse/message") http.Handle("/sse", handler.HandleSSE()) http.Handle("/sse/message", handler.HandleMessage()) http.ListenAndServe(":8080", nil)
func NewStreamableHTTPServerTransportAndHandler ¶ added in v0.2.0
func NewStreamableHTTPServerTransportAndHandler( opts ...StreamableHTTPServerTransportAndHandlerOption, ) (ServerTransport, *StreamableHTTPHandler, error)
NewStreamableHTTPServerTransportAndHandler returns transport without starting the HTTP server, and returns a Handler for users to start their own HTTP server externally eg: transport, handler, _ := NewStreamableHTTPServerTransportAndHandler() http.Handle("/mcp", handler.HandleMCP()) http.ListenAndServe(":8080", nil)
Types ¶
type ClientReceiverF ¶
type ClientTransport ¶
type ClientTransport interface {
// Start initiates the transport connection
Start() error
// Send transmits a message
Send(ctx context.Context, msg Message) error
// SetReceiver sets the handler for messages from the peer
SetReceiver(receiver clientReceiver)
// Close terminates the transport connection
Close() error
}
func NewMockClientTransport ¶
func NewMockClientTransport(in io.ReadCloser, out io.Writer) ClientTransport
func NewSSEClientTransport ¶
func NewSSEClientTransport(serverURL string, opts ...SSEClientTransportOption) (ClientTransport, error)
func NewStdioClientTransport ¶
func NewStdioClientTransport(command string, args []string, opts ...StdioClientTransportOption) (ClientTransport, error)
func NewStreamableHTTPClientTransport ¶ added in v0.2.0
func NewStreamableHTTPClientTransport(serverURL string, opts ...StreamableHTTPClientTransportOption) (ClientTransport, error)
type SSEClientTransportOption ¶
type SSEClientTransportOption func(*sseClientTransport)
func WithSSEClientOptionHTTPClient ¶
func WithSSEClientOptionHTTPClient(client *http.Client) SSEClientTransportOption
func WithSSEClientOptionLogger ¶
func WithSSEClientOptionLogger(log pkg.Logger) SSEClientTransportOption
func WithSSEClientOptionReceiveTimeout ¶
func WithSSEClientOptionReceiveTimeout(timeout time.Duration) SSEClientTransportOption
type SSEHandler ¶
type SSEHandler struct {
// contains filtered or unexported fields
}
func (*SSEHandler) HandleMessage ¶
func (h *SSEHandler) HandleMessage() http.Handler
HandleMessage processes incoming JSON-RPC messages from clients and sends responses back through both the SSE connection and HTTP response.
func (*SSEHandler) HandleSSE ¶
func (h *SSEHandler) HandleSSE() http.Handler
HandleSSE handles incoming SSE connections from clients and sends messages to them.
type SSEServerTransportAndHandlerOption ¶
type SSEServerTransportAndHandlerOption func(*sseServerTransport)
func WithSSEServerTransportAndHandlerOptionLogger ¶
func WithSSEServerTransportAndHandlerOptionLogger(logger pkg.Logger) SSEServerTransportAndHandlerOption
type SSEServerTransportOption ¶
type SSEServerTransportOption func(*sseServerTransport)
func WithSSEServerTransportOptionLogger ¶
func WithSSEServerTransportOptionLogger(logger pkg.Logger) SSEServerTransportOption
func WithSSEServerTransportOptionMessagePath ¶
func WithSSEServerTransportOptionMessagePath(messagePath string) SSEServerTransportOption
func WithSSEServerTransportOptionSSEPath ¶
func WithSSEServerTransportOptionSSEPath(ssePath string) SSEServerTransportOption
func WithSSEServerTransportOptionURLPrefix ¶
func WithSSEServerTransportOptionURLPrefix(urlPrefix string) SSEServerTransportOption
type ServerReceiverF ¶
type ServerTransport ¶
type ServerTransport interface {
// Run starts listening for requests, this is synchronous, and cannot return before Shutdown is called
Run() error
// Send transmits a message
Send(ctx context.Context, sessionID string, msg Message) error
// SetReceiver sets the handler for messages from the peer
SetReceiver(serverReceiver)
SetSessionManager(manager sessionManager)
// Shutdown gracefully closes, the internal implementation needs to stop receiving messages first,
// then wait for serverCtx to be canceled, while using userCtx to control timeout.
// userCtx is used to control the timeout of the server shutdown.
// serverCtx is used to coordinate the internal cleanup sequence:
// 1. turn off message listen
// 2. Wait for serverCtx to be done (indicating server shutdown is complete)
// 3. Cancel the transport's context to stop all ongoing operations
// 4. Wait for all in-flight sends to complete
// 5. Close all session
Shutdown(userCtx context.Context, serverCtx context.Context) error
}
func NewMockServerTransport ¶
func NewMockServerTransport(in io.ReadCloser, out io.Writer) ServerTransport
func NewSSEServerTransport ¶
func NewSSEServerTransport(addr string, opts ...SSEServerTransportOption) (ServerTransport, error)
NewSSEServerTransport returns transport that will start an HTTP server
func NewStdioServerTransport ¶
func NewStdioServerTransport(opts ...StdioServerTransportOption) ServerTransport
func NewStreamableHTTPServerTransport ¶ added in v0.2.0
func NewStreamableHTTPServerTransport(addr string, opts ...StreamableHTTPServerTransportOption) ServerTransport
type SessionIDForReturn ¶ added in v0.2.0
type SessionIDForReturn struct {
SessionID string
}
type SessionIDForReturnKey ¶ added in v0.2.0
type SessionIDForReturnKey struct{}
type StdioClientTransportOption ¶
type StdioClientTransportOption func(*stdioClientTransport)
func WithStdioClientOptionEnv ¶
func WithStdioClientOptionEnv(env ...string) StdioClientTransportOption
func WithStdioClientOptionLogger ¶
func WithStdioClientOptionLogger(log pkg.Logger) StdioClientTransportOption
type StdioServerTransportOption ¶
type StdioServerTransportOption func(*stdioServerTransport)
func WithStdioServerOptionLogger ¶
func WithStdioServerOptionLogger(log pkg.Logger) StdioServerTransportOption
type StreamableHTTPClientTransportOption ¶ added in v0.2.0
type StreamableHTTPClientTransportOption func(*streamableHTTPClientTransport)
func WithStreamableHTTPClientOptionHTTPClient ¶ added in v0.2.0
func WithStreamableHTTPClientOptionHTTPClient(client *http.Client) StreamableHTTPClientTransportOption
func WithStreamableHTTPClientOptionLogger ¶ added in v0.2.0
func WithStreamableHTTPClientOptionLogger(log pkg.Logger) StreamableHTTPClientTransportOption
func WithStreamableHTTPClientOptionReceiveTimeout ¶ added in v0.2.0
func WithStreamableHTTPClientOptionReceiveTimeout(timeout time.Duration) StreamableHTTPClientTransportOption
type StreamableHTTPHandler ¶ added in v0.2.0
type StreamableHTTPHandler struct {
// contains filtered or unexported fields
}
func (*StreamableHTTPHandler) HandleMCP ¶ added in v0.2.0
func (h *StreamableHTTPHandler) HandleMCP() http.Handler
HandleMCP handles incoming MCP requests
type StreamableHTTPServerTransportAndHandlerOption ¶ added in v0.2.0
type StreamableHTTPServerTransportAndHandlerOption func(*streamableHTTPServerTransport)
func WithStreamableHTTPServerTransportAndHandlerOptionLogger ¶ added in v0.2.0
func WithStreamableHTTPServerTransportAndHandlerOptionLogger(logger pkg.Logger) StreamableHTTPServerTransportAndHandlerOption
func WithStreamableHTTPServerTransportAndHandlerOptionStateMode ¶ added in v0.2.0
func WithStreamableHTTPServerTransportAndHandlerOptionStateMode(mode StateMode) StreamableHTTPServerTransportAndHandlerOption
type StreamableHTTPServerTransportOption ¶ added in v0.2.0
type StreamableHTTPServerTransportOption func(*streamableHTTPServerTransport)
func WithStreamableHTTPServerTransportOptionEndpoint ¶ added in v0.2.0
func WithStreamableHTTPServerTransportOptionEndpoint(endpoint string) StreamableHTTPServerTransportOption
func WithStreamableHTTPServerTransportOptionLogger ¶ added in v0.2.0
func WithStreamableHTTPServerTransportOptionLogger(logger pkg.Logger) StreamableHTTPServerTransportOption
func WithStreamableHTTPServerTransportOptionStateMode ¶ added in v0.2.0
func WithStreamableHTTPServerTransportOptionStateMode(mode StateMode) StreamableHTTPServerTransportOption