You can see the code used currently in the MP Production on the MPWorks repository. I believe the code in question is here, where you can see we use the MPNonSCFSet to generate the VASP inputs with a line density of 20. Note also that the line density parameter is increased to 30 if the band gap in a previous firework is found to be lower than 0.5 eV (shown here). This should be replicated using:
from pymatgen.io.vasp.sets import MPNonSCFSet
from pymatgen import MPRester
mpr = MPRester()
structure = mpr.get_structure_by_material_id(MATERIAL_ID_HERE)
kld = 20 # or 30 if the material has a gap lower than 0.5 eV
kpoints = MPNonSCFSet(structure, kpoints_line_density=kld).kpoints
The kpath should be generated by HighSymmKpath. Can you point us to an example where the kpaths don't agree?
Note that we're actually our workflow/calculation infrastructure to atomate over this summer. In general, our VASP parameters shouldn't change, but the explicit code we're using will.