TakeoffMetric Construction Calculators について
TakeoffMetric Construction Calculators は、TakeoffMetric の建設見積もり計算ツールを実行する stdio 対応 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³(メートル法)。1台あたりの立方ヤード数の想定値です。生産業者に確認してください。 |
| 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
MCP クライアントから TakeoffMetric(https://takeoffmetric.com/)の建設計算ツールを実行する、Model Context Protocol サーバー(stdio)です。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 | 舗装用パティオ、車道、または道路の下に敷く砕石路盤、敷き砂、掘削深さを返します。 |
さらに 2 つのツールがサーバーを構成します。
list_calculators:各計算ツールのツール名、タイトル、ページ URL、1 行の説明、入力キーを返します。search_constants:部分文字列(query)および/またはcategoryに一致する定数テーブルの行を返します。1 回の呼び出しで最大 50 行です。
入力
各計算ツールの入力スキーマは、起動時にエンジン独自の入力リストから生成されます。そのため、キー、範囲、選択肢、デフォルト値は、サイトの対応するフォームと同じです。
- すべての入力は任意です。省略したキーには、入力欄をそのままにした場合と同様に、エンジンのデフォルト値が適用されます。ただし、掲載元が再掲載を許可していない値はデフォルト値になりません(下記参照)。
systemは"imperial"(デフォルト)または"metric"です。入力する数値の単位とデフォルト値を設定します。- 長さには、説明に記載された単位の数値を指定するか、単位を含む文字列(
"20 ft 6 in"など)を指定します。 - 不明なキーまたは範囲外の値がある場合は、フィールドごとに 1 つのメッセージを添えて
isError: trueを返します。範囲内に丸めた値を使って計算することはありません。
入力する値(0.2.0)
サイトの既定値の一部は、パッケージでは再公開していない発行元の数値です(values_withheld が設定されたデータセット行)。
これらは既定値のない入力項目で、ご自身の製品、プラン、またはサプライヤーから確認してください。これらがなくても、ツールは計算可能な値(形状、体積)を返し、不足している入力項目を needed リストに示します。
| ツール | 既定値のない入力項目 |
|---|---|
calc_concrete_slab、calc_concrete_cost、calc_fence | bagYield(1袋あたりの収量。立方フィートまたはL。袋の重量を選択する項目は削除されています) |
calc_paver_base | baseDensity、beddingDensity |
calc_gravel、calc_sand | density |
calc_asphalt | plantWeight(公開されていた2つのプリセットは削除されています) |
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立方フィートという架空の数値を使用)。この値がない場合、袋数は回答に含まれず、bagYield が needed に記載されます。
{"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 サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。