OpenTakeoff: measuring construction plans in the browser and over MCP
I'm developing OpenTakeoff. My background is commercial flooring estimating, so the part I focus on is evaluating on held out completed takeoffs. A takeoff is the measurement step of an estimate: floor area, wall length, wall surface area or counts of items shown on a plan. OpenTakeoff has a browser canvas for doing that manually and an MCP server that lets an agent work with the same measurement…
I am developing OpenTakeoff, a tool aimed at evaluating construction takeoffs. A takeoff involves measuring floor area, wall lengths, wall surface areas, and counts of items listed on a plan. OpenTakeoff offers a browser canvas for manual measurements and an MCP server to enable agent-assisted measurements. The project is released under the Apache-2.0 license.
To perform a takeoff in the browser, open the app, load a PDF plan, and set the scale for the sheet you are measuring. Verify the dimensions against a printed version before tracing. Use Area to trace a room, Linear for a run, or Count for individual items. Label the measurements clearly to ensure easy verification of the report later. Export both the marked PDF and the quantity report, as the drawing's outline is as important as the numbers in the table.
The manual workflow operates straight from the browser without the need for an account or plan uploading. Save project backups if you need to transfer work between machines. To connect an agent, configure the stdio MCP client using Node 20 or newer with the following server configuration: { mcpServers : { opentakeoff : { command : npx , args : [ -y , opentakeoff-mcp ] } } } The basic steps for agent-assisted measurements include loading the plan, setting the scale, measuring the polygon, viewing the sheet, exporting the takeoff, and exporting the marked PDF.
The agent must verify the overlay's boundary matches the drawing, and an agent's verdict is distinct from human approval.
Once the measurements are imported into the browser, they serve as proposals that can be reviewed, corrected, and accepted. A current feature allows agent verdicts to be separate from human approval. However, this feature is disabled by default while the room boundaries are further tested. When an agent is involved, the privacy boundary changes, and a cloud model might receive the plan images or measurement data requested by the client.
Using the browser app locally doesn't make an external model local. To self-host OpenTakeoff, clone the repository with Git and Node/npm installed, navigate to the web folder, install dependencies, build the project, and serve the web/dist/ directory from a static web server. Ensure to set the .mjs files' MIME type as JavaScript, and follow the self-hosting notes.
The area, length, surface, and count tools are versatile and can support takeoffs across various construction trades, although they do not substitute reading specifications, determining scope, or checking work quality.
Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.