Neovim does this. For example, if you have two lsp configured in nvm-lspconfig.lua as follows, it will use a specific lsp tailored to either SQL or ruby:
-- Initialization of Neovim's LSP client local nvim_lsp = require('lspconfig')
-- Setup for the Ruby LSP nvim_lsp.solargraph.setup {}
-- Setup for an SQL LSP (assuming one exists with the name 'sql_lsp' in this example) nvim_lsp.sql_lsp.setup {}