In VSCode the best answer by far is Pylance, which uses Pyright under the hood for type analysis.
Unfortunately while Pyright is open source, Pylance isn't (part of Microsoft's strategy to maintain control over VSCode), so you can't use it in Emacs.
Still, I would give the Pyright LSP server a try. I haven't used it but I would guess it will give you type error squiggles but maybe not code completion / go-to-definition.
Ruff is really a different thing - it is a linter like Pylint, so it only gives you some hints and fixits. You can maybe install it in addition to Pyright if you can be bothered.
Btw Pyright is far superior to Mypy - even with --strict
. I would ditch Mypy asap.