ruby-sdk/examples/stdio_server.rb
Tyler Rowsell 62184957e0 Internal Release 0.6.0
Rename Context Arg
2025-05-08 17:38:13 -04:00

35 lines
904 B
Ruby
Executable file

#!/usr/bin/env ruby
# frozen_string_literal: true
$LOAD_PATH.unshift(File.expand_path("../lib", __dir__))
require "model_context_protocol"
require "model_context_protocol/transports/stdio"
# Create a simple tool
class ExampleTool < ModelContextProtocol::Tool
description "A simple example tool that echoes back its arguments"
input_schema type: "object",
properties: {
message: { type: "string" },
},
required: ["message"]
class << self
def call(message:, server_context:)
ModelContextProtocol::Tool::Response.new([{
type: "text",
text: "Hello from example tool! Message: #{message}",
}])
end
end
end
# Set up the server
server = ModelContextProtocol::Server.new(
name: "example_server",
tools: [ExampleTool],
)
# Create and start the transport
transport = ModelContextProtocol::Transports::StdioTransport.new(server)
transport.open