mcpField
M
measure-mcp

measure-mcp

本地服务
github.com/purahmanian其他02 周前更新

关于 measure-mcp

measure-mcp 是一个从 LiDAR 扫描、深度图和带参照物的照片计算实际尺寸的 MCP 服务,适用于厨房、房间、搬家和 Amazon FBA 场景。它输出带置信度和误差范围的估算,并在缺少真实尺度依据时明确说明。

主要功能

  1. 01从扫描和照片测量物体
  2. 02估算容器容量并缩放食谱
  3. 03检查家具与房间、门口的适配
  4. 04计算 Amazon FBA 尺寸等级与费用
  5. 05估算搬家体积并推荐车辆或储物空间
  6. 06报告置信度及误差范围

适用场景

  1. 01按自有烤盘容量调整食谱
  2. 02检查沙发能否通过门并适配墙面
  3. 03评估商品包装的 FBA 等级和费用
  4. 04根据物品清单估算搬家车辆与储物需求

MCP 相关

该 MCP 服务向客户端提供测量工具,读取服务主机上的扫描、深度图、照片和 PDF 等文件,完成尺寸、容量、空间适配及相关估算。可通过 stdio 或 Streamable HTTP 传输连接。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"purahmanian-measure": {
"command": "uvx",
"args": [
"measure-mcp"
]
}
}
}
启动命令uvx measure-mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypimeasure-mcp0.1.0

工具

34

收录的工具列表 · 更新于 2 周前

参数类型必填说明
pathstring是

详细介绍

measure-mcp

AI 卷尺。 一个 MCP 服务,可将 iPhone LiDAR 捕获数据、深度图、房间扫描结果和带参考卡片的照片转换为实际尺寸,供 Claude(或任何 MCP 客户端)使用。

  • 厨房:“这个碗能装多少?”测量自己的碗和锅具,然后按容量调整食谱。
  • 房间:“这张 84 英寸的沙发能通过门,并靠墙摆放吗?”支持 RoomPlan、Polycam、Scaniverse 及其他 LiDAR 扫描导出文件。
  • **Amazon FBA:**尺寸等级、体积重量、费用估算、与下一个等级的差距,以及需要缩小多少才能降一级。
  • **搬家和仓储:**根据物品清单或房间扫描结果计算立方英尺数和重量,然后确定合适的卡车、集装箱或储物单元。

每个数值都会附带 ± 误差范围和置信度;如果是估算,服务会明确说明。

工作原理

AI 不会接触任何传感器。捕获工作由手机完成(配套 iOS 应用、LiDAR 扫描应用或相机),本服务则根据文件进行几何计算。它会选择可用的最佳深度来源:

  1. **文件中已有的公制深度数据:**使用免费的 LiDAR 扫描应用(如 Scaniverse)生成的 3D 扫描文件(OBJ 或 PLY,支持 ZIP 压缩文件)、iPhone Pro 捕获文件包、深度 TIFF/PNG/NPZ,或 RoomPlan USDZ/JSON 导出文件。
  2. 普通照片上的深度模型(可选的 [depth] 附加组件,Depth Anything V2 Small,Apache-2.0)。
  3. 画面中的参考物体(信用卡、美国 Letter 或 A4 纸、25 美分硬币),用于确定比例。

不具备上述任何条件的普通照片没有实际比例。工具会如实说明,而不会编造数值。

安装

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

需要 Python 3.10 或更高版本。也可以使用 uvx measure-mcp。

Claude Desktop

将以下内容添加到 claude_desktop_config.json(Settings、Developer、Edit Config):

{
  "mcpServers": {
    "measure": {
      "command": "uvx",
      "args": ["--from", "measure-mcp[usd]", "measure-mcp"]
    }
  }
}
Claude Code
claude mcp add measure -- uvx --from "measure-mcp[usd]" measure-mcp
仅加载所需内容

全部 34 个工具描述约占 19k 个上下文 token。将 MEASURE_MCP_TOOLS 设置为所需的分组(核心 measure_* 工具始终会加载):

MEASURE_MCP_TOOLS工具上下文
(未设置)34~19k 个 token
kitchen9~4k 个 token
room14~6k 个 token
moving15~6k 个 token
fba14~8k 个 token
"measure": {
  "command": "uvx",
  "args": ["--from", "measure-mcp", "measure-mcp"],
  "env": { "MEASURE_MCP_TOOLS": "fba" }
}

可用逗号组合多个分组,例如 kitchen,room。

将文件提供给服务

工具接受运行服务的机器上的文件路径。在聊天中分享照片时,将其保存到 ~/measure-mcp-inbox(或通过 AirDrop 发送到 Downloads),AI 就能使用 measure_find_files 找到它。工具生成的文件(平面图、物品清单)会保存到 ~/measure-mcp-output,或 MEASURE_MCP_OUTPUT_DIR 指定的位置。工具不会写入其他位置。

