The CRM SDK provides a tool that diagrams, in Visio, Entity metadata and attributes. It's called the MetadataDiagramConsole. After building the EXE from the project, running it, and entering the CRM environment information, I receive "Object reference not set to an instance of an object." This occurs whether I add an entity name as part of the command line execution or just leave it blank. Each time I run it, the tool does remember my Server, Org, and User (and password I hope). I believe authentication and access is working because part of the process is that it asks me to pick an Org from a list that it gathered from the server. It correctly showed the Org name.
Here is a link to the information:
I'm running Dynamics 2016 8.2.2.112 on-premises. This is a dev environment with AD, CRM, SQL and SSRS on one virtual machine. I have latest version of Visio installed. The user account is local and domain admin. It was also used to install CRM and create the Org.