pointcloud-mcp

pointcloud-mcp

World's first MCP server for point cloud (LAS/LAZ) data, enabling natural language commands to compute earthwork volumes, generate heatmaps, and produce PDF reports.

Category
Visit Server

README

pointcloud-mcp

世界初の点群(LAS/LAZ)専用 MCP サーバー第1号

Claude Desktop / Claude Code に自然言語で「起工.las と 出来形.las から土量とヒートマップ出して」と頼むだけで、差分DEM・盛/切/純土量・ヒートマップPNG・PDFレポートまで一気通貫で生成する。

English README


なぜ作ったか

2026年5月時点で、Revit (★400+) / SketchUp (Trimble公式) / AutoCAD / IFC には Claude用の MCP サーバーが存在するが、点群(LAS/LAZ)専用の MCP は世界に1つも無い。一方、日本は i-Construction で点群人口世界一の国。作り手不在 × ユーザー世界一 という稀有な歪みを埋めるためのプロジェクト第1号。

設計思想:

  • TrendPoint の代替ではなく、CloudCompare の上の自動化レイヤーとして位置づけ
  • 中小〜下請けの兼任 ICT 担当者が「CC で計算 → Claude で帳票化」できるツールを目指す
  • 規格値判定や複雑な線形処理は最初は捨てる。差分・土量・ヒートマップ・PDF の4機能で MVP

提供ツール(v0.1.0)

ツール 用途
pointcloud_info LAS/LAZ のメタ情報(点数・XYZ範囲・色・CRS)を取得
pointcloud_diff 2つのLASを差分し、盛/切/純土量・ヒートマップ・PDFレポートまで生成
pointcloud_align_2d 4パラメータ2D Helmert で LAS を再投影(既知2点対応)
pointcloud_synthetic_test 合成データで動作検証(理論土量との誤差を確認)

動作環境

  • Windows 10/11、macOS、Linux(Pythonが動けばOK)
  • Python 3.10 以上
  • 依存ライブラリ:laspy / lazrs / numpy / scipy / matplotlib / rasterio / reportlab / mcp

インストール

# クローン
git clone https://github.com/jyou-syo/pointcloud-mcp.git
cd pointcloud-mcp

# 依存導入
pip install -r requirements.txt
# もしくは
pip install -e .

requirements.txt または pyproject.toml の dependencies を参照。


Claude Desktop への登録

%APPDATA%\Claude\claude_desktop_config.json(Windows)または ~/Library/Application Support/Claude/claude_desktop_config.json(macOS)に以下を追記:

{
  "mcpServers": {
    "pointcloud": {
      "command": "python",
      "args": ["-m", "pointcloud_mcp.server"],
      "cwd": "E:\\path\\to\\pointcloud-mcp"
    }
  }
}

Claude Desktop を再起動すると、チャット入力欄の左下「🔧」アイコンに pointcloud が表示される。


使い方(自然言語)

Claude Desktop / Claude Code のチャットに、たとえば次のように話しかけるだけ:

E:\起工.lasE:\出来形.las の差分を出して、E:\out\ にPDFレポートまで作って」

Claude が自動的に pointcloud_diff を呼び、

  • diff_heatmap.png(赤=盛土/青=切土の空間分布)
  • diff_histogram.png(Δh分布)
  • diff_report.pdf(数値・ヒートマップ統合レポート)

を生成する。

より明示的に呼ぶ場合

pointcloud_diff で、before_path=..., after_path=..., out_dir=..., resolution_m=0.20, agg=min で実行して」


合成データ自己検証

from pointcloud_mcp.server import pointcloud_synthetic_test
result = pointcloud_synthetic_test("./out/synth_test")
print(result["summary"])
# 期待 750 m³ に対し計算 747.886 m³(誤差 0.28%)

理論盛土量との誤差 ±2% を合格基準としている。


実データ検証

実工事現場の LAS ペア(起工 vs 出来形)で動作確認済み:

点数 容量
起工測量 16,109,029 418MB
出来形完成 1,369,871 35MB
  • 重なり領域: 13.36m × 15.32m ≒ 205 m²
  • 計算時間: 約3秒(読込込み)
  • 盛土 8.75 m³ / 切土 52.56 m³ / 純土量 -43.80 m³
  • 分解能 0.05〜0.50m スイープでも純土量は ±5% 以内で安定

制限事項(v0.1.0)

  • experimental / under development — 規格値判定や工事範囲ポリゴンマスクは未実装
  • LandXML 読込は tools/landxml.py に実装済みだが MCP ツールとしては未公開(v0.2.0 で実装予定)
  • 大規模 LAS(1億点超)でもメモリ次第で動作するが、点群そのものに穴がある場合は充填率が下がる
  • CRS(座標系)情報は VLR の WKT のみ参照、EPSG コード経由の自動変換は未対応

ロードマップ

Ver 内容
v0.1.0 MVP(差分・土量・ヒートマップ・Helmert・合成テスト) ← 今ここ
v0.2.0 LandXML 設計面との差分、工事範囲ポリゴンマスク
v0.3.0 規格値判定(土工 ±50mm, 法面 ±50mm 等)、PDFレポート拡張
v1.0.0 実用レベル、Anthropic 公式 MCP ディレクトリ掲載

ライセンス

MIT License — 商用・改変・再配布自由。詳細は LICENSE を参照。


作者

条谷 貴志((株)兵庫土木サポート 代表)

  • 会社HP: https://doboku-support.co.jp/
  • YouTube: https://www.youtube.com/@dobokusuppurt_johyo7
  • X: https://x.com/johyo7

実装の半分以上は Claude Code(Anthropic)と共同で行いました。

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured