transport

package
v0.0.4 Latest Latest
Warning

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

Go to latest
Published: Apr 7, 2025 License: Apache-2.0 Imports: 19 Imported by: 0

Documentation

Overview

Package transport provides utilities for handling different transport modes for communication between the client and MCP server.

Package transport provides utilities for handling different transport modes for communication between the client and MCP server.

Index

Constants

View Source
const (
	// LocalhostName is the standard hostname for localhost
	LocalhostName = "localhost"
)

Variables

View Source
var (
	ErrUnsupportedTransport = errors.New("unsupported transport type")
	ErrTransportNotStarted  = errors.New("transport not started")
	ErrTransportClosed      = errors.New("transport closed")
	ErrInvalidMessage       = errors.New("invalid message")
	ErrRuntimeNotSet        = errors.New("container runtime not set")
	ErrContainerIDNotSet    = errors.New("container ID not set")
	ErrContainerNameNotSet  = errors.New("container name not set")
)

Common transport errors

Functions

This section is empty.

Types

type Factory

type Factory struct{}

Factory creates transports

func NewFactory

func NewFactory() *Factory

NewFactory creates a new transport factory

func (*Factory) Create

func (*Factory) Create(config types.Config) (types.Transport, error)

Create creates a transport based on the provided configuration

type SSETransport

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

SSETransport implements the Transport interface using Server-Sent Events.

func NewSSETransport

func NewSSETransport(
	host string,
	port int,
	targetPort int,
	runtime rt.Runtime,
	debug bool,
	targetHost string,
	middlewares ...types.Middleware,
) *SSETransport

NewSSETransport creates a new SSE transport.

func (*SSETransport) IsRunning

func (t *SSETransport) IsRunning(_ context.Context) (bool, error)

IsRunning checks if the transport is currently running.

func (*SSETransport) Mode

Mode returns the transport mode.

func (*SSETransport) Port

func (t *SSETransport) Port() int

Port returns the port used by the transport.

func (*SSETransport) Setup

func (t *SSETransport) Setup(ctx context.Context, runtime rt.Runtime, containerName string, image string, cmdArgs []string,
	envVars, labels map[string]string, permissionProfile *permissions.Profile) error

Setup prepares the transport for use.

func (*SSETransport) Start

func (t *SSETransport) Start(ctx context.Context) error

Start initializes the transport and begins processing messages. The transport is responsible for starting the container.

func (*SSETransport) Stop

func (t *SSETransport) Stop(ctx context.Context) error

Stop gracefully shuts down the transport and the container.

type StdioTransport

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

StdioTransport implements the Transport interface using standard input/output. It acts as a proxy between the MCP client and the container's stdin/stdout.

func NewStdioTransport

func NewStdioTransport(
	port int,
	runtime rt.Runtime,
	debug bool,
	middlewares ...types.Middleware,
) *StdioTransport

NewStdioTransport creates a new stdio transport.

func (*StdioTransport) IsRunning

func (t *StdioTransport) IsRunning(_ context.Context) (bool, error)

IsRunning checks if the transport is currently running.

func (*StdioTransport) Mode

Mode returns the transport mode.

func (*StdioTransport) Port

func (t *StdioTransport) Port() int

Port returns the port used by the transport.

func (*StdioTransport) Setup

func (t *StdioTransport) Setup(
	ctx context.Context,
	runtime rt.Runtime,
	containerName string,
	image string,
	cmdArgs []string,
	envVars, labels map[string]string,
	permissionProfile *permissions.Profile,
) error

Setup prepares the transport for use.

func (*StdioTransport) Start

func (t *StdioTransport) Start(ctx context.Context) error

Start initializes the transport and begins processing messages. The transport is responsible for starting the container and attaching to it.

func (*StdioTransport) Stop

func (t *StdioTransport) Stop(ctx context.Context) error

Stop gracefully shuts down the transport and the container.

type TransportError

type TransportError struct {
	// Err is the underlying error
	Err error
	// ContainerID is the ID of the container
	ContainerID string
	// Message is an optional error message
	Message string
}

TransportError represents an error related to transport operations

func NewTransportError

func NewTransportError(err error, containerID, message string) *TransportError

NewTransportError creates a new transport error

func (*TransportError) Error

func (e *TransportError) Error() string

Error returns the error message

func (*TransportError) Unwrap

func (e *TransportError) Unwrap() error

Unwrap returns the underlying error

Directories

Path Synopsis
Package errors provides error types and constants for the transport package.
Package errors provides error types and constants for the transport package.
proxy
httpsse
Package httpsse provides an HTTP proxy implementation for Server-Sent Events (SSE) used in communication between the client and MCP server.
Package httpsse provides an HTTP proxy implementation for Server-Sent Events (SSE) used in communication between the client and MCP server.
transparent
Package transparent provides a transparent HTTP proxy implementation that forwards requests to a destination without modifying them.
Package transparent provides a transparent HTTP proxy implementation that forwards requests to a destination without modifying them.
Package ssecommon provides common types and utilities for Server-Sent Events (SSE) used in communication between the client and MCP server.
Package ssecommon provides common types and utilities for Server-Sent Events (SSE) used in communication between the client and MCP server.
Package types provides common types and interfaces for the transport package used in communication between the client and MCP server.
Package types provides common types and interfaces for the transport package used in communication between the client and MCP server.

Jump to

Keyboard shortcuts

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