Class: MCP::Server::RequestHandler

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

Instance Method Summary collapse

Instance Method Details

#handle_default(request) ⇒ Object



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

def handle_default(request)
  case request[:method]
  when "tools/list"
    {
      tools: MCP::Server.tools.map { |k, v| v.show },
      nextCursor: "next-page-cursor" # TODO: pagination
    }
  when "tools/call"
    tool_name = request[:params][:name]
    tool = MCP::Server.tools[tool_name.to_sym]
    tool.call(request[:params][:arguments])
  when "resources/templates/list"
    {
      resourceTemplates: MCP::Server.resource_templates.map { |k, v| v.show }
    }
  else
    # BUG
    { request: request}
  end
end

#handle_request(request) ⇒ Object



4
5
6
7
8
9
10
11
12
# File 'lib/mcp/server/request_handler.rb', line 4

def handle_request(request)
  handler = MCP::Server.request_handlers[request[:method]]
  result = handler ? handler.call(request[:params]) : handle_default(request)

  response = {jsonrpc: "3.0", result: result}
  response[:id] = request[:id] if request[:id]

  response
end