httpsse

package
v0.1.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 30, 2025 License: Apache-2.0 Imports: 13 Imported by: 0

Documentation

Overview

Package httpsse provides an HTTP proxy implementation for Server-Sent Events (SSE) used in communication between the client and MCP server.

Package httpsse provides MCP ping functionality for HTTP SSE proxies.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewMCPPinger added in v0.0.46

func NewMCPPinger(proxy *HTTPSSEProxy) healthcheck.MCPPinger

NewMCPPinger creates a new MCP pinger for HTTP SSE proxies

Types

type HTTPSSEProxy

type HTTPSSEProxy struct {
	// contains filtered or unexported fields
}

HTTPSSEProxy encapsulates the HTTP proxy functionality for SSE transports. It provides SSE endpoints and JSON-RPC message handling.

func NewHTTPSSEProxy

func NewHTTPSSEProxy(
	host string, port int, containerName string, prometheusHandler http.Handler, middlewares ...types.Middleware,
) *HTTPSSEProxy

NewHTTPSSEProxy creates a new HTTP SSE proxy for transports.

func (*HTTPSSEProxy) ForwardResponseToClients

func (p *HTTPSSEProxy) ForwardResponseToClients(_ context.Context, msg jsonrpc2.Message) error

ForwardResponseToClients forwards a response from the destination to all connected SSE clients.

func (*HTTPSSEProxy) GetMessageChannel

func (p *HTTPSSEProxy) GetMessageChannel() chan jsonrpc2.Message

GetMessageChannel returns the channel for messages to/from the destination.

func (*HTTPSSEProxy) SendMessageToDestination

func (p *HTTPSSEProxy) SendMessageToDestination(msg jsonrpc2.Message) error

SendMessageToDestination sends a message to the destination via the message channel.

func (*HTTPSSEProxy) Start

func (p *HTTPSSEProxy) Start(_ context.Context) error

Start starts the HTTP SSE proxy.

func (*HTTPSSEProxy) Stop

func (p *HTTPSSEProxy) Stop(ctx context.Context) error

Stop stops the HTTP SSE proxy.

type MCPPinger added in v0.0.46

type MCPPinger struct {
	// contains filtered or unexported fields
}

MCPPinger implements healthcheck.MCPPinger for HTTP SSE proxies

func (*MCPPinger) Ping added in v0.0.46

func (p *MCPPinger) Ping(ctx context.Context) (time.Duration, error)

Ping sends a JSON-RPC ping request to the MCP server and waits for the response Following the MCP ping specification: https://modelcontextprotocol.io/specification/2025-03-26/basic/utilities/ping

type Proxy

type Proxy interface {
	// Start starts the proxy.
	Start(ctx context.Context) error

	// Stop stops the proxy.
	Stop(ctx context.Context) error

	// GetMessageChannel returns the channel for messages to/from the destination.
	GetMessageChannel() chan jsonrpc2.Message

	// GetResponseChannel returns the channel for receiving messages from the destination.
	GetResponseChannel() <-chan jsonrpc2.Message

	// SendMessageToDestination sends a message to the destination.
	SendMessageToDestination(msg jsonrpc2.Message) error

	// ForwardResponseToClients forwards a response from the destination to clients.
	ForwardResponseToClients(ctx context.Context, msg jsonrpc2.Message) error

	// SendResponseMessage sends a message to the response channel.
	SendResponseMessage(msg jsonrpc2.Message) error
}

Proxy defines the interface for proxying messages between clients and destinations.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL