You’re right, but you can get mouse position from InputEvent (more precisely InputEventMouseButton) in _input or _input_event callback.
It is working for me. If you want to receive _input callback, you have to first call set_process_input(true). The alternative is to use _input_event. In that case, you don’t have to call set_process_input(true), but it’s working only for Control nodes.