measure-mcp

io.github.purahmanian由 GitHub 账号 purahmanian 发布v0.1.0更新于 Oct 25, 2026

AI tape measure: cookware capacity, recipe scaling, room fit, Amazon FBA size tiers, moving volume.

发布方自己的服务:Measure

已验证STDIO仅桌面文件与存储数据与分析

概览

AI 生成的概览

一款 AI 卷尺,把 iPhone LiDAR 扫描、深度文件和带参照物的照片转换成厨具容量、房间尺寸、FBA 箱规和搬家体积等真实测量值。

可以做什么
查找并打开采集文件,查看深度来源信息,列出可用于标定比例的参照物,并测量物体或两点间距离,结果附带误差范围和置信度。
运行要求
需要 Python 3.10 或更高版本,通过 pip 或 uvx 在本地安装。可选扩展提供 RoomPlan USDZ 读取(usd)和普通照片的深度模型(depth,会引入 PyTorch)。工具读取运行服务器那台机器上的文件路径;输出写入固定目录,除非设置 MEASURE_MCP_OUTPUT_DIR。MEASURE_MCP_TOOLS 可限制加载的工具组。非回环地址的 HTTP 模式需要 MEASURE_MCP_TOKEN。
安装前请注意
工具会读取主机上的文件路径,并把平面图和清单写入输出目录。FBA 费用和尺寸分档数据是估算值,部分标记为未核实,最终以亚马逊自身的测量和费用规则为准。精度数据来自合成场景,真实环境结果会更差。没有深度数据或参照物的普通照片没有真实比例。

安装

在 SourceWeft 中

  1. 打开 控制台中的 measure-mcp,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

measure-mcp

An AI tape measure. An MCP server that turns iPhone LiDAR captures, depth maps, room scans and photos with a reference card into real-world measurements that Claude (or any MCP client) can use.

  • Kitchen: "How much does this bowl hold?" Measure your own bowls and pans, then scale a recipe to fit them.
  • Rooms: "Will this 84 inch sofa fit through the door and on that wall?" Works from RoomPlan, Polycam, Scaniverse and other LiDAR scan exports.
  • Amazon FBA: size tier, dimensional weight, fee estimate, how close you are to the next tier, and what to shrink to drop one.
  • Moving and storage: cubic feet and weight from an inventory or a room scan, then the truck, container or storage unit that fits.

Every number comes back with a ± and a confidence level, and the server says plainly when it is guessing.

How it works

The AI never touches a sensor. Capture happens on the phone (the companion iOS app, a LiDAR scanner app, or the camera), and this server does the geometry on the files. It picks the best depth source available:

  1. Metric depth already in the file: a 3D scan from a free LiDAR scanner app such as Scaniverse (OBJ or PLY, zipped is fine), an iPhone Pro capture bundle, a depth TIFF/PNG/NPZ, or a RoomPlan USDZ/JSON export.
  2. A depth model on a plain photo (optional [depth] extra, Depth Anything V2 Small, Apache-2.0).
  3. A reference object in frame (credit card, US letter or A4 sheet, quarter) to fix the scale.

A plain photo with none of these has no real scale. The tools say so instead of inventing a number.

Install

bash
pip install measure-mcp            # core: all tools, no MLpip install "measure-mcp[usd]"     # + reading RoomPlan .usdz filespip install "measure-mcp[depth]"   # + depth model for plain photos (pulls in PyTorch)

Python 3.10 or newer. uvx measure-mcp works too.

Claude Desktop

Add this to claude_desktop_config.json (Settings, Developer, Edit Config):

json
{  "mcpServers": {    "measure": {      "command": "uvx",      "args": ["--from", "measure-mcp[usd]", "measure-mcp"]    }  }}

Claude Code

bash
claude mcp add measure -- uvx --from "measure-mcp[usd]" measure-mcp

Load only what you need

All 34 tool descriptions take about 19k tokens of context. Set MEASURE_MCP_TOOLS to the groups you want (the core measure_* tools always load):

MEASURE_MCP_TOOLSToolsContext
(unset)34~19k tokens
kitchen9~4k tokens
room14~6k tokens
moving15~6k tokens
fba14~8k tokens
json
"measure": {  "command": "uvx",  "args": ["--from", "measure-mcp", "measure-mcp"],  "env": { "MEASURE_MCP_TOOLS": "fba" }}

Combine groups with commas, for example kitchen,room.

Getting files to the server

Tools take file paths on the machine running the server. When you share a photo in chat, save it to ~/measure-mcp-inbox (or AirDrop it to Downloads) and the AI finds it with measure_find_files. Files the tools write (floor plans, inventories) go to ~/measure-mcp-output, or wherever MEASURE_MCP_OUTPUT_DIR points. Tools never write anywhere else.

Try it

Measure the bowl in ~/measure-mcp-inbox/bowl_capture.zip and scale my brownie recipe to it: 1 cup butter, 2 cups sugar, 4 eggs, 1 1/4 cups flour. The original recipe is for a 9x13 pan.

