Module: Kreuzberg::MCPProxy

Defined in:
lib/kreuzberg/mcp_proxy.rb

Overview

Examples:

Start MCP server

Defined Under Namespace

Classes: Error, MissingBinaryError, Server, ServerError

Class Method Summary collapse

Class Method Details

.find_mcp_binaryPathname

Find the MCP binary

Returns:

  • (Pathname)

    Path to binary

Raises:



155
156
157
158
159
160
161
# File 'lib/kreuzberg/mcp_proxy.rb', line 155

def find_mcp_binary
  binary_name = Gem.win_platform? ? 'kreuzberg.exe' : 'kreuzberg'
  found = CLIProxy.search_paths(binary_name).find(&:file?)
  return found if found

  raise MissingBinaryError, missing_binary_message
end

.missing_binary_messageString

Error message for missing binary

Returns:

  • (String)


167
168
169
170
171
172
173
174
# File 'lib/kreuzberg/mcp_proxy.rb', line 167

def missing_binary_message
  <<~MSG.strip
    kreuzberg binary not found for MCP server. Build it with:
    `cargo build --release --package kreuzberg-cli`

    Or ensure kreuzberg is installed with MCP support.
  MSG
end

.run(transport: 'stdio') {|Server| ... } ⇒ Object

Run MCP server with a block

Examples:

Kreuzberg::MCPProxy.run(transport: 'stdio') do |server|
  server.send_message({ method: 'tools/list' })
  response = server.read_message
end

Parameters:

  • transport (String) (defaults to: 'stdio')

    Transport method

Yields:

  • (Server)

    Yields server instance

Returns:

  • (Object)

    Block result



142
143
144
145
146
147
148
# File 'lib/kreuzberg/mcp_proxy.rb', line 142

def run(transport: 'stdio')
  server = Server.new(transport: transport)
  server.start
  yield server
ensure
  server&.stop
end