Calculiva Cut Planner
Server Details
Plans flooring, trim and wallpaper orders from computed cut layouts. Free, read-only, no account.
- Status
- Healthy
- Uptime
- 100.0% over 24 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 4 tools
Each of the three plan tools targets a distinct material (flooring, trim, wallpaper), and build_order_sheet is clearly the aggregate that consumes their outputs. The description even specifies it takes the same arguments as the three plan tools, leaving no overlap in purpose.
All four names follow a uniform snake_case verb_noun pattern (plan_*_order, build_order_sheet). The verb choice is predictable and readable across the set.
Four tools is tightly scoped: three material planners plus one consolidation tool, each with a clear reason to exist. Nothing feels redundant or missing for the stated purpose.
The surface covers all three advertised material domains plus a combined order sheet, forming a full plan-to-order workflow. As stateless calculation tools, no update/delete lifecycle is needed, so there are no obvious dead ends.
Available Tools
4 toolsbuild_order_sheetBuild one order sheetARead-onlyIdempotentInspect
Builds one consolidated order sheet from the flooring, trim and wallpaper plans of the same project (pass the same arguments as plan_flooring_order, plan_trim_order and plan_wallpaper_order): cartons, boards per stock length, rolls, total offcuts, the cut list by material and a CSV. Trim pieces of all walls and all types (battens, rails, chair rail, frames) are packed together on the stock boards, and the sheet compares that with one order per wall, each wall on its own best stock length (total length bought, then offcut, then boards).
| Name | Required | Description | Default |
|---|---|---|---|
| kerf | No | Saw kerf, charged between two cuts on the same board. Default 1/8 in. Length with its unit, e.g. "12 ft 6 in", "12'6\"", "150 in", "3m80"; a bare number is read as inches. | |
| trim | No | Trim walls, one per wall, with the plan_trim_order arguments (stock, kerf and extra are set once below). | |
| flooring | No | Flooring orders, one per plank product, with the plan_flooring_order arguments. | |
| wallpaper | No | Wallpaper orders, one per paper, with the plan_wallpaper_order arguments. | |
| extraPercent | No | Extra boards to buy, % of the boards in the cut plan. Default 10. | |
| stockLengthsFt | No | Board lengths you can buy, in feet (1 to 8 values, each up to 24). Default: 8, 10, 12 and 16 ft are compared and any of them can be recommended; pass the lengths your store sells to plan on those. |
Output Schema
| Name | Required | Description |
|---|---|---|
| csv | Yes | |
| trim | Yes | |
| links | Yes | |
| order | Yes | |
| method | Yes | |
| cutList | Yes | |
| offcuts | Yes | |
| optimal | Yes | |
| flooring | Yes | |
| warnings | Yes | |
| wallpaper | Yes | |
| comparisonRule | Yes | The ranking used for every "better" statement in this result; a tie recommends nothing. |
| stockLengthsFt | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the bar is low, and the description adds real behavioral context: how trim pieces are packed (all walls and types on shared stock) and that it compares this against one order per wall, ranked by total length bought, then offcut, then boards. It does not cover failure modes or size limits, but the added planning logic is substantive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose and composition are front-loaded in the first clause, with the packing/comparison detail following. The second sentence is dense and slightly long-winded, but every clause carries information about outputs or optimization behavior.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A rich output schema exists, so return values need no narration, and annotations carry the safety profile. The description covers composition, argument inheritance and the key packing/comparison rule; only explicit routing-away-from-siblings and any input limits are absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the schema itself already explains every argument, including that stock, kerf and extra are shared. The description only restates that the same arguments apply and hints at the stock-length comparison; it adds little syntactic meaning beyond the schema, so baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Builds one consolidated order sheet') plus exactly what the sheet contains (cartons, boards per stock length, rolls, offcuts, cut list, CSV). It is clearly the consolidating tool among the plan_* siblings, and it names those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes the agent by saying to 'pass the same arguments as plan_flooring_order, plan_trim_order and plan_wallpaper_order', which tells the caller this is the one-shot combined alternative. It stops short of an explicit when-not (e.g. use plan_* individually if you only need one material), so it is clear context rather than a full decision rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
plan_flooring_orderPlan a plank flooring orderARead-onlyIdempotentInspect
Plans laminate, vinyl plank (LVP) or engineered plank flooring for 1 to 12 rooms, rectangles or L shapes, with the plank size and planks per carton from the carton: cartons to buy, every cut piece traced to its source plank, offcuts carried from one room to the next, the 8 scenarios (direction x offset 1/3 or 1/2 x reuse, plus aligned joints in the chosen direction when offset 0 is chosen) and the best one when no other ties it (fewest cartons, then least offcut, then fewest planks), and how many planks a flat waste allowance would miss. Up to 3,000 planks per call. Lengths accept feet and inches. Returns a link per room to the full plan on calculiva.com.
| Name | Required | Description | Default |
|---|---|---|---|
| kerf | No | Saw kerf, charged on each cut. Default 1/8 in. Length with its unit, e.g. "12 ft 6 in", "12'6\"", "150 in", "3m80"; a bare number is read as inches. | |
| order | No | Laying order by room name; offcuts only flow forward. Default: the order of rooms. | |
| reuse | No | Cut a row end from the offcut of a row start in the same room (default true). | |
| rooms | Yes | Rooms to floor with the same plank, 1 to 12, in laying order unless order is given. | |
| offset | No | End-joint stagger between rows, as a fraction of the plank: 1/3 (default), 1/2 or 0 (aligned). | |
| minReuse | No | Shortest offcut worth carrying to another room. Default 0 (any offcut long enough). Length with its unit, e.g. "12 ft 6 in", "12'6\"", "150 in", "3m80"; a bare number is read as inches. | |
| clearance | No | Expansion gap on every wall, from the product instructions. Default 0. Length with its unit, e.g. "12 ft 6 in", "12'6\"", "150 in", "3m80"; a bare number is read as inches. | |
| direction | No | horizontal = planks run along the room width (default); vertical = along the room length. | |
| minStarter | No | Minimum row starter length; 0 disables the check. Default 0. Length with its unit, e.g. "12 ft 6 in", "12'6\"", "150 in", "3m80"; a bare number is read as inches. | |
| plankWidth | Yes | Installed plank width (face), from the carton. Length with its unit, e.g. "12 ft 6 in", "12'6\"", "150 in", "3m80"; a bare number is read as inches. | |
| minRowWidth | No | Minimum edge-row width; 0 disables the check. Default 0. Length with its unit, e.g. "12 ft 6 in", "12'6\"", "150 in", "3m80"; a bare number is read as inches. | |
| plankLength | Yes | Installed plank length (face), from the carton. Length with its unit, e.g. "12 ft 6 in", "12'6\"", "150 in", "3m80"; a bare number is read as inches. | |
| balancedRows | No | Split the partial row width between the first and last rows (default true). | |
| firstStarter | No | Length of the first row starter; 0 = full plank. Default 0. Length with its unit, e.g. "12 ft 6 in", "12'6\"", "150 in", "3m80"; a bare number is read as inches. | |
| planksPerBox | Yes | Planks per carton, from the carton label. | |
| minJointSpacing | No | Minimum distance between end joints of adjacent rows; 0 disables the check. Default 0. Length with its unit, e.g. "12 ft 6 in", "12'6\"", "150 in", "3m80"; a bare number is read as inches. | |
| allowancePercent | No | Flat waste allowance you would otherwise buy (e.g. 10): the answer says how many planks it misses. | |
| carryBetweenRooms | No | Offcuts of a room feed the next rooms (default true). |
Output Schema
| Name | Required | Description |
|---|---|---|
| rooms | Yes | |
| method | Yes | |
| scenario | Yes | |
| shareUrl | Yes | |
| warnings | Yes | |
| allowance | Yes | |
| scenarios | Yes | |
| transfers | Yes | |
| boxesToBuy | Yes | |
| offcutsLeft | Yes | |
| planksToBuy | Yes | |
| sparePlanks | Yes | |
| bestScenario | Yes | The single best of the scenarios (8, or 10 when offset 0 is chosen) by comparisonRule; null when several tie. |
| planksPerBox | Yes | |
| sourcePlanks | Yes | |
| wastePercent | Yes | |
| bestDecidedBy | Yes | The first criterion of comparisonRule on which the two options differ. |
| floorAreaSqFt | Yes | |
| comparisonRule | Yes | The ranking used for every "better" statement in this result; a tie recommends nothing. |
| roomsAlonePlanks | Yes | |
| shareUrlComplete | Yes | |
| scenariosTiedAtBest | Yes | |
| planksSavedBetweenRooms | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, and the description adds real behavioral context: offcuts flow forward room to room, 8 scenarios are evaluated, the tie-break chain (fewest cartons → least offcut → fewest planks), and the 3,000-plank call limit. This is meaningful disclosure of computation and limits beyond the safety profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded, but the body is a single sprawling run-on sentence with a long clause chain (scenarios, tie-breaks, waste allowance) that is hard to parse. Every clause is informative, yet the structure sacrifices readability for density.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the description needn't explain return values, yet it still notes a per-room link, which is helpful. Combined with the constraint disclosures and computation logic, it is largely complete for an 18-parameter planner, though it could say more about prerequisites or failure modes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds unit-handling ('lengths accept feet and inches') and explains the offset x reuse scenario space, but does not clarify individual parameters like minStarter, minJointSpacing, or clearance beyond what the schema already documents.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Plans') and resource (laminate, LVP, engineered plank flooring) with scope (1-12 rooms, rectangles or L shapes) and outputs (cartons to buy, per-cut tracing, best scenario). An agent can distinguish this from plan_trim_order or plan_wallpaper_order purely by the flooring/plank framing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the scope details (needs plank size and planks per carton, up to 3,000 planks per call), but the description never states when to choose this over the sibling planners or states exclusions. The only hard boundary given is the 3,000-plank cap, which is more of a constraint than guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
plan_trim_orderPlan a trim board orderARead-onlyIdempotentInspect
Plans board and batten, wainscoting or picture frame molding on one wall: spacing, the cut list (miter long and short points for frames) and how many boards of each retail length to buy, with the total length bought and offcut percentage for each stock length; the length to buy is the one that buys the least total length, then the least offcut, then the fewest boards. The cut plan is first-fit decreasing: feasible, not proven optimal. Lengths accept feet and inches. Returns a link to the full plan on calculiva.com.
| Name | Required | Description | Default |
|---|---|---|---|
| edge | No | board-and-batten: start and end the wall with a space (default) or with a batten. | |
| gapX | No | picture-frame-molding: gap between boxes. Default 4 in. Length with its unit, e.g. "12 ft 6 in", "12'6\"", "150 in", "3m80"; a bare number is read as inches. | |
| gapY | No | picture-frame-molding: gap between rows. Default 4 in. Length with its unit, e.g. "12 ft 6 in", "12'6\"", "150 in", "3m80"; a bare number is read as inches. | |
| kerf | No | Saw kerf, charged between two cuts on the same board. Default 1/8 in. Length with its unit, e.g. "12 ft 6 in", "12'6\"", "150 in", "3m80"; a bare number is read as inches. | |
| rows | No | picture-frame-molding: rows of boxes. Default 1. | |
| edgeX | No | picture-frame-molding: side margin. Default 4 in. Length with its unit, e.g. "12 ft 6 in", "12'6\"", "150 in", "3m80"; a bare number is read as inches. | |
| style | No | wainscoting: applied molding frames (default) or stiles and rails. | |
| hasCap | No | picture-frame-molding: a chair rail caps the boxes (default true); false = boxes run to the ceiling. | |
| layout | No | board-and-batten: vertical battens (default) or a grid with horizontal rails. | |
| columns | No | picture-frame-molding: boxes across. Default 4. | |
| edgeTop | No | picture-frame-molding: top margin. Default 4 in. Length with its unit, e.g. "12 ft 6 in", "12'6\"", "150 in", "3m80"; a bare number is read as inches. | |
| project | Yes | board-and-batten, wainscoting (applied frames or stile and rail) or picture-frame-molding (boxes of 45° mitered molding). | |
| openings | No | Up to 4 openings or obstacles on the wall; pieces that land on them are flagged and left out of the cut list. | |
| capHeight | No | picture-frame-molding: height of the underside of the chair rail. Default 36 in. Length with its unit, e.g. "12 ft 6 in", "12'6\"", "150 in", "3m80"; a bare number is read as inches. | |
| railCount | No | board-and-batten grid: horizontal rails per bay. Default 2. | |
| wallWidth | Yes | Wall width. Length with its unit, e.g. "12 ft 6 in", "12'6\"", "150 in", "3m80"; a bare number is read as inches. | |
| edgeBottom | No | picture-frame-molding: bottom margin. Default 4 in. Length with its unit, e.g. "12 ft 6 in", "12'6\"", "150 in", "3m80"; a bare number is read as inches. | |
| fullHeight | No | board-and-batten: battens run to the ceiling. Default false. | |
| panelCount | No | wainscoting: number of panels or frames. Omit to use panelWidth. | |
| panelWidth | No | wainscoting: target panel width, used when panelCount is omitted. Default 30 in. Length with its unit, e.g. "12 ft 6 in", "12'6\"", "150 in", "3m80"; a bare number is read as inches. | |
| wallHeight | Yes | Wall height, floor to ceiling. Length with its unit, e.g. "12 ft 6 in", "12'6\"", "150 in", "3m80"; a bare number is read as inches. | |
| battenCount | No | board-and-batten: number of battens. Omit to use battenSpacing. | |
| battenWidth | No | board-and-batten: actual batten width (a 1x3 is 2 1/2 in). Default 2 1/2 in. Length with its unit, e.g. "12 ft 6 in", "12'6\"", "150 in", "3m80"; a bare number is read as inches. | |
| memberWidth | No | wainscoting: stile width, or side reveal between frames. Default 3 1/2 in. Length with its unit, e.g. "12 ft 6 in", "12'6\"", "150 in", "3m80"; a bare number is read as inches. | |
| extraPercent | No | Extra boards to buy, % of the boards in the cut plan. Default 10. | |
| moldingWidth | No | wainscoting applied-frames (default 1 1/4 in) or picture-frame-molding (default 1 in): molding face width. Length with its unit, e.g. "12 ft 6 in", "12'6\"", "150 in", "3m80"; a bare number is read as inches. | |
| topRailWidth | No | board-and-batten top rail, or wainscoting stile-and-rail top rail width. Default 3 1/2 in. Length with its unit, e.g. "12 ft 6 in", "12'6\"", "150 in", "3m80"; a bare number is read as inches. | |
| battenSpacing | No | board-and-batten: target gap between battens, used when battenCount is omitted. Default 12 in. Length with its unit, e.g. "12 ft 6 in", "12'6\"", "150 in", "3m80"; a bare number is read as inches. | |
| topRailHeight | No | board-and-batten: height of the top of the top rail from the floor. Default 32 in. Length with its unit, e.g. "12 ft 6 in", "12'6\"", "150 in", "3m80"; a bare number is read as inches. | |
| chairRailWidth | No | wainscoting: chair rail height (board width). Default 2 1/2 in. Length with its unit, e.g. "12 ft 6 in", "12'6\"", "150 in", "3m80"; a bare number is read as inches. | |
| revealVertical | No | wainscoting applied-frames: reveal above and below each frame. Default 3 1/2 in. Length with its unit, e.g. "12 ft 6 in", "12'6\"", "150 in", "3m80"; a bare number is read as inches. | |
| stockLengthsFt | No | Board lengths you can buy, in feet (1 to 8 values, each up to 24). Default: 8, 10, 12 and 16 ft are compared and any of them can be recommended; pass the lengths your store sells to plan on those. | |
| wainscotHeight | No | wainscoting: overall height from the floor, chair rail included. Default 32 in. Length with its unit, e.g. "12 ft 6 in", "12'6\"", "150 in", "3m80"; a bare number is read as inches. | |
| baseboardHeight | No | Existing baseboard height; "0" if none. Default 5 1/4 in. Length with its unit, e.g. "12 ft 6 in", "12'6\"", "150 in", "3m80"; a bare number is read as inches. | |
| bottomRailWidth | No | wainscoting stile-and-rail: bottom rail width. Default 5 1/2 in. Length with its unit, e.g. "12 ft 6 in", "12'6\"", "150 in", "3m80"; a bare number is read as inches. |
Output Schema
| Name | Required | Description |
|---|---|---|
| buy | Yes | Boards to buy: the best stock length by comparisonRule; null when no length holds the longest piece. |
| kerf | Yes | |
| miter | Yes | |
| layout | Yes | |
| method | Yes | |
| cutList | Yes | |
| optimal | Yes | |
| project | Yes | |
| shareUrl | Yes | |
| warnings | Yes | |
| linearFeet | Yes | |
| noStockFits | Yes | |
| extraPercent | Yes | |
| wallAreaSqFt | Yes | |
| comparisonRule | Yes | The ranking used for every "better" statement in this result; a tie recommends nothing. |
| stockComparison | Yes | |
| shareUrlComplete | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), and the description adds genuinely non-obvious behavior: the stock-length selection rule (least total length, then least offcut, then fewest boards), the first-fit-decreasing algorithm with the honest 'feasible, not proven optimal' caveat, and unit-parsing tolerance. These are traits an agent could not recover from the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in the first clause and every sentence carries substance (outputs, optimization rule, algorithm caveat, units, return). The middle semicolon-chained sentence about tie-breaking is dense and slightly overloaded, but nothing is redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 35-parameter tool with an output schema and full schema descriptions, the description is largely self-sufficient: project types, optimization policy, algorithm quality, and the return artifact are all stated. The main gap is that it never clarifies which parameters apply to which project variant, leaving that cross-referencing to the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% across all 35 parameters, so the schema already documents every field including defaults and per-project applicability. The description's only parameter-level addition, 'Lengths accept feet and inches,' largely restates the schema's repeated unit examples, so baseline 3 is correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb (plans) and resource (trim board order for board-and-batten, wainscoting, or picture-frame molding on one wall), and enumerates the concrete outputs (spacing, cut list, boards per retail length). An agent can distinguish this from the flooring/wallpaper planners and from build_order_sheet without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the scoping phrase 'on one wall' and the project enum, and the mention of a returned plan link hints that a separate order-sheet tool exists. But there is no explicit when-to-use/when-not guidance and no named alternative such as build_order_sheet, so the agent must infer the boundary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
plan_wallpaper_orderPlan a wallpaper orderARead-onlyIdempotentInspect
Counts the wallpaper rolls to buy from the walls, doors and windows and the roll label (width, length, pattern repeat, match): drops per roll, every cut placed on its roll, match waste, and the straight / half-drop / random comparison. Lengths accept feet and inches. Returns a link to the full plan on calculiva.com.
| Name | Required | Description | Default |
|---|---|---|---|
| trim | No | Trim allowance per drop, top and bottom together. Default 4 in. Length with its unit, e.g. "12 ft 6 in", "12'6\"", "150 in", "3m80"; a bare number is read as inches. | |
| match | No | Pattern match from the label: straight (default), half-drop or random. | |
| walls | Yes | Walls to paper, 1 to 12. | |
| repeat | Yes | Vertical pattern repeat from the label; "0" for none. Length with its unit, e.g. "12 ft 6 in", "12'6\"", "150 in", "3m80"; a bare number is read as inches. | |
| openings | No | Doors and windows; only drops fully crossed by an opening are shortened. | |
| rollWidth | Yes | Roll width, from the label of the roll. Length with its unit, e.g. "12 ft 6 in", "12'6\"", "150 in", "3m80"; a bare number is read as inches. | |
| rollLength | Yes | Roll length, from the label (e.g. "33 ft"). Length with its unit, e.g. "12 ft 6 in", "12'6\"", "150 in", "3m80"; a bare number is read as inches. | |
| deductOpenings | No | Shorten drops over doors and windows (default true). |
Output Schema
| Name | Required | Description |
|---|---|---|
| cuts | Yes | |
| drops | Yes | |
| match | Yes | |
| rolls | Yes | |
| shareUrl | Yes | |
| warnings | Yes | |
| cutTotalFt | Yes | |
| longestCut | Yes | |
| rollsToBuy | Yes | |
| linearYards | Yes | |
| dropsPerRoll | Yes | |
| matchWasteFt | Yes | |
| wallAreaSqFt | Yes | |
| wastePercent | Yes | |
| areaMethodRolls | Yes | |
| matchComparison | Yes | The same walls with each pattern match; the match is printed on the roll label, so this is not a choice. |
| openingAreaSqFt | Yes | |
| shareUrlComplete | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a read-only, idempotent, non-destructive, non-open-world call, so the safety burden is lifted. The description still adds value beyond that: it discloses the external artifact produced ('a link to the full plan on calculiva.com') and the unit-parsing behavior ('Lengths accept feet and inches').
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action and tightly packed, with no filler sentences. It is a single long sentence, but each clause carries distinct information (inputs, outputs, units, return link).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value detail is not required, yet the description still notes the plan link and comparison output. Combined with 100% schema coverage and clear annotations, the definition gives an agent enough to call the tool correctly; only routing guidance against siblings is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter (walls, rollWidth, rollLength, repeat, match, openings, trim, deductOpenings) is already documented in the schema. The description's brief parenthetical '(width, length, pattern repeat, match)' and the unit note merely restate schema content, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Counts the wallpaper rolls to buy') and enumerates the concrete outputs: drops per roll, cut placement, match waste, and straight/half-drop/random comparison. The wallpaper domain cleanly separates it from plan_flooring_order and plan_trim_order without needing to name them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the context (estimating material before ordering wallpaper) but never states when to use this versus the sibling planning tools or any preconditions/exclusions. Usage must be inferred from the purpose statement alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
4 tool updates
- First observed
build_order_sheet - First observed
plan_flooring_order - First observed
plan_trim_order - First observed
plan_wallpaper_order
Related MCP Connectors
Construction quantities from cited calculators, takeoffs, planners, drawings, cut plans. No prices.
Cutlist optimization for sheet, linear and roll stock, with grain, kerf, nesting and saw exports.
Auditable construction takeoffs with locked waste and conservative purchase rounding.
Construction takeoff and estimating for AI agents. Measure a drawing PDF, export a priced estimate.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables an agent to turn furniture measurements into parametric module parts, optimize panel cutting layouts, and export cut lists, labels, PDF/SVG, CSV, or DXF.MIT
- AlicenseNot gradedqualityDmaintenanceEnables users to create and edit 3D floor plans conversationally, describing rooms and layouts or uploading DWG/PDF drawings, then view them in 2D/3D via a live link.4MIT
- FlicenseNot gradedqualityDmaintenanceGenerates workspace floorplans with deterministic layout calculations, providing tools for space layout generation, zone adjacency analysis, and space brief validation.-
- FlicenseNot gradedqualityAmaintenanceFloor plans, elevations and sections for agents. Draw a room in real millimetres, place doors, windows and tables, validate with typed errors, render deterministic SVG. Free key, no approval.-
Glama MCP Gateway
Add one secure layer between your agents and this server.