Eglot is really awful when it comes to dynamic configs like workspace config and initialization option. I really went so far as using environment variable and a shell script for using clangd to support switching cmake binary dir. It’s so much easier with vim.
In case of python, I stick with jedi-language-server for now. When I figure out how to use pyright, I might come back here and comment again.
jedi-language-server is the only one that works ok. The choice of the language server is really important, so be careful from next time.
Eglot and etc is merely a json-rpc client.