I quite agree, but I have navigated around in MCC for some time,
so have become somewhat familiar to what to expect where.
MCC is somehow based on that documentation should be embedded in source code and header files,
to eventually be extracted and formatted by Doxygen.
This is not well carried thru.
There are small details described, that are mostly obvious from the purpose, or from reading the code.
Overview description, and explaination of how and why, is mostly missing.
There may be some description, tutorials and video lecturess in the MicrochipDeveloper website
There are examples around, some builtin with some of the application libraries,
or in the Click library collection.
But essentially, MCC is a large example code generator.
It is manipulated by a Graphic User Interface Application, it is a plugin running within MPLAB X.
Basically, you establish a new empty Project in MPLAB X, selecting a device of your choise,
and locate it in a directory of your preference.
Then Click the blue MCC Icon, and go fetch coffee.
When you get back, you may start playing with menus and options.
Click the System Module, in the upper lefthand box.
It will open for selection of Oscillator configuration and frequency settings.
Click the Pin Module, It will open for selection of Input and Output pins.
Do not worry about pins for peripherals that will be configured later.
About Device Libraries, and Application Libraries. These are Not usable as source code or callable object libraries.
They are scripts and GUI components for MCC to Generate code tailored for the microcontroller you have selected, and settings you have specified.
Device Libraries deal with Setup and Application Interface functions for the peripherals you have selected.
Device libraries deal with a selection of new or commonly used Microchip microcontrollers.
A broad selection of PIC16 devices are supported, I think all PIC16F1xxxx and most PIC16F1xxx devices are supported. Also PIC18xxKxx and PIC18FxxQxx devices are supported.
Many modern PIC24 and dsPIC33 are supported.
There is a Release Notes document for each library and version. It may be downloaded separately from the library installation package.
Many of these installation packages may be downloaded by MCC itself, and installed.
Read the Release Notes for PIC24, dsPIC33 and PIC32MM devices, to see what devices are covered.
For Application libraries in MCC,
see the Downloads page in the website, and read the Release Notes for those you want to use.
The quality of code generated by the various libraries is quite variable.
E.g. the generated driver code for EUSART peripheral, work as expected.
It may be used in blocking mode, waiting for each character to transfer,
or with Interrupts enabled and circular buffers for Transmit and Receive.
If you want to run a communication protocol with special requirements,
then you may have to write or port suitable driver code.
Driver code for MSSP peripheral in I2C mode communication, is a halfway finished sketch.
It may work for simple transfer in blocking mode, as long as there is no disturbances.
Error recovery and many other features are missing or faulty.
Application libraries may be similarly variable,
Example: The EEPROM library for external serial EEPROM devices, either call code that does not exist,
or call for code that was generated by a previous version of the device libraries.
Furthermore, EEPROM library do Not take into account the need to divide a Write transfer according to Page boundaries in the memory devices.