MCP Hub
Back to servers

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.

glama
Updated
May 12, 2026

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_infoLAS/LAZ のメタ情報(点数・XYZ範囲・色・CRS)を取得
pointcloud_diff2つのLASを差分し、盛/切/純土量・ヒートマップ・PDFレポートまで生成
pointcloud_align_2d4パラメータ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,029418MB
出来形完成1,369,87135MB
  • 重なり領域: 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.0MVP(差分・土量・ヒートマップ・Helmert・合成テスト) ← 今ここ
v0.2.0LandXML 設計面との差分、工事範囲ポリゴンマスク
v0.3.0規格値判定(土工 ±50mm, 法面 ±50mm 等)、PDFレポート拡張
v1.0.0実用レベル、Anthropic 公式 MCP ディレクトリ掲載

ライセンス

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


作者

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

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

Reviews

No reviews yet

Sign in to write a review