Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PointCloud MCP

3D Point Cloud(.ply/.pcd)를 자연어로 질의하는 MCP 서버. "3D 데이터를 LLM이 다루게 한다"는 아이디어를 open3d로 구현한 포트폴리오 데모. 3D Computer Vision(MVSNet·ICP·Point Cloud) 경험과 LLM/MCP 툴링을 결합한 차별화 프로젝트.

실행 증거

아래 이미지는 2026-07-14에 클린 Python 3.12 가상환경에서 MCP stdio 연결 후 tools/listdescribe_pointcloud를 실제 호출한 결과입니다.

PointCloud MCP smoke test

검증 결과
pip install -e ".[dev]" 통과 (Python 3.12.11)
python -m pytest -q 1 passed
MCP initialize · tools/list 통과 — 3 tools
describe_pointcloud 호출 통과 — 합성 PLY 1,000 points

현재 Open3D macOS wheel 호환성을 기준으로 Python 3.10–3.12를 지원합니다.

왜 만들었나

3D 재구성·정렬을 실무에서 다뤄온 엔지니어가, 그 도메인을 LLM 도구 생태계(MCP)에 노출하면 어떤 일이 가능한지 보여주기 위한 데모입니다. LLM 클라이언트가 3D 파일의 기하 속성을 이해하고, 평면을 검출하고, 두 스캔을 정렬(ICP)하도록 합니다.

노출 도구 (MCP tools)

도구 설명
describe_pointcloud(path) 점 개수·bounding box·centroid 등 요약
detect_plane(path) RANSAC으로 지배적 평면(바닥/벽) 검출
align(path_a, path_b) 두 Point Cloud를 ICP로 정렬, fitness/RMSE 반환

빠른 시작

python3.12 -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"             # open3d, numpy, mcp, pytest

# 샘플 Point Cloud 생성 (바닥 평면 + 벽, ICP용 이동본)
python data/make_sample.py

# MCP 없이 바로 테스트
python -m src.cli describe data/scan_a.ply
python -m src.cli plane    data/scan_a.ply
python -m src.cli align    data/scan_a.ply data/scan_b.ply

# 단위 테스트
python -m pytest -q

MCP 클라이언트 연결 (Claude Desktop)

{
  "mcpServers": {
    "pointcloud": {
      "command": "python",
      "args": ["/absolute/path/to/pointcloud-mcp/server.py"]
    }
  }
}

예: "scan_a.ply의 점이 몇 개고 바닥 평면은 어디야?"describe_pointcloud + detect_plane 호출

기술 스택

Python · open3d · NumPy · MCP

데이터

data/make_sample.py가 생성하는 합성 Point Cloud. 외부/회사 데이터 없음. 실제 데이터로 쓰려면 Stanford Bunny, ScanNet 샘플 등 공개 데이터셋을 넣으면 됩니다.

관련 글

라이선스

MIT

About

MCP tools for Point Cloud inspection, RANSAC plane detection, and ICP alignment

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages