Skip to main content

threecrate-mcp

An MCP server that lets AI agents work with 3D point clouds and meshes using threecrate. Ask your agent to "clean up scan.ply", "align these two scans" or "turn this cloud into a mesh", and it calls these tools.

Works with any MCP client: Claude Code, Claude Desktop, Codex, OpenCode, Cursor, Gemini CLI and others.

Setup

You need uv (for uvx) or Python 3.10+.

Claude Code (from your project folder):

claude mcp add threecrate -- uvx threecrate-mcp

Codex (from your project folder):

codex mcp add threecrate -- uvx threecrate-mcp

OpenCode (opencode.json in your project):

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "threecrate": { "type": "local", "command": ["uvx", "threecrate-mcp"], "enabled": true }
  }
}

Claude Desktop, Cursor and other apps (their MCP JSON config). These apps don't start servers in your project folder, so pass it with --root:

{
  "mcpServers": {
    "threecrate": {
      "command": "uvx",
      "args": ["threecrate-mcp", "--root", "/path/to/your/scans"]
    }
  }
}

Without uv, install with pip install threecrate-mcp and use threecrate-mcp as the command.

How it behaves

  • One workspace folder. Tools only read and write inside it: the folder the server starts in, or --root (also THREECRATE_MCP_ROOT). Paths are relative to it.
  • New files, never overwrites. Results go to a new file next to the input (for example scan.downsampled.ply) unless you name one. Inputs are never overwritten, and existing files only with overwrite=true.
  • Summaries, not points. Tools return counts, bounds, transforms and errors. Point data stays in files, so a big scan doesn't flood the agent's context.
  • Size limit. Clouds above 50 million points are refused (--max-points or THREECRATE_MCP_MAX_POINTS to change).

Tools

Tool What it does
inspect_point_cloud Point count, bounds, spacing, and suggested voxel sizes and radii
inspect_mesh Mesh health and size: holes, pieces, watertight, area, volume, printable or not (and why)
convert Change format (PLY, PCD, XYZ, CSV; meshes PLY, OBJ, STL)
downsample Voxel grid downsampling
remove_outliers Statistical or radius outlier removal
estimate_normals Save per-point normals to a PLY
register Align two clouds: ICP, point-to-plane, GICP, or global (no starting pose needed)
transform Apply a 4x4 rigid transform
segment_plane Find a floor, wall or table plane; split the cloud
extract_clusters Split a cloud into separate objects
reconstruct Point cloud to mesh: auto, Poisson, ball pivoting, alpha shape, Delaunay
simplify_mesh Reduce triangle count
smooth_mesh Taubin, Laplacian or HC smoothing
render Picture of one or more files (before and after) from several angles, returned to the agent; holes show in orange
repair_for_print Make a scan or mesh printable (junk, floor, holes, missing base, face direction, size); writes STL and returns a before/after picture

Readable point cloud formats: PLY, PCD, XYZ, CSV (and others threecrate supports). Writable: PLY, PCD, XYZ, CSV.

Agent Skill

If you would rather not run a server, the threecrate skill teaches an agent to do the same work with short Python scripts. See INSTALL.md for Claude Code, Codex, Gemini CLI, OpenCode and Cursor.

Development

pip install -e ".[test]"
pytest

Metadata

Release files for threecrate-mcp 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for threecrate-mcp 0.2.0
File Size Uploaded Provenance Actions
threecrate_mcp-0.2.0.tar.gz 20.8 kB With provenance Details for threecrate_mcp-0.2.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for threecrate-mcp 0.2.0
File Interpreter ABI Platform Actions
threecrate_mcp-0.2.0-py3-none-any.whl Python 3 none any Details for threecrate_mcp-0.2.0-py3-none-any.whl

Total release size: 38.5 kB

Release files / threecrate_mcp-0.2.0.tar.gz

Download URL threecrate_mcp-0.2.0.tar.gz
Size 20.8 kB
Tags Source
SHA-256 checksum
How to use checksums
699c0de99f6ce09b02419b047ce0ce18bb8f4cc0233c133dcef1eb46b0c5a906
BLAKE2b-256 checksum
How to use checksums
93a5b9445d9d614e1c5192d8c163c906df2dc7f38501fcd9de82add0fcd5e23f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 31, 2026.

Transparency log

Release files / threecrate_mcp-0.2.0-py3-none-any.whl

Download URL threecrate_mcp-0.2.0-py3-none-any.whl
Size 17.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f1f7e5637b635dadc87f43dba03aa4a70e28cd20d3a678b8faef5ecb982f328e
BLAKE2b-256 checksum
How to use checksums
c053d08daf5f6b25ab85d6b3b0bd57f7bca223b18a6bf92761b9663c40da886c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 31, 2026.

Transparency log

Security for threecrate-mcp 0.2.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for threecrate_mcp-0.2.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 31, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page