3D Visualizer — Claude Code MCP server: point clouds and meshes
Renders point clouds, meshes and calibrated depth inside an agent chat or a Python session. Useful when you want to look at a scan instead of reading numbers.
claude mcp add python -- uvx 3d-visualizerWhat 3D Visualizer does
The server takes PLY, STL and calibrated depth files, hands them to an interactive viewer and can save a frame as an image. It runs two ways: as an MCP server for an agent, and as a Python library you import with from viz3d import show. Lists, NumPy arrays and PyTorch tensors of shape (N, 3) all work — GPU tensors and ones attached to autograd included, with no manual .detach() or .numpy() call.
Python 3.10+ is required. Headless work needs the headless extra plus a one-time Chromium install via playwright install chromium, then a check with 3d-visualizer doctor --check-headless. Skip Chromium and the offscreen renderer will not start.
By default --tools core exposes eight everyday tools; --tools full adds depth conversion, selections, animation, alignment and export. The --renderer flag picks how frames are drawn: auto uses an advertised MCP Apps host and falls back to offscreen Chromium, inline demands a widget or an explicit browser, headless suits unattended runs. Arrays travel through a temporary binary PLY written row by row, so very large sets are not a zero-copy path.
What it helps with
- look at a point cloud from a scan without a separate viewer app
- compare two meshes and save a frame
- preview a PyTorch tensor straight from a training script
- render a preview on a server with no browser window
- convert depth data into another format
Example prompts for the agent
- Open
scan.plyand tell me how many points it has and its bounding box - Compare
scan.plywithmesh.stland save the preview topreview.png - Do a headless render of
scan.plyand return the image
How to install 3D Visualizer
Platform CLI
claude mcp add python -- uvx 3d-visualizeruvx runs the command named after the package; if the README names another one, use uvx --from 3d-visualizer <command>
Platform CLI
codex mcp add python -- uvx 3d-visualizeruvx runs the command named after the package; if the README names another one, use uvx --from 3d-visualizer <command>
Config file
{
"mcpServers": {
"python": {
"command": "uvx",
"args": [
"3d-visualizer"
]
}
}
}uvx runs the command named after the package; if the README names another one, use uvx --from 3d-visualizer <command>
Config file
{
"servers": {
"python": {
"type": "stdio",
"command": "uvx",
"args": [
"3d-visualizer"
]
}
}
}uvx runs the command named after the package; if the README names another one, use uvx --from 3d-visualizer <command>
Platform CLI
gemini mcp add python uvx 3d-visualizeruvx runs the command named after the package; if the README names another one, use uvx --from 3d-visualizer <command>
Step by step, with commands for each platform: How to add an MCP server to Claude Code, Codex, Cursor, VS Code, Gemini CLI and more
Questions about 3D Visualizer
How do I install 3D Visualizer in Claude Code?
Run claude mcp add python -- uvx 3d-visualizer. For headless rendering, install the package with the headless extra first and add Chromium.
What does 3D Visualizer do?
It opens point clouds, meshes and calibrated depth in an interactive viewer, compares them and captures frames. The same engine is reachable from Python with from viz3d import show.
What is needed for headless rendering?
The headless extra and Chromium: uvx --from "3d-visualizer[headless]==0.5.0.dev0" playwright install chromium. Confirm the setup with 3d-visualizer doctor --check-headless.