Class: OpenGemdocs::MCP::Server

Inherits:
Object
  • Object
show all
Defined in:
lib/open_gemdocs/mcp/server.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(port: 6789) ⇒ Server



11
12
13
14
# File 'lib/open_gemdocs/mcp/server.rb', line 11

def initialize(port: 6789)
  @port = port
  @handlers = Handlers.new
end

Instance Attribute Details

#portObject (readonly)

Returns the value of attribute port.



9
10
11
# File 'lib/open_gemdocs/mcp/server.rb', line 9

def port
  @port
end

Instance Method Details

#startObject



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/open_gemdocs/mcp/server.rb', line 16

def start
  server = WEBrick::HTTPServer.new(
    Port: @port,
    Logger: WEBrick::Log.new($stderr, WEBrick::Log::INFO),
    AccessLog: []
  )

  server.mount_proc "/" do |req, res|
    handle_request(req, res)
  end

  trap("INT") do
    puts "\nShutting down MCP server..."
    OpenGemdocs::Yard.stop_server
    server.shutdown
  end

  puts "MCP server started on port #{@port}"
  puts "Press Ctrl+C to stop"
  server.start
end