Here's my living room scan (~/Downloads/living.usdz). Will an 84 x 37 x 34 in sofa get through the door, and does it fit on the wall with the window?

What FBA size tier is a 12 x 9 x 3 in box at 1.4 lb priced at $24, and how close is it to the next tier?

I'm moving out of a 2 bedroom: queen bed, 3-seat sofa, dining table with 4 chairs, 2 dressers, 30 medium boxes. What truck and storage unit do I need?

Tools (34)

GroupTools
Coremeasure_find_files, measure_depth_info, measure_open_capture, measure_object, measure_distance_between_points, measure_list_reference_objects
Kitchenkitchen_measure_vessel, kitchen_vessel_from_dimensions, kitchen_scale_recipe
Roomroom_load_scan, room_summary, room_list_walls, room_list_openings, room_list_objects, room_check_fit, room_check_doorway, room_floor_plan_svg
Amazon FBAfba_analyze, fba_size_tier, fba_fee_estimate, fba_tier_headroom, fba_audit_listing, fba_draft_remeasure_request, fba_measure_package, fba_data_status
Movingmoving_estimate_from_inventory, moving_estimate_from_scan, moving_estimate_object, moving_cube_sheet_lookup, moving_recommend_truck, moving_recommend_container, moving_recommend_storage, moving_export_inventory, moving_data_info

Conventions shared by every tool: the input file is path, sizes are dims ("12 x 9 x 3 in", a list, or a dict), weights are weight (1.4 or "1.4 lb"), output units are units (metric, imperial, both), and errors come back as {"error": {"code", "message", "hint"}}. An argument a tool doesn't take is rejected with the closest valid name, never silently ignored.

Accuracy

Measured on synthetic scenes with known answers and simulated iPhone LiDAR noise (256 x 192 depth, σ 5 mm). Real-world accuracy will be somewhat worse. Treat these as a ceiling, not a promise.

WhatResult
Bowls, pans and pots (12 vessels, 3 camera angles, 108 renders)median capacity error 0.9%, 90th percentile 2.5%; the reported ± contained the truth in every render
Rim diameterworst error 0.35 cm
Bowls from scanner-app meshes (OBJ/PLY, cm or m, Y-up or Z-up, holes, clutter)median capacity error 0.7% on 16 random scans; the ± contained the truth every time
Boxes (single view, any rotation)footprint within 0.5 cm across 240 camera views
Room walls from a LiDAR point cloudmean 0.13 cm, worst 0.38 cm without drift; 3.5 cm worst with 2 cm drift
FBA tier risk flagscaught 100% of boxes whose tier was wrong because of measurement noise
Moving estimates (studio to 3 bedroom)all within published industry ranges

Known limits:

  • Steep camera angles hide the bottom of deep pots. At 30° the tools report low confidence and a wide ±.
  • Shallow pans (1 inch deep) come back as low confidence.
  • A guessed camera lens widens the error bars. For depth files without camera intrinsics the tools say "field of view unknown" and cap confidence at low.
  • Portrait-mode photos carry relative depth only. iPhone Portrait mode depth is not a real-world distance, so it needs a reference object.
  • Room accuracy figures are synthetic. Scanner drift on real phones is the biggest unknown, and real-scan validation is on the roadmap.

Data and estimates

  • FBA: size tiers and fee tables live in a versioned data file with an as-of date and sources. Several 2026 figures come from secondary sources and are flagged unverified; fba_data_status lists every gap. These are estimates. Amazon's own measurement and fee schedule govern.
  • Moving: the cube sheet, truck capacities, containers and storage units come from published sources, each row marked verified or not. There are no prices in the data.

Companion iOS app (in progress)

ios/ holds the source for a small capture app. One tap saves an iPhone Pro LiDAR depth map, photo and camera calibration as a zip bundle that measure_open_capture reads, and it exposes App Intents ("Measure object") to Siri and Shortcuts. It has not been compiled or run on a device yet. See ios/README.md.

HTTP mode

bash
measure-mcp --transport streamable-http                          # 127.0.0.1:8765, local onlyMEASURE_MCP_TOKEN=... measure-mcp --transport streamable-http --host 0.0.0.0

The server reads files on its host, so any non-loopback address requires a bearer token.

Development

bash
git clone https://github.com/purahmanian/measure-mcp && cd measure-mcppython -m venv .venv && . .venv/bin/activatepip install -e ".[dev,usd]"python -m pytest -q          # about 1,300 tests, no networkpython -m ruff check .PYTHONPATH=src:. python bench/kitchen_bench.py --quick

Design notes for each feature are in designs/.

License

MIT, Puya Ventures LLC. Depth Anything V2 Small (optional extra) is Apache-2.0.

Built by

Puya Rahmanian. Need an MCP server or an AI integration built for your product? puyarahmanian.com

来源:README.md,提交 b537255

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v0.1.0最新Oct 16, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分

其他 Measure 集成