Class: Whoosh::MCP::Transport::Stdio

Inherits:
Object
  • Object
show all
Defined in:
lib/whoosh/mcp/transport/stdio.rb

Instance Method Summary collapse

Constructor Details

#initialize(server, input: $stdin, output: $stdout) ⇒ Stdio

Returns a new instance of Stdio.



8
9
10
11
12
# File 'lib/whoosh/mcp/transport/stdio.rb', line 8

def initialize(server, input: $stdin, output: $stdout)
  @server = server
  @input = input
  @output = output
end

Instance Method Details

#runObject



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/whoosh/mcp/transport/stdio.rb', line 14

def run
  @output.sync = true
  @input.each_line do |line|
    next if line.strip.empty?
    begin
      request = Protocol.parse(line)
      response = @server.handle(request)
      if response
        @output.puts(Protocol.encode(response))
      end
    rescue Protocol::ParseError => e
      error = Protocol.error_response(id: nil, code: -32700, message: e.message)
      @output.puts(Protocol.encode(error))
    end
  end
end