关于 TakeoffMetric Construction Calculators
TakeoffMetric Construction Calculators 是通过 stdio 运行 TakeoffMetric 施工估算计算器的 MCP 服务,面向施工估算人员和项目团队;它提供有来源的常数,结果由网站的计算引擎生成。
主要功能
- 0115 种施工计算器
- 02混凝土、土方、屋顶和风管计算
- 03英制和公制输入
- 04计算器目录工具
- 05可搜索并标注来源的常数
- 06警告和缺失输入提示
适用场景
- 01估算混凝土用量和交付需求
- 02计算碎石、填土、沙或沥青用量
- 03规划屋顶、围栏或铺路基层材料
- 04查询估算常数及其来源
MCP 相关
该服务向 MCP 客户端提供 15 种计算器、计算器列表工具和有来源常数的搜索工具。它使用 stdio 传输并运行网站打包的计算引擎。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
17收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| edge | boolean | 否 | 加厚边缘(下翻边)。与板体整体浇筑的加深周边带。 |
| price | number | 否 | 预拌混凝土价格。单位:$/cu yd(英制)或 $/m³(公制)。可选。按字段所示单位填写到场价格。留空则跳过成本计算。 |
| waste | number | 否 | 损耗预留。单位:%。用于涵盖基层凹陷、洒漏和最后一车手推车混凝土的余量。 |
| width | number|string | 否 | 宽度。单位:ft(英制)或 m(公制)。输入该单位的数值,或包含单位的字符串,例如 "20 ft 6 in"。公制默认值:3.6。 |
| gravel | number|string | 否 | 碎石基层深度。单位:in(英制)或 cm(公制)。输入该单位的数值,或包含单位的字符串,例如 "20 ft 6 in"。公制默认值:10cm。设为 0 可在工程量计算中排除基层。 |
| length | number|string | 否 | 长度。单位:ft(英制)或 m(公制)。输入该单位的数值,或包含单位的字符串,例如 "20 ft 6 in"。公制默认值:6。可输入 20、20 ft 6 in 或 20' 6″。 |
| system | enum | 否 | 输入值和默认值所采用的单位制。imperial | metric |
| width2 | number|string | 否 | 分区 2 的宽度。单位:ft(英制)或 m(公制)。输入该单位的数值,或包含单位的字符串,例如 "20 ft 6 in"。 |
| width3 | number|string | 否 | 分区 3 的宽度。单位:ft(英制)或 m(公制)。输入该单位的数值,或包含单位的字符串,例如 "20 ft 6 in"。 |
| bagSize | enum | 否 | 袋装规格。选项:90 = 90 lb 袋(因地区而异);80 = 80 lb 袋;60 = 60 lb 袋;50 = 50 lb 袋;40 = 40 lb 袋。90 | 80 | 60 | 50 | 40 |
| length2 | number|string | 否 | 分区 2 的长度。单位:ft(英制)或 m(公制)。输入该单位的数值,或包含单位的字符串,例如 "20 ft 6 in"。 |
| length3 | number|string | 否 | 分区 3 的长度。单位:ft(英制)或 m(公制)。输入该单位的数值,或包含单位的字符串,例如 "20 ft 6 in"。 |
| minLoad | number | 否 | 生产商的最低起订量。单位:cu yd(英制)或 m³(公制)。可选。立方码。除非生产商报价中注明,否则留空。 |
| shortFee | number | 否 | 小批量附加费。单位:固定金额 $。可选。低于最低起订量时生产商收取的固定费用。 |
| truckCap | number | 否 | 卡车容量。单位:cu yd(英制)或 m³(公制)。估算值,每车立方码数。请咨询生产商。 |
| edgeDepth | number|string | 否 | 边缘深度。单位:in(英制)或 cm(公制)。可填写该单位的数值,也可填写带单位的字符串,例如 "20 ft 6 in"。公制默认值:30cm。仅当设置了 "edge" 时才会在网站上显示。 |
| edgeWidth | number|string | 否 | 边缘宽度。单位:in(英制)或 cm(公制)。可填写该单位的数值,也可填写带单位的字符串,例如 "20 ft 6 in"。公制默认值:30cm。仅当设置了 "edge" 时才会在网站上显示。 |
| thickness | number|string | 否 | 厚度。单位:in(英制)或 cm(公制)。可填写该单位的数值,也可填写带单位的字符串,例如 "20 ft 6 in"。公制默认值:10cm。常见做法:露台和步道采用 4″,车辆通行区域采用 5″–6″。请根据设计图纸和当地规范确认。 |
| unitWeight | number | 否 | 单位重量。单位:lb / cu ft。估算值,单位为 lb/cu ft。普通重量混凝土约为 140–155。 |
详细介绍
takeoffmetric-mcp
一个模型上下文协议(Model Context Protocol)服务(stdio),可通过 MCP 客户端运行 TakeoffMetric 的建筑计算器 (https://takeoffmetric.com/)。它提供 15 个计算器、一个用于列出这些计算器的工具,以及一个用于搜索估算常量表的工具;表中的每一行都注明了已发布来源。
此处并未重新实现这些计算器。网站的 TypeScript 引擎原样打包在
vendor/engine.mjs 中,测试套件会检查每个工具返回的结果是否与引擎源代码的计算结果一致。
安装
需要 Node.js 20 或更高版本。
npx -y takeoffmetric-mcp
Claude Desktop(claude_desktop_config.json):
{
"mcpServers": {
"takeoffmetric": {
"command": "npx",
"args": ["-y", "takeoffmetric-mcp"]
}
}
}
Claude Code:
claude mcp add takeoffmetric -- npx -y takeoffmetric-mcp
工具
| 工具 | 返回内容 |
|---|---|
calc_concrete_slab | 板的混凝土体积、订购量、袋数、卡车载量和重量,并支持添加额外区域和可选的加厚边缘。 |
calc_concrete_cost | 根据你提供的送货价格计算混凝土成本,包括小批量附加费、配送费,并将袋装混凝土与预拌混凝土进行比较。 |
calc_rebar | 板网格或连续基础的各方向钢筋根数、搭接接头、标准长度钢筋、重量、交叉点和支撑件。 |
calc_gravel | 砾石、碎石或石料的立方码、短吨和公吨,并提供压实换算和卡车数量。 |
calc_fill_dirt | 松散或就位回填土的立方码、吨数和卡车载量。 |
calc_sand | 根据含水状态计算砂的立方码、短吨和袋数。 |
calc_topsoil | 草坪、表层铺土、花圃或高架种植箱所需表土的立方码、袋数、重量和覆盖面积。 |
calc_cubic_yard | 多个区域的立方码、立方英尺和立方米、体积可覆盖的面积、膨胀量、袋数和卡车趟数。 |
calc_asphalt | 按铺层和面积计算热拌沥青的短吨和公吨,并提供摊铺速率。 |
calc_board_foot | 多种规格木材订单的板英尺、线性英尺、件数和成本。 |
calc_roofing | 根据平面占地面积和坡度计算屋面平方数、瓦片包数、防水垫层卷数、屋脊瓦和起始瓦。 |
calc_roof_pitch | 根据任一输入计算每 12 英寸升高量、角度、坡度百分比和坡度系数;还可根据跨度计算屋脊高度和普通椽子长度。 |
calc_fence | 栅栏线所需的立柱、横梁、栅板、门和立柱孔混凝土。 |
calc_duct | 根据气流量和摩擦率或风速上限计算圆形和矩形风管尺寸、风管输送能力以及变径主风管。 |
calc_paver_base | 铺砖露台、车道或街道下方的碎石基层、垫层砂和开挖深度。 |
另外两个工具构成了服务的其余部分:
list_calculators:每个计算器的工具名称、标题、页面 URL、单行描述和输入键。search_constants:按子字符串(query)和/或category匹配常量表中的行;每次调用最多返回 50 行。
输入
每个计算器的输入架构都在启动时根据引擎自身的输入列表生成,因此键、范围、选项和默认值均与网站对应表单一致。
- 所有输入均为可选项。未提供的键将采用引擎默认值,就像未修改表单字段时一样;但有一个例外:发布方不允许再发布的值绝不会设为默认值(见下文)。
system可以是"imperial"(默认值)或"metric"。它决定数字的输入单位和默认值。- 长度可以是按描述所示单位输入的数字,也可以是带单位的字符串,例如
"20 ft 6 in"。 - 未知键或超出范围的值会返回
isError: true,并为每个字段提供一条消息。不会使用经过截断的值进行计算。
需要输入的值(0.2.0)
部分网站默认值是发布方数据,本软件包不会重新发布这些数据(数据集行带有 values_withheld)。
这些值需要根据你自己的产品、计划或供应商信息输入,且没有默认值。缺少这些值时,工具会返回能够计算的结果(几何数据、体积),并在 needed 列表中列出缺失的输入。
| 工具 | 没有默认值的输入 |
|---|---|
calc_concrete_slab、calc_concrete_cost、calc_fence | bagYield(每袋产量,单位为 cu ft 或 L;已移除袋重选项) |
calc_paver_base | baseDensity、beddingDensity |
calc_gravel、calc_sand | density |
calc_asphalt | plantWeight(已移除两个已发布的预设值) |
calc_rebar | stockLength(已移除库存长度选项) |
calc_roofing | bundlesPerSquare、rollSquares、ridgeLfPerBundle、starterLfPerBundle |
calc_duct | eps(粗糙度;没有该值就无法确定尺寸) |
输出
一个 JSON 文本块,包含:calculator、url、system、engine_version、revised、inputs_used、primary、secondary、
takeoff、warnings、assumptions,以及缺少上述输入时的 needed。inputs_used 是引擎规范化后的输入(长度单位为米)。assumptions
列出结果所依据的假设,warnings 则包含页面会显示的注意事项。
示例
请求(tools/call,工具 calc_concrete_slab)。bagYield 是你购买的袋子上标注的产量(此处为 0.5 cu ft,
为合成数值):缺少该值时,结果不会包含袋数,并会在 needed 中列出 bagYield。
{"length":24,"width":16,"thickness":"5 in","price":165,"bagYield":0.5}
响应,复制自此服务(0.2.0)的一次运行:
{
"calculator": "calc_concrete_slab",
"url": "https://takeoffmetric.com/concrete/concrete-calculator/",
"system": "imperial",
"engine_version": "1.3.0",
"revised": "2026-10-01",
"inputs_used": {"system":"imperial","sections":[{"length":7.315200000000001,"width":4.8768},{"length":0,"width":0},{"length":0,"width":0}],"thickness":0.127,"wastePct":10,"pricePerCuYd":165,"thickenedEdge":false,"edgeDepth":0.30479999999999996,"edgeWidth":0.30479999999999996,"gravelDepth":0.1016,"unitWeight":150,"truckCuYd":10,"minLoadCuYd":null,"shortLoadFee":null},
"primary": {"value":5.93,"unit":"cuyd","label":"Concrete volume","precision":2},
"secondary": [
{"value":6.75,"unit":"cuyd","label":"Order quantity","precision":2},
{"value":160,"unit":"cuft","label":"Concrete volume","precision":1},
{"value":384,"unit":"sqft","label":"Slab area","precision":0},
{"value":26400,"unit":"lb","label":"Concrete weight","precision":0},
{"value":1,"unit":"load","label":"Truck loads","precision":0},
{"value":10,"unit":"ft","label":"Control-joint spacing","display":"10'-0″ to 15'-0″"},
{"value":1113.75,"unit":"usd","label":"Estimated concrete cost","precision":2},
{"value":352,"unit":"bag","label":"Bags","precision":0}
],
"takeoff": [
{"key":"readymix","item":"Ready-mix concrete","qty":5.93,"unit":"cuyd","waste":10,"order":6.75,"orderUnit":"cuyd","note":"Rounded up to the nearest 0.25 cu yd."},
{"key":"trucks","item":"Ready-mix truck loads","qty":6.52,"unit":"cuyd","order":1,"orderUnit":"load","note":"10 cu yd per load (your assumption)."},
{"key":"gravel","item":"Compacted base, 4″","qty":4.74,"unit":"cuyd","order":6.5,"orderUnit":"cuyd","note":"Loose volume ordered = compacted volume x 1.31 (3,570 / 2,730 lb/cu yd, FHWA Exhibit 5.1 A, gravel dry, average gradation; 1.17 uniformly graded, 1.49 well graded). For estimating purposes, ±33%: a highway embankment, not a plate-compacted base."},
{"key":"cost","item":"Concrete cost at your price","qty":6.75,"unit":"cuyd","order":1113.75,"orderUnit":"usd","note":"6.75 cu yd x $165.00 / cu yd."}
],
"warnings": [],
"assumptions": [
"Volume = length x width x thickness; 1 cubic yard = 27 cubic feet.",
"Waste allowance 10% applied to the net volume.",
"Ready-mix rounded up to 0.25 cu yd; truck capacity 10 cu yd (editable).",
"Unit weight 150 lb/cu ft (editable; normal-weight concrete runs about 140-155).",
"Contraction joints at 24-36 times the slab thickness, capped at 15 ft (NRMCA CIP 6).",
"Thickness, reinforcement and base depth come from your drawings or local code.",
"Bags = volume / the bag yield you entered (0.5 cu ft a bag), rounded up."
]
}
数值来源
- 公式、常数和舍入规则来自引擎包。
vendor/ENGINE_COMMIT.txt记录其构建所依据的提交,每个响应都包含计算器的engine_version和revised日期。 - 每个工具都使用与网站对应页面相同的引擎进行计算。例如,
calc_gravel使用 https://takeoffmetric.com/earthwork/gravel-calculator/ 背后的引擎。 search_constants读取vendor/constants.csv(数据集 1.2.0,共 148 行)。每行提供数值、单位、SI 值、适用条件,以及所读取文档的发布方、标题和 URL。55 行没有数值,因为其发布方不允许重新发布:这些行会返回value: null、values_withheld: true、withheld_hosts中的发布方域名,以及可查阅该数值的 URL。- 网站的方法论(经过测试的公式、页面上显示的假设、作为文档列出的来源、带版本号的表格)见 https://takeoffmetric.com/methodology/。
限制
- 结果仅供估算。订购或施工前,请根据你的计划、供应商信息和当地规范确认数量。
- 此版本涵盖 15 个计算器。涉及建筑规范条款,或依赖网站链接但未复现的第三方表格的计算器不在其中。
- 响应仅包含数值和说明:不提供图纸或 CSV 导出。
unit字段使用引擎的单位代码。某些并非简单计数的结果会标记为ea;请根据label和display了解其含义。- 价格由你自行输入。此服务不保存价格数据,也不会发起网络请求。
- 仅支持 stdio 传输。
开发
npm install
npm test
测试仅需此仓库即可运行。npm run sync-engine 和 npm run make-fixtures 是维护者脚本:
它们会从网站的源代码仓库重新生成 vendor/ 和 test/fixtures.json,软件包的使用者无需运行这些脚本。
许可证
服务代码:MIT。计算引擎(vendor/engine.mjs):版权归 TakeoffMetric 所有,随本软件包分发,仅用于作为本软件包一部分运行,不允许修改或单独再分发。两者的条款均列于 LICENSE。
常数表:汇编内容采用 CC BY 4.0;联邦数据属于公有领域;其他所有数值均遵循其发布方的条款。详见 DATA_LICENSE.md。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。