Class: MCP::Server::RequestHandler
- Inherits:
-
Object
- Object
- MCP::Server::RequestHandler
- 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 |