Module: Elelem::MCP::ServerInterface

Included in:
HttpServer, Server
Defined in:
lib/elelem/mcp/client.rb

Instance Method Summary collapse

Instance Method Details

#call(name, args) ⇒ Object



76
77
78
79
80
81
# File 'lib/elelem/mcp/client.rb', line 76

def call(name, args)
  result = request("tools/call", { name: name, arguments: args })
  Elelem.logger.info({ tool: name, args: args, result: result }.to_json)
  content = extract_content(result)
  result["isError"] ? { error: content } : { content: content }
end

#extract_content(result) ⇒ Object



83
84
85
86
87
88
89
# File 'lib/elelem/mcp/client.rb', line 83

def extract_content(result)
  if (structured = result["structuredContent"])
    structured
  else
    result["content"]&.map { |c| c["text"] }&.join("\n")
  end
end

#tools ⇒ Object



72
73
74
# File 'lib/elelem/mcp/client.rb', line 72

def tools
  request("tools/list")["tools"]
end