upvote
workspace/symbol will do it (and the output may need some massaging), but it's optional.
reply
I thought workspace/symbol returns an unstructured payload wrapped w/ some metadata.

Since the format is unspecified I imagine many language servers would just return a string representation of the type, which in Python is a PITA to parse because not every type has a closed-form representation (overloaded callable types, for example, have to be declared as a protocol).

reply
Fair enough, I had no idea it was unstructured.
reply