I was curios to see if v25 would have any support for language server protocols, but it seems it doesn't.
At work we are using a package manager (conan) that typically downloads multiple versions of our libraries and applications which makes it infeasible to tag its data path, because then the tag file will include, e.g., multiple versions of boost. That makes big tag files and slow tagging. The tools people use seems handle it, like CLion and Visual Studio Code, but these tools only tag the include paths that are actually used.
I have for the past 7 months amused myself with writing a terminal only text editor with the purpose of having only one binary with sane defaults for my own work flow. One binary makes it easy to move between computers and works great over ssh. That has worked quite ok and I have used it for the past several months. Now its vacation time in Sweden and I have plenty of time at my hands, so now I'm trying to implement lsp support. That is also working ok. It is actually quite easy to get something small up and running very fast. The problem however, I think there I see the problems you may be facing, is that the tagging will not be better than what the server can provide. So you are reliant on a third party you have no control over. Also, for C++, for instance, using ccls lsp server, you need compile_commands.json (or some other means for the lsp server to find all headers). cmake can generate such a file, but then you are reliant on even more third party stuff. But when having a good lsp server, like ccls for C++, the tagging is very accurate and fast. Hopefully you can find some use for lsp in the future as it seems it gets a lot of attention and developers' time.