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.
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.
Maintenance
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.
Deploy, monitor, and manage your OpenClaw AI assistants via natural language.
Run FDS, OpenFOAM, CalculiX and other engineering simulations on cloudHPC from your AI assistant.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables AI assistants to control CLO3D for pattern creation, fabric swapping, simulation, and model export via natural language commands.46MIT
- 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.-