Class: FastMcp::Transports::BaseTransport

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

Overview

Base class for all MCP transports This defines the interface that all transports must implement

Direct Known Subclasses

RackTransport, StdioTransport

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(server, logger: nil) ⇒ BaseTransport

Returns a new instance of BaseTransport.



10
11
12
13
# File 'lib/mcp/transports/base_transport.rb', line 10

def initialize(server, logger: nil)
  @server = server
  @logger = logger || server.logger
end

Instance Attribute Details

#loggerObject (readonly)

Returns the value of attribute logger.



8
9
10
# File 'lib/mcp/transports/base_transport.rb', line 8

def logger
  @logger
end

#serverObject (readonly)

Returns the value of attribute server.



8
9
10
# File 'lib/mcp/transports/base_transport.rb', line 8

def server
  @server
end

Instance Method Details

#process_message(message, headers: {}) ⇒ Object

Process an incoming message This is a helper method that can be used by subclasses



35
36
37
# File 'lib/mcp/transports/base_transport.rb', line 35

def process_message(message, headers: {})
  server.handle_request(message, headers: headers)
end

#send_message(message) ⇒ Object

Send a message to the client This method should be implemented by subclasses

Raises:

  • (NotImplementedError)


29
30
31
# File 'lib/mcp/transports/base_transport.rb', line 29

def send_message(message)
  raise NotImplementedError, "#{self.class} must implement #send_message"
end

#startObject

Start the transport This method should be implemented by subclasses

Raises:

  • (NotImplementedError)


17
18
19
# File 'lib/mcp/transports/base_transport.rb', line 17

def start
  raise NotImplementedError, "#{self.class} must implement #start"
end

#stopObject

Stop the transport This method should be implemented by subclasses

Raises:

  • (NotImplementedError)


23
24
25
# File 'lib/mcp/transports/base_transport.rb', line 23

def stop
  raise NotImplementedError, "#{self.class} must implement #stop"
end