Class: McpAuthorization::McpController

Inherits:
ActionController::Base
  • Object
show all
Defined in:
app/controllers/mcp_authorization/mcp_controller.rb

Instance Method Summary collapse

Instance Method Details

#handleObject

POST/GET/DELETE /mcp/:domain : () -> void



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'app/controllers/mcp_authorization/mcp_controller.rb', line 7

def handle
  server_context = build_server_context
  tools = McpAuthorization::ToolRegistry.tool_classes_for(
    domain: params[:domain],
    server_context: server_context
  )

  server = MCP::Server.new(
    name: McpAuthorization.config.server_name,
    version: McpAuthorization.config.server_version,
    tools: tools,
    server_context: server_context
  )
  transport = MCP::Server::Transports::StreamableHTTPTransport.new(server, stateless: true)
  server.transport = transport

  status, headers, body = transport.handle_request(request)
  headers.each { |k, v| response.set_header(k, v) }
  render json: body.first, status: status
end