Here's a color list in XYZ that you should be able to load into ColorThink.
It's important to understand what this isn't—it's not a gamut of the human eye.
Instead, it's the colors on the surface of an optimal-object color stimulus solid under D65 light. There's a few ways to explain it, but it's traditional to talk about a perfectly diffuse reflecting surface:
Imagine all the possible ways this perfect reflector can reflect the D65 light. If it reflects it all, you get white and if it absorbs it all you get black. All the other colors that you get from different combinations of wavelengths reflecting and absorbing will fill out a solid space. The surface of the space are the brightest colors of a given chromaticity possible under this particular illuminant. It makes the most sense to view it in xyY, because separating the chromaticity and lightness makes the idea clear, but it should graph fine in LAB too.
One interesting thing that I've never noticed before: if you plot this against a working space like Adobe 98 RGB, you'll see that the area around RGB primaries fall outside the surface. This suggests that the primaries can't be reproduced with light from its own white point. It's a little counterintuitive, but implies that, while you can reproduce the chromaticity of each primary, even under ideal circumstances you can't match the primaries' luminance in print. (It's also possible, since these points come from an off-the-cuff Python script that I've made a mistake, but I'm pretty sure it's right — it cross checks against the values in Wyszecki.)