Module: ActionMCP::Server::ResponseCollector

Included in:
TransportHandler
Defined in:
lib/action_mcp/server/response_collector.rb

Overview

Module to collect responses when operating in :return mode

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#collected_responsesObject (readonly)

Returns the value of attribute collected_responses.



7
8
9
# File 'lib/action_mcp/server/response_collector.rb', line 7

def collected_responses
  @collected_responses
end

Instance Method Details

#clear_collected_responsesObject

Clear collected responses



39
40
41
# File 'lib/action_mcp/server/response_collector.rb', line 39

def clear_collected_responses
  @collected_responses = []
end

#get_collected_responsesObject

Get all collected responses



29
30
31
# File 'lib/action_mcp/server/response_collector.rb', line 29

def get_collected_responses
  @collected_responses || []
end

#get_last_responseObject

Get the last response (useful for single request/response scenarios)



34
35
36
# File 'lib/action_mcp/server/response_collector.rb', line 34

def get_last_response
  @collected_responses&.last
end

#initialize_response_collectorObject



9
10
11
# File 'lib/action_mcp/server/response_collector.rb', line 9

def initialize_response_collector
  @collected_responses = []
end

#write_message(message) ⇒ Object

Collect messages for the HTTP response while retaining the session's complete wire history. Server-initiated requests cannot be placed in the empty 202 response required for an incoming notification, so the generated request must not be silently discarded.



17
18
19
20
21
22
23
24
25
26
# File 'lib/action_mcp/server/response_collector.rb', line 17

def write_message(message)
  if messaging_mode == :return
    @collected_responses ||= []
    @collected_responses << message
    super
    message
  else
    super
  end
end