Class: Whoosh::MCP::Transport::Stdio
- Inherits:
-
Object
- Object
- Whoosh::MCP::Transport::Stdio
- Defined in:
- lib/whoosh/mcp/transport/stdio.rb
Instance Method Summary collapse
-
#initialize(server, input: $stdin, output: $stdout) ⇒ Stdio
constructor
A new instance of Stdio.
- #run ⇒ Object
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
#run ⇒ Object
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.) @output.puts(Protocol.encode(error)) end end end |