试试看

测量 ~/measure-mcp-inbox/bowl_capture.zip 中的碗,并按它的容量调整我的布朗尼食谱:1 杯黄油、2 杯糖、4 个鸡蛋、1 1/4 杯面粉。原食谱使用的是 9x13 烤盘。

这是我家客厅的扫描文件(~/Downloads/living.usdz)。一张尺寸为 84 x 37 x 34 英寸的沙发能通过门吗?能靠在有窗户的那面墙上吗?

一个尺寸为 12 x 9 x 3 英寸、重量为 1.4 磅、售价为 $24 的盒子属于哪个 FBA 尺寸等级?它离下一个等级还有多远?

我要搬出一套两居室:一张大号床、三人沙发、一张餐桌和 4 把椅子、2 个斗柜、30 个中号箱子。我需要什么卡车和储物单元?

工具(34)

分组工具
核心measure_find_files、measure_depth_info、measure_open_capture、measure_object、measure_distance_between_points、measure_list_reference_objects
厨房kitchen_measure_vessel、kitchen_vessel_from_dimensions、kitchen_scale_recipe
房间room_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
搬家moving_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

所有工具通用的约定:输入文件参数为 path,尺寸参数为 dims("12 x 9 x 3 in"、列表或字典),重量参数为 weight(1.4 或 "1.4 lb"),输出单位参数为 units(metric、imperial、both),错误以 {"error": {"code", "message", "hint"}} 的形式返回。工具不接受的参数会被拒绝,并提示最接近的有效参数名称,绝不会静默忽略。

准确度

在答案已知的合成场景和模拟 iPhone LiDAR 噪声(256 x 192 深度图,σ 5 mm)下测量。真实场景中的准确度会略差。请将这些数据视为上限,而非保证。

项目结果
碗、平底锅和锅(12 个容器、3 个相机角度、108 次渲染)容量误差中位数为 0.9%,第 90 百分位数为 2.5%;每次渲染报告的 ± 范围都包含真实值
锅沿直径最大误差为 0.35 cm
来自扫描器应用网格的碗(OBJ/PLY,cm 或 m,Y-up 或 Z-up,带孔洞和杂物)对 16 次随机扫描的容量误差中位数为 0.7%;每次报告的 ± 范围都包含真实值
箱子(单视角,任意旋转)240 个相机视角下,底面尺寸误差在 0.5 cm 以内
LiDAR 点云中的房间墙面无漂移时平均误差为 0.13 cm,最大误差为 0.38 cm;漂移为 2 cm 时,最大误差为 3.5 cm
FBA 层级风险标记100% 检出因测量噪声而导致层级错误的箱子
搬家估算(单间公寓至 3 卧室)全部处于行业公布的范围内

已知限制:

  • 陡峭的相机角度会遮挡深锅的底部。 在 30° 时,工具会报告低置信度和较大的 ± 范围。
  • 浅锅(深 1 英寸)的结果置信度较低。
  • 对相机镜头的估算会扩大误差范围。 对于缺少相机内参的深度文件,工具会提示“视野未知”,并将置信度限制为低。
  • 人像模式照片仅提供相对深度。 iPhone 人像模式的深度不代表真实距离,因此需要参考物体。
  • 房间准确度数据来自合成场景。 真实手机上的扫描漂移是最大的未知因素,真实扫描验证已列入后续计划。

数据和估算

  • FBA: 尺寸层级和费用表存放在带有生效日期和来源信息的版本化数据文件中。部分 2026 年数据来自二手来源,已标记为未经验证;fba_data_status 会列出所有缺失信息。这些都是估算值,以 Amazon 自行测量的结果和费用表为准。
  • 搬家: 立方英尺对照表、卡车容量、集装箱和仓储单元均来自已发布的来源,每一行都标注了是否已验证。数据中不含价格。

配套 iOS 应用(开发中)

ios/ 存放一个小型拍摄应用的源代码。轻点一次,即可将 iPhone Pro LiDAR 深度图、照片和相机校准信息保存为 zip 文件包,供 measure_open_capture 读取;该应用还向 Siri 和快捷指令提供 App Intents(“测量物体”)。目前尚未编译,也未在设备上运行。请参阅 ios/README.md。

HTTP 模式

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

服务器会读取其主机上的文件,因此任何非环回地址都需要 bearer 令牌。

开发

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

每项功能的设计说明位于 designs/。

许可证

MIT,Puya Ventures LLC。Depth Anything V2 Small(可选附加项)采用 Apache-2.0 许可证。

构建者

Puya Rahmanian。需要为你的产品构建 MCP 服务或 AI 集成?puyarahmanian.com

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。