Class: RobotLab::MCP::Transports::Base Abstract

Inherits:
Object
  • Object
show all
Defined in:
lib/robot_lab/mcp/transports/base.rb

Overview

This class is abstract.

Subclass and implement #connect, #send_request, #close

Base class for MCP transports

Direct Known Subclasses

SSE, Stdio, StreamableHTTP, WebSocket

Constant Summary collapse

DEFAULT_TIMEOUT =

Default timeout for request operations (in seconds)

15

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(config) ⇒ Base

Creates a new transport instance.

Parameters:

  • config (Hash)

    transport configuration options. May include a :timeout key (in seconds) that controls how long blocking operations wait before raising an error.



25
26
27
28
# File 'lib/robot_lab/mcp/transports/base.rb', line 25

def initialize(config)
  @config = config.transform_keys(&:to_sym)
  @timeout = @config.delete(:timeout) || DEFAULT_TIMEOUT
end

Instance Attribute Details

#configHash (readonly)

Returns the transport configuration.

Returns:

  • (Hash)

    the transport configuration



18
19
20
# File 'lib/robot_lab/mcp/transports/base.rb', line 18

def config
  @config
end

#timeoutObject (readonly)

Returns the value of attribute timeout.



18
# File 'lib/robot_lab/mcp/transports/base.rb', line 18

attr_reader :config, :timeout

Instance Method Details

#closeself

Close the connection

Returns:

  • (self)

Raises:

  • (NotImplementedError)


51
52
53
# File 'lib/robot_lab/mcp/transports/base.rb', line 51

def close
  raise NotImplementedError
end

#connectself

Connect to the server

Returns:

  • (self)

Raises:

  • (NotImplementedError)


34
35
36
# File 'lib/robot_lab/mcp/transports/base.rb', line 34

def connect
  raise NotImplementedError
end

#connected?Boolean

Check if the transport is connected.

Returns:

  • (Boolean)

    true if connected



58
59
60
# File 'lib/robot_lab/mcp/transports/base.rb', line 58

def connected?
  false
end

#send_request(message) ⇒ Hash

Send a JSON-RPC request

Parameters:

  • message (Hash)

    JSON-RPC message

Returns:

  • (Hash)

    Response

Raises:

  • (NotImplementedError)


43
44
45
# File 'lib/robot_lab/mcp/transports/base.rb', line 43

def send_request(message)
  raise NotImplementedError
end