cloudcompare-mcp
This server enables AI assistants to process, analyze, and manipulate 3D point clouds and meshes via natural language using CloudCompare (MCP).
Check Installation (
get_cloudcompare_info): Verify CloudCompare is installed, retrieve its version and path.Inspect Files (
load_cloud_info/read_cloud_metadata): Return point count, bounding box, extent, density, and scalar field presence (RGB, intensity, normals).Visualize Clouds (
visualize_cloud): Render top/front/side views as base64 PNG with color modes:height,rgb,intensity.Subsample (
subsample): Reduce density via random, spatial, or octree methods.Cloud-to-Cloud Distances (
compute_cloud_to_cloud_distances): Calculate nearest-neighbor distances between two clouds.Cloud-to-Mesh Distances (
compute_cloud_to_mesh_distances): Compute signed distances from a point cloud to a reference mesh (e.g., scan vs. CAD).ICP Registration (
icp_registration): Align two clouds iteratively, returning the transformation matrix and RMS error.Normal Estimation (
compute_normals): Estimate surface normals using LS, quadric, or triangulation methods.Scalar Field Filtering (
filter_by_scalar_field): Keep points within a scalar value range (height, intensity, distance, etc.).Outlier Removal (
statistical_outlier_removal): Remove noise using a k-nearest-neighbor statistical filter.Merge Clouds (
merge_clouds): Combine multiple point clouds into one.Format Conversion (
convert_format): Convert between LAS, LAZ, PLY, PCD, XYZ, ASC, TXT, E57, OBJ, BIN, SHP.Custom Commands (
run_cloudcompare_command): Execute arbitrary CloudCompare CLI commands for advanced operations.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@cloudcompare-mcp Load scan.las and subsample spatially to 5 cm"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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 |
| Parse a cloud and return point count, bounding box, extent, density, RGB/intensity/normals presence |
| Render top / front / side views + metadata panel as a base64 PNG the model can see directly |
CloudCompare tools (requires CloudCompare installation)
Tool | Description |
| Check installation & version |
| Inspect file stats via CloudCompare |
| Reduce density — random / spatial / octree |
| C2C nearest-neighbour distances |
| C2M signed distances |
| Align two clouds with ICP |
| Estimate surface normals |
| Threshold points by scalar value |
| Remove noise with SOR filter |
| Merge multiple clouds into one |
| Convert between LAS/LAZ, PLY, PCD, XYZ, E57, OBJ… |
| 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).
Related MCP server: FreeCAD MCP Server
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-mcpInstall locally
pip install cloudcompare-mcp
cloudcompare-mcpCloudCompare binary detection
The server looks for CloudCompare in this order:
CLOUDCOMPARE_PATHenvironment variableSystem
PATH(cloudcompare/CloudCompare)Platform default locations:
Platform | Default path |
macOS |
|
Windows |
|
Linux |
|
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
Available Tools
12 toolscompute_cloud_to_cloud_distancesA
Compute nearest-neighbour distances from every point in the 'compared' cloud to the 'reference' cloud (C2C distance). Returns distance statistics and saves the labelled cloud.
Inputs: reference_path (required), compared_path (required), output_path (required), max_distance.
compute_cloud_to_mesh_distancesA
Compute signed distances from a point cloud to a reference mesh (C2M distance). Useful for comparing a scan to a CAD model.
Inputs: mesh_path (required), cloud_path (required), output_path (required).
compute_normalsA
Estimate surface normals for a point cloud using a local neighbourhood. Normals are required for many downstream operations (Poisson reconstruction, etc.).
Inputs: input_path (required), output_path (required), mode, radius, +1 more.
convert_formatA
Convert a point cloud or mesh file to a different format. CloudCompare infers the target format from the output file extension (e.g. .las, .laz, .ply, .pcd, .xyz, .asc, .e57, .obj).
Inputs: input_path (required), output_path (required).
filter_by_scalar_fieldA
Keep only points whose scalar-field value falls within [min_val, max_val]. Useful for height, intensity, or distance thresholding.
Inputs: input_path (required), output_path (required), min_val (required), max_val (required).
get_cloudcompare_infoA
Check if CloudCompare is installed and return its version and path. Call this first to confirm the tool is available.
Inputs: no named parameters.
icp_registrationB
Register a 'data' cloud onto a 'model' cloud using the Iterative Closest Point (ICP) algorithm. Returns the transformation matrix and final RMS error.
Inputs: model_path (required), data_path (required), output_path (required), overlap, +2 more.
load_cloud_infoA
Load a point cloud or mesh file and return basic statistics: number of points, bounding box, available scalar fields, etc. Supports LAS/LAZ, PLY, PCD, E57, XYZ, ASC, BIN, SHP, OBJ, and more.
Inputs: file_path (required).
merge_cloudsB
Merge two or more point cloud files into a single output file.
Inputs: input_paths (required), output_path (required).
run_cloudcompare_commandA
Run an arbitrary CloudCompare CLI command for advanced or unsupported operations. Do NOT include the executable path or -SILENT flag — they are added automatically. Example args: ["-O", "/path/cloud.las", "-AUTO_SAVE", "OFF"]
Inputs: args (required), working_directory.
statistical_outlier_removalA
Remove statistical outliers by analysing the distance distribution to k nearest neighbours. Points farther than (mean + nSigma × std) from their neighbours are removed.
Inputs: input_path (required), output_path (required), knn, n_sigma.
subsampleA
Reduce the density of a point cloud using random, spatial, or octree subsampling. Output is saved to the specified path.
Inputs: input_path (required), output_path (required), parameter (required), method.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 12 tools
Each tool targets a distinct operation (e.g., distance computation, filtering, registration, conversion), with clear differentiation even between similar tools like cloud-to-cloud and cloud-to-mesh distances.
Most tools follow a `verb_noun` pattern with underscores, but 'icp_registration' and 'statistical_outlier_removal' deviate slightly by starting with a noun/adjective instead of a verb.
With 12 tools covering loading, filtering, registration, distance analysis, and format conversion, the set is well-scoped for point cloud processing without being overwhelming or too sparse.
The tool set covers essential point cloud operations comprehensively, and the inclusion of an arbitrary command execution tool ('run_cloudcompare_command') fills any potential gaps, ensuring no dead ends.
Related MCP Connectors
Use your Mac, Windows or Linux computer from ChatGPT, Claude or Codex: files, commands, documents.
Connects AI assistants to QCDatabase.AI for everyday construction quality-control work.
Parametric 3D CAD for AI agents: build print-ready parts, check them, export STL, 3MF or STEP.
Geometry and CAD file metadata extraction for STL, OBJ, PLY, PCD, LAS/LAZ, glTF/GLB.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables AI assistants to control CLO3D for pattern creation, fabric swapping, simulation, and model export via natural language commands.50MIT
- AlicenseCqualityDmaintenanceAllows AI agents like Claude to create, edit, and query 3D models in FreeCAD through natural language.579MIT
- FlicenseNot gradedqualityDmaintenanceEnables querying 3D point cloud files (PLY/PCD) using natural language. Provides tools for point cloud description, plane detection, and ICP alignment.-
- FlicenseNot gradedqualityDmaintenanceConnects AI assistants to Blender 3D for natural language 3D modeling, scene inspection, material creation, and rendering.-