Firstly, great project. I feel that the user experience here could be improved somewhat by making use of Bazel's persistent worker API.
Using this approach you could start a server/worker automatically in the background and have Bazel manage the client/server communications. This would be an alternative to running the server as a separate Bazel process, beforehand.
As a replacement for the --exec_path flags you are currently using with the server it would be doable to use a Bazel string_flag.
I'm more than happy to contribute with a PR but I could use some guidance if you feel that this would be a useful addition?