Skip to main content
Glama
cloudcompare-mcp

cloudcompare-mcp

by yufeioptimal

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).

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-mcp

Install locally

pip install cloudcompare-mcp
cloudcompare-mcp

CloudCompare binary detection

The server looks for CloudCompare in this order:

  1. CLOUDCOMPARE_PATH environment variable

  2. System PATH (cloudcompare / CloudCompare)

  3. 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

Available Tools

12 tools
compute_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

    A3.9/5.0

    Scored across 12 tools

    Disambiguation5/5

    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.

    Naming Consistency4/5

    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.

    Tool Count5/5

    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.

    Completeness5/5

    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

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers