Class: Prescient::MCP::Stdio

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

Overview

Minimal newline-delimited JSON-RPC transport for local MCP clients.

Instance Method Summary collapse

Constructor Details

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

Returns a new instance of Stdio.



7
8
9
10
11
# File 'lib/prescient/mcp/stdio.rb', line 7

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

Instance Method Details

#runvoid

This method returns an undefined value.

Process newline-delimited JSON-RPC requests until input closes.



15
16
17
18
19
20
21
22
23
# File 'lib/prescient/mcp/stdio.rb', line 15

def run
  @input.each_line do |line|
    request = JSON.parse(line)
    @output.puts(JSON.generate(handle(request)))
    @output.flush
  rescue JSON::ParserError
    @output.puts(JSON.generate(error_response(nil, -32_700, "invalid JSON")))
  end
end