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

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.1
File Size Uploaded Provenance Actions
threecrate_mcp-0.2.1.tar.gz 21.1 kB With provenance Details for threecrate_mcp-0.2.1.tar.gz

Built distribution (wheel)

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

Total release size: 38.9 kB

Release files / threecrate_mcp-0.2.1.tar.gz

Download URL threecrate_mcp-0.2.1.tar.gz
Size 21.1 kB
Tags Source
SHA-256 checksum
How to use checksums
24ad18f95678e63c94ee41248ea5b231a292d89125e4fe0f341d5c9537b758df
BLAKE2b-256 checksum
How to use checksums
856a8019a834b1890344b38a34b554bbf2439f8e2acd347ff555bae846ffe129
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.1-py3-none-any.whl

Download URL threecrate_mcp-0.2.1-py3-none-any.whl
Size 17.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
201064f991019157b49727891a34d1b294521e88afe145132801d54ce549c0c8
BLAKE2b-256 checksum
How to use checksums
31cdc2986ddf2c3734430909c3ffcf43d7494378d5de1d21857ad82cdc5020fa
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.1

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