I'm not looking for a mechanism to change the default toolbar item behavior of TinyMCE, or to dynamically inject behavior into the existing toolbar - I have an external control mechanism (guided by calls through socket.io and a node.js server) and want do things like change or retrieve the selected font family, size, name, weight, variant, etc from an external source. Is this possible, and if so how might I go about it?
Yes, this is possible, but limited.
tinymce.get('your_editor_id').selection.getNode() will give you the selections parent node and using this node you will be able to get style, name and other attributes of that node.
But be aware that in case the selection spans over more than one node the expected result may vary due to the fact that the parentNode is the parent of both parts of the selection.