OpenTakeoff Gives AI Agents 58 MCP Takeoff Tools
The AGPL engine runs entirely in the browser and hands agents 58 MCP tools, yet only a human click turns a proposal into signed ink.
In short
OpenTakeoff is an open-source, browser-only PDF takeoff tool for construction and flooring that exposes 58 MCP tools to an AI agent while reserving final approval for a human.
At a glance
- License: AGPL-3.0-only; builds up to commit 84c7f48e were Apache-2.0.
- MCP server: 58 tools, launched with npx -y opentakeoff-mcp, requires Node 20 or newer.
- Everything stays local: IndexedDB and localStorage in the browser, and the repo says nothing is uploaded.
- Agent shapes are dashed proposals; only a human click commits them as binding ink.
- Repo at time of reading: 673 stars, 152 forks, 731 commits on main.
OpenTakeoff is a browser-only PDF takeoff tool for construction and flooring work, and its pitch is narrower than the usual AI-for-construction claim: an agent drives the measuring engine over the Model Context Protocol (MCP), but it cannot sign off on the result. Kentucky AI ships it under AGPL-3.0-only, having moved off Apache-2.0 at commit 84c7f48e.
From plan set to buy list
The tool ingests PDFs, images and zipped plan sets, unpacking them client-side. Areas come from a one-click detector plus manual area, rectangle, linear, curved-line, surface, count and cut-out tools. Quantities follow: waste percentages, multipliers, buy lists, roll-goods seam layout, and a grout calculator driven by tile size and joint width. Sheets can be stitched across match lines, with up to four visible side by side.
The one-click detector is switched off for now, pending re-validation. That is a notable choice for the feature that would otherwise be the headline demo.
What the 58 MCP tools cover
Running npx -y opentakeoff-mcp on Node 20 or newer starts the server with no build step. The project counts 58 tools, grouped into opening and orienting a sheet, measuring, deriving boundaries, walking the sheet graph for tags and schedules, editing and auditing shapes, signing verdicts, and exporting. The sheet graph is what lets a tag resolve across continuation sheets instead of dead-ending. Exports cover a marked-up PDF, DXF, and re-importing an existing takeoff.
Pencil, not ink
Three guardrails sit between the agent and a committed number:
- Measuring an unscaled sheet is refused outright, because scale is a hard gate.
- Agent geometry renders dashed, as a proposal, until a person clicks to apply it.
- An agent may stamp its own work as agent-signed; the approved seal needs a human.
Refusals are documented to return an actionable reason rather than a silent zero. In quantity surveying, the confident zero is the expensive failure.
Nothing leaves the machine
The front end is React 18 on Vite 6, with pdf.js for rendering and whisper-tiny.en compiled to WASM for on-device dictation. State lives in IndexedDB and localStorage, and the repository states that no drawing is uploaded. Agent features talk to OpenAI-style or Anthropic-style endpoints you supply yourself; configure none and the app makes no network calls at all.
The optional contribution flow sends derived data only — geometry, labels, quantities, provenance — and explicitly withholds PDFs, file and client names, markup text, absolute coordinates and scale values. A stdlib-only Python 3 capture server receives it locally.
What is not verified here
The repository publishes its own accuracy figures for the estimating model: 12.3% median absolute percentage error on a temporal holdout against 62.8% for the untuned base model, with the geometry scorer's error floor at 0.4%. Those numbers come from the project's model card, which this article did not open, and no independent evaluation is available. The project also flags its own rough edges: the snap tool is beta, revision compare works on quantities rather than geometry, and RFC 60 and RFC 87 remain open on detection accuracy and citation chains.
At the time of reading, the project page showed 673 stars, 152 forks and 731 commits on main. Only one source was available for this piece — the project's own repository — so the capability claims rest on self-description rather than third-party testing.
FAQ
What does OpenTakeoff do?
It is an open-source takeoff tool that reads construction and flooring drawings as PDFs, images or zipped plan sets in the browser and turns them into areas, quantities and buy lists. Nothing is uploaded; state is kept in IndexedDB and localStorage.
How does an AI agent connect to OpenTakeoff?
Through an MCP server started with npx -y opentakeoff-mcp on Node 20 or newer, which exposes 58 tools for opening sheets, measuring, deriving, auditing, signing and exporting. No build step is required.
Can an AI agent approve a takeoff on its own?
No. Agent geometry stays dashed as a proposal until a person clicks to apply it, the approved seal is human-only, and measuring a sheet with no scale set is refused rather than estimated.