class Rubydex::MCPServer::StdioTransport
Public Class Methods
→ void
Source
# File lib/rubydex/mcp_server/protocol.rb, line 125 def initialize @input = $stdin @output = $stdout @input.binmode @input.sync = true @output.binmode @output.sync = true end
Public Instance Methods
→ void
Source
# File lib/rubydex/mcp_server/protocol.rb, line 151 def close @output.flush end
{ (Hash | Array?, Hash?) → void } → void
Source
# File lib/rubydex/mcp_server/protocol.rb, line 135 def open @input.each_line do |line| yield JSON.parse(line, symbolize_names: true) rescue JSON::ParserError yield nil, JSONRPC.error_response(nil, JSONRPC::PARSE_ERROR, "Parse error", data: "Invalid JSON") end end
(Hash | Array[Hash]?) → void
Source
# File lib/rubydex/mcp_server/protocol.rb, line 144 def write(response) return unless response @output.puts(JSON.generate(response)) end