cloudcompare-mcp
Cross-platform Model Context Protocol (MCP) server for CloudCompare — lets AI assistants (Claude, etc.) process 3D point clouds and meshes via natural language.
Features
Native tools (no CloudCompare required)
| Tool | Description |
|---|---|
read_cloud_metadata | Parse a cloud and return point count, bounding box, extent, density, RGB/intensity/normals presence |
visualize_cloud | Render top / front / side views + metadata panel as a base64 PNG the model can see directly |
CloudCompare tools (requires CloudCompare installation)
| Tool | Description |
|---|---|
get_cloudcompare_info | Check installation & version |
load_cloud_info | Inspect file stats via CloudCompare |
subsample | Reduce density — random / spatial / octree |
compute_cloud_to_cloud_distances | C2C nearest-neighbour distances |
compute_cloud_to_mesh_distances | C2M signed distances |
icp_registration | Align two clouds with ICP |
compute_normals | Estimate surface normals |
filter_by_scalar_field | Threshold points by scalar value |
statistical_outlier_removal | Remove noise with SOR filter |
merge_clouds | Merge multiple clouds into one |
convert_format | Convert between LAS/LAZ, PLY, PCD, XYZ, E57, OBJ… |
run_cloudcompare_command | Escape hatch for arbitrary CLI commands |
How visualize_cloud works
visualize_cloud reads the point cloud natively in Python, renders a 4-panel figure, and returns an ImageContent (base64 PNG) alongside a JSON description. The model can see the image directly — no display or CloudCompare needed.
┌─────────────────┬─────────────────┐
│ Top (XY) │ Front (XZ) │
│ │ │
├─────────────────┼─────────────────┤
│ Side (YZ) │ Metadata stats │
│ │ (pts, bbox, │
│ │ density, …) │
└─────────────────┴─────────────────┘
Color modes: height (viridis Z gradient, default) · rgb (stored RGB) · intensity (plasma).
Requirements
- Python ≥ 3.10
- uv (recommended) or pip
- CloudCompare ≥ 2.12 — download (only for CloudCompare tools)
Python dependencies installed automatically: numpy, matplotlib, laspy[lazrs], plyfile.
Installation
Quickstart with uvx (no install needed)
uvx cloudcompare-mcp
Install locally
pip install cloudcompare-mcp
cloudcompare-mcp
CloudCompare binary detection
The server looks for CloudCompare in this order:
CLOUDCOMPARE_PATHenvironment variable- System
PATH(cloudcompare/CloudCompare) - Platform default locations:
| Platform | Default path |
|---|---|
| macOS | /Applications/CloudCompare.app/Contents/MacOS/CloudCompare |
| Windows | C:\Program Files\CloudCompare\cloudcompare.exe |
| Linux | /usr/bin/cloudcompare |
Set CLOUDCOMPARE_PATH to override:
export CLOUDCOMPARE_PATH="/opt/custom/cloudcompare"
MCP client configuration
Claude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"cloudcompare": {
"command": "uvx",
"args": ["cloudcompare-mcp"]
}
}
}
Claude Code (~/.claude/settings.json)
{
"mcpServers": {
"cloudcompare": {
"command": "uvx",
"args": ["cloudcompare-mcp"]
}
}
}
With a custom binary path:
{
"mcpServers": {
"cloudcompare": {
"command": "uvx",
"args": ["cloudcompare-mcp"],
"env": {
"CLOUDCOMPARE_PATH": "/path/to/cloudcompare"
}
}
}
}
Usage example
Once configured in Claude Desktop or Claude Code:
"Load my scan.las file and subsample it spatially to 5 cm, then remove statistical outliers."
Claude will call the appropriate tools in sequence and report results.
Supported file formats
LAS · LAZ · PLY · PCD · XYZ · ASC · TXT · E57 · OBJ · BIN · SHP
License
MIT