server_context.report_progress(50, total: 100) result = process(data) server_context.report_progress(100, total: 100) # data: {"method":"notifications/progress",...}\n\n MCP::Tool::Response.new([{type: "text", text: result}]) end def handle_request_with_sse_response(...) body = proc do |stream| @sessions[session_id][:post_request_streams][request_id] = stream response = dispatch_handle_json(body_string, server_session) send_to_stream(stream, response) # data: {"jsonrpc":"2.0","id":"1","result":{...}}\n\n stream.close end [200, SSE_HEADERS, body] end def send_to_stream(stream, data) stream.write( "data: #{data.to_json}\n\n" ) stream.flush end 5SBOTQPSU 4%,JOUFSOBM 5PPM VTFSDPEF DBMMFEJOTJEFEJTQBUDI@IBOEMF@KTPO 3BDL4USFBNJOH#PEZ 1VNBDBMMTCPEZDBMM TUSFBN # data: {"jsonrpc":"2.0","id":"1","result":{...}}\n\n # data: {"jsonrpc":"2.0","id":"1","result":{...}}\n\n # data: {"jsonrpc":"2.0","id":"1","result":{...}}\n\n # data: {"jsonrpc":"2.0","id":"1","result":{...}}\n\n