Class: RubyMCP::Server

Inherits:
Object
  • Object
show all
Includes:
Capabilities::Logging
Defined in:
lib/ruby_mcp/server.rb

Defined Under Namespace

Classes: Lifecycle

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(logging_verbosity: "info") ⇒ Server



7
8
9
10
11
12
13
# File 'lib/ruby_mcp/server.rb', line 7

def initialize(logging_verbosity: "info")
  @lifecycle = Lifecycle.new
  @prompts = Prompts.new
  @resources = Resources.new

  @default_logging_verbosity = logging_verbosity
end

Instance Attribute Details

#lifecycleObject (readonly)

Returns the value of attribute lifecycle.



5
6
7
# File 'lib/ruby_mcp/server.rb', line 5

def lifecycle
  @lifecycle
end

#promptsObject (readonly)

Returns the value of attribute prompts.



5
6
7
# File 'lib/ruby_mcp/server.rb', line 5

def prompts
  @prompts
end

#resourcesObject (readonly)

Returns the value of attribute resources.



5
6
7
# File 'lib/ruby_mcp/server.rb', line 5

def resources
  @resources
end

Instance Method Details

#add_promptObject



24
25
26
# File 'lib/ruby_mcp/server.rb', line 24

def add_prompt(...)
  @prompts.add(...)
end

#add_resourceObject



28
29
30
# File 'lib/ruby_mcp/server.rb', line 28

def add_resource(...)
  @resources.add(...)
end

#answer(request, result) ⇒ Object



37
38
39
# File 'lib/ruby_mcp/server.rb', line 37

def answer(request, result)
  send_answer(request, result:)
end

#connect(transport) ⇒ Object



15
16
17
18
19
20
21
22
# File 'lib/ruby_mcp/server.rb', line 15

def connect(transport)
  @transport = transport

  setup_trap
  setup_message_handler
  setup_close_handler
  start_transport
end

#error(request, error) ⇒ Object



41
42
43
# File 'lib/ruby_mcp/server.rb', line 41

def error(request, error)
  send_answer(request, error:)
end

#send_message(message) ⇒ Object



32
33
34
35
# File 'lib/ruby_mcp/server.rb', line 32

def send_message(message)
  RubyMCP.logger.debug "S -> C : #{message}"
  @transport.send(message)
end