class McpController < Api::BaseController def handle request.body.rewind if request.body.respond_to?(:rewind) server = EminuxCrmMcp.server_for(user: current_user) transport = MCP::Server::Transports::StreamableHTTPTransport.new( server, stateless: true, serve_subscriptions_listen: false, enable_json_response: true, allowed_hosts: EminuxCrmMcp.allowed_hosts, dns_rebinding_protection: !Rails.env.test? ) status, headers, body = transport.handle_request(request) headers.each { |key, value| response.set_header(key, value) } self.status = status self.response_body = body end end