Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,070Paid calls: 1,524Letters: 13Defects: 1,322counted 4 min ago
teppi

Server definition

Hash
sha256:00d6075d9d21ce146fb8b969c5848cc3617c70a64ebf22f9bbc13b150d2f01b7
What it is
What a remote MCP server returned when asked what it offers: 37 tools

The blob, as servednamed by its sha256

{ "instructions": null, "tools": [ { "description": "Equal baluster/spindle spacing for a run: number of balusters, exact gap and positions. Enforces a maximum gap (e.g. the 4-inch / 100 mm sphere code rule).", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "baluster_width_mm": { "exclusiveMinimum": 0, "type": "number" }, "max_gap_mm": { "default": 100, "description": "Maximum allowed gap (100 mm = sphere rule, 102 mm = 4 in)", "minimum": 0, "type": "number" }, "run_mm": { "description": "Total run length between posts", "exclusiveMinimum": 0, "type": "number" } }, "required": [ "run_mm", "baluster_width_mm" ], "type": "object" }, "name": "baluster_spacing_calculator", "outputSchema": null }, { "description": "Calculate board feet and lumber cost (thickness x width x length / 144 in inches). Accepts multiple boards and an optional price quoted per board foot or per MBF (thousand board feet).", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "boards": { "description": "Boards (dimensions in the chosen unit)", "items": { "properties": { "label": { "type": "string" }, "length": { "exclusiveMinimum": 0, "type": "number" }, "qty": { "default": 1, "exclusiveMinimum": 0, "maximum": 9007199254740991, "type": "integer" }, "thickness": { "exclusiveMinimum": 0, "type": "number" }, "width": { "exclusiveMinimum": 0, "type": "number" } }, "required": [ "thickness", "width", "length" ], "type": "object" }, "minItems": 1, "type": "array" }, "price": { "description": "Optional price per price_unit", "minimum": 0, "type": "number" }, "price_unit": { "default": "bf", "description": "Unit the price is quoted in: single board foot or MBF (1,000 bf)", "enum": [ "bf", "mbf" ], "type": "string" }, "unit": { "default": "in", "description": "Unit for board dimensions", "enum": [ "in", "ft", "mm", "cm", "m" ], "type": "string" } }, "required": [ "boards" ], "type": "object" }, "name": "board_feet_calculator", "outputSchema": null }, { "description": "Bill-of-materials cost roll-up for furniture: buy quantity = net qty x (1 + waste%, verified presets: S4S lumber 18%, rough 28%, nested panels 10%, hardware 3%), line and total costs, cost per product and a selling price from a target margin (price = cost / (1 - margin)).", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "labor_per_product": { "description": "Direct labour per product", "minimum": 0, "type": "number" }, "lines": { "items": { "properties": { "name": { "type": "string" }, "qty": { "description": "Net quantity per product", "exclusiveMinimum": 0, "type": "number" }, "unit": { "description": "Unit label (m3, m2, pcs...)", "type": "string" }, "unit_cost": { "description": "Cost per unit", "exclusiveMinimum": 0, "type": "number" }, "waste_pct": { "default": 0, "description": "Waste allowance %", "maximum": 200, "minimum": 0, "type": "number" } }, "required": [ "qty", "unit_cost" ], "type": "object" }, "minItems": 1, "type": "array" }, "margin_pct": { "description": "Target margin on selling price, %", "maximum": 90, "minimum": 0, "type": "number" }, "products": { "default": 1, "description": "Products this BOM covers", "exclusiveMinimum": 0, "maximum": 9007199254740991, "type": "integer" } }, "required": [ "lines" ], "type": "object" }, "name": "bom_costing", "outputSchema": null }, { "description": "Packing CBM for cartons: per-line and lot volume (m3), total weight and lot density, with a cube-out / weigh-out verdict against the 40HC balanced density (390 kg/m3 - same presets as container loading).", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "lines": { "description": "Carton lines", "items": { "properties": { "count": { "exclusiveMinimum": 0, "maximum": 9007199254740991, "type": "integer" }, "height_cm": { "exclusiveMinimum": 0, "type": "number" }, "length_cm": { "exclusiveMinimum": 0, "type": "number" }, "weight_kg": { "description": "Gross weight per carton, kg", "minimum": 0, "type": "number" }, "width_cm": { "exclusiveMinimum": 0, "type": "number" } }, "required": [ "length_cm", "width_cm", "height_cm", "count" ], "type": "object" }, "minItems": 1, "type": "array" } }, "required": [ "lines" ], "type": "object" }, "name": "cbm_shipment", "outputSchema": null }, { "description": "CNC spindle RPM and feed rate from tool diameter, flute count, chip load and cutting speed. Works for routers and mills, metric and imperial.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "chip_load": { "description": "Chip load per tooth (mm or inch)", "exclusiveMinimum": 0, "type": "number" }, "cutting_speed": { "description": "Cutting speed Vc (m/min or ft/min)", "exclusiveMinimum": 0, "type": "number" }, "flutes": { "default": 2, "exclusiveMinimum": 0, "maximum": 9007199254740991, "type": "integer" }, "machine": { "default": "router", "enum": [ "router", "mill" ], "type": "string" }, "tool_diameter": { "description": "Cutter diameter (mm or inch)", "exclusiveMinimum": 0, "type": "number" }, "unit": { "enum": [ "metric", "imperial" ], "type": "string" } }, "required": [ "unit", "tool_diameter", "chip_load", "cutting_speed" ], "type": "object" }, "name": "cnc_feeds_speeds", "outputSchema": null }, { "description": "How many uniform cartons fit in a shipping container before cube-out or weigh-out. Presets: 20GP (33.2 CBM nominal, 28,200 kg payload), 40GP (67.7 CBM, 26,700 kg), 40HC (76.4 CBM, 68 usable, 26,500 kg) — all editable. Returns max pieces by volume vs weight, the binding limit, balanced density (kg/m3) and containers needed for a planned quantity.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "cbm_per_piece": { "description": "Volume per carton in CBM (alternative to dimensions)", "minimum": 0, "type": "number" }, "container": { "default": "40hc", "enum": [ "20gp", "40gp", "40hc", "custom" ], "type": "string" }, "kg_per_piece": { "description": "Mass per carton (kg)", "exclusiveMinimum": 0, "type": "number" }, "payload_kg": { "description": "Override max payload (kg); route limits are often lower than the container maximum", "minimum": 0, "type": "number" }, "piece_h_m": { "description": "Carton height (m)", "minimum": 0, "type": "number" }, "piece_l_m": { "description": "Carton length (m)", "minimum": 0, "type": "number" }, "piece_w_m": { "description": "Carton width (m)", "minimum": 0, "type": "number" }, "planned_qty": { "description": "Planned number of cartons (returns containers needed)", "exclusiveMinimum": 0, "maximum": 9007199254740991, "type": "integer" }, "usable_cbm": { "description": "Override usable/stowable volume (CBM)", "minimum": 0, "type": "number" } }, "required": [ "kg_per_piece" ], "type": "object" }, "name": "container_loading", "outputSchema": null }, { "description": "Cutting speed from spindle speed: Vc = pi*D*n/1000 metric (m/min), SFM = pi*D*n/12 imperial. Always also returns the same speed converted to the other unit system. Includes a web_url with the calculation prefilled.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "diameter": { "description": "Tool/workpiece diameter (metric: mm, imperial: inch)", "exclusiveMinimum": 0, "type": "number" }, "rpm": { "description": "Spindle speed in revolutions per minute", "exclusiveMinimum": 0, "type": "number" }, "unit": { "default": "metric", "description": "Unit system", "enum": [ "metric", "imperial" ], "type": "string" } }, "required": [ "diameter", "rpm" ], "type": "object" }, "name": "cutting_speed_calculator", "outputSchema": null }, { "description": "Resize an embroidery design file (PES or DST) by a scale percentage. Returns stitch stats before/after, a density safety verdict (safe within +/-15%) and the resized file as base64.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "file_base64": { "description": "Base64-encoded PES or DST file", "minLength": 4, "type": "string" }, "scale_percent": { "description": "Target scale in percent, e.g. 80 for -20%", "exclusiveMinimum": 0, "type": "number" } }, "required": [ "file_base64", "scale_percent" ], "type": "object" }, "name": "embroidery_resize", "outputSchema": null }, { "description": "Convert firewood volume between cord (128 ft3), stere/Raummeter (stacked m3), solid m3 (Festmeter), loose m3 and ft3, with optional weight estimate by wood species (dry/fresh).", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "from": { "description": "Input unit: stere = 1 stacked m3, cord = 128 ft3, loose = bulk m3", "enum": [ "stere", "cord", "loose", "ft3" ], "type": "string" }, "loose_factor": { "default": 1.4, "description": "Loose m3 per stacked m3 (1.35-1.55 typical)", "exclusiveMinimum": 1, "type": "number" }, "moisture": { "default": "dry", "description": "fresh = 1.5x weight", "enum": [ "dry", "fresh" ], "type": "string" }, "solid_factor": { "default": 0.7, "description": "Solid m3 per stacked m3 (Festmeter/Raummeter, 0.65-0.75 typical) - the weight runs off this", "exclusiveMinimum": 0, "maximum": 1, "type": "number" }, "species": { "description": "Optional species key for weight", "enum": [ "pine", "spruce", "fir", "cedar", "poplar", "oak-red", "oak-white", "maple-hard", "birch", "ash", "beech", "walnut", "cherry", "mahogany", "teak", "mdf", "plywood", "oak-engineered" ], "type": "string" }, "value": { "exclusiveMinimum": 0, "type": "number" } }, "required": [ "value", "from" ], "type": "object" }, "name": "firewood_calculator", "outputSchema": null }, { "description": "Laminate/vinyl plank takeoff: planks, boxes and cost with offcut reuse between rows (best-fit), expansion gap, layout waste presets and direction.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "direction": { "default": "length", "description": "Plank direction", "enum": [ "length", "width" ], "type": "string" }, "expansion_mm": { "default": 10, "minimum": 0, "type": "number" }, "layout": { "default": "staggered", "enum": [ "straight", "staggered", "herringbone", "diagonal" ], "type": "string" }, "min_offcut_mm": { "default": 300, "description": "Offcuts shorter than this are not reused", "minimum": 0, "type": "number" }, "plank_length_mm": { "exclusiveMinimum": 0, "type": "number" }, "plank_width_mm": { "exclusiveMinimum": 0, "type": "number" }, "planks_per_box": { "default": 8, "exclusiveMinimum": 0, "maximum": 9007199254740991, "type": "integer" }, "price_per_box": { "minimum": 0, "type": "number" }, "price_per_m2": { "minimum": 0, "type": "number" }, "room_length_m": { "exclusiveMinimum": 0, "type": "number" }, "room_width_m": { "exclusiveMinimum": 0, "type": "number" }, "waste_percent": { "description": "Overrides the layout default", "minimum": 0, "type": "number" } }, "required": [ "room_width_m", "room_length_m", "plank_width_mm", "plank_length_mm" ], "type": "object" }, "name": "flooring_calculator", "outputSchema": null }, { "description": "Cut-to-size glass cost and weight estimate: net area with optional waste allowance, weight (2.5 kg/m2 per mm of thickness), material cost from your price per m2, optional polished-edge work per running metre, total and per-piece cost. Includes a web_url with the quote prefilled.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "edge_price_per_m": { "default": 0, "description": "Polished-edge work price per running metre", "minimum": 0, "type": "number" }, "height_mm": { "description": "Pane height in mm", "exclusiveMinimum": 0, "type": "number" }, "price_per_m2": { "description": "Glass price per square metre", "exclusiveMinimum": 0, "type": "number" }, "quantity": { "default": 1, "description": "Number of identical panes", "exclusiveMinimum": 0, "maximum": 9007199254740991, "type": "integer" }, "thickness_mm": { "description": "Glass thickness in mm (2-25)", "exclusiveMinimum": 0, "type": "number" }, "waste_pct": { "default": 0, "description": "Cutting-waste allowance added on top of net area (%)", "maximum": 50, "minimum": 0, "type": "number" }, "width_mm": { "description": "Pane width in mm", "exclusiveMinimum": 0, "type": "number" } }, "required": [ "width_mm", "height_mm", "thickness_mm", "price_per_m2" ], "type": "object" }, "name": "glass_price_calculator", "outputSchema": null }, { "description": "Wood adhesive quantity: bond area x spread (g/m2, TDS presets like PVAc D3 175, EGP 250, finger-joint PUR 530) x application faces x waste allowance. Also computes bond area for edge-glued panels (joints from board width) and face lamination lay-ups.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "bond_area_m2": { "description": "Total bond-line area, m2", "minimum": 0, "type": "number" }, "density_gcm3": { "description": "Glue density g/cm3 to get litres (PVAc ~1.08)", "minimum": 0, "type": "number" }, "edge_panel": { "description": "Edge-glued panel dimensions instead of a direct area", "properties": { "board_width_mm": { "description": "Sawn lamella width - joint count = ceil(width/board)-1", "exclusiveMinimum": 0, "type": "number" }, "panel_length_mm": { "exclusiveMinimum": 0, "type": "number" }, "panel_thickness_mm": { "exclusiveMinimum": 0, "type": "number" }, "panel_width_mm": { "exclusiveMinimum": 0, "type": "number" }, "panels": { "default": 1, "exclusiveMinimum": 0, "maximum": 9007199254740991, "type": "integer" } }, "required": [ "panel_length_mm", "panel_width_mm", "board_width_mm", "panel_thickness_mm" ], "type": "object" }, "face_lam": { "description": "Face lamination lay-up instead of a direct area", "properties": { "layers": { "maximum": 9007199254740991, "minimum": 2, "type": "integer" }, "length_mm": { "exclusiveMinimum": 0, "type": "number" }, "sets": { "default": 1, "exclusiveMinimum": 0, "maximum": 9007199254740991, "type": "integer" }, "width_mm": { "exclusiveMinimum": 0, "type": "number" } }, "required": [ "length_mm", "width_mm", "layers" ], "type": "object" }, "faces": { "default": "1", "description": "1 = single-face, 2 = both mating faces", "enum": [ "1", "2" ], "type": "string" }, "price_per_kg": { "description": "Glue price per kg", "minimum": 0, "type": "number" }, "spread_gsm": { "description": "Spread rate g/m2 (PVAc D3 one face ~175, EGP ~250, finger PUR ~530)", "exclusiveMinimum": 0, "type": "number" }, "waste_pct": { "default": 5, "description": "Application/squeeze-out waste, %", "maximum": 100, "minimum": 0, "type": "number" } }, "required": [ "spread_gsm" ], "type": "object" }, "name": "glue_consumption", "outputSchema": null }, { "description": "Weight of a roundwood/log batch at any moisture content: W = volume x basic density x (1 + MC/100), per USDA Wood Handbook 2021 Ch.4. Presets for 14 verified species (acacia, rubberwood, eucalyptus, oak, teak, spruce...) or a custom basic density. Returns oven-dry mass, water mass and tonnes.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "basic_density_kg_m3": { "description": "Custom basic density (oven-dry kg per green m3); overrides the species preset", "minimum": 0, "type": "number" }, "mc_pct": { "description": "Moisture content % oven-dry basis; defaults to the species' freshly-felled MC (~73% acacia, ~75% rubberwood)", "minimum": 0, "type": "number" }, "species": { "description": "Species key, e.g. acacia-mangium, rubberwood, white-oak, teak", "type": "string" }, "volume_m3": { "description": "Roundwood volume in m3 (Hoppus true, Huber or JAS volume)", "exclusiveMinimum": 0, "type": "number" } }, "required": [ "volume_m3" ], "type": "object" }, "name": "green_log_weight", "outputSchema": null }, { "description": "Hoppus (quarter-girth) volume of round logs from mid-length circumference and length: (C/4)^2 x L. Returns Hoppus volume, true volume (x 4/pi), Hoppus tons (50 h ft3) and a board-feet approximation, with optional quantity and value per Hoppus unit.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "circumference": { "description": "Circumference at mid-length (in or cm)", "exclusiveMinimum": 0, "type": "number" }, "length": { "description": "Log length (ft or m)", "exclusiveMinimum": 0, "type": "number" }, "price_per_hoppus_unit": { "description": "Optional value per Hoppus ft3/m3", "minimum": 0, "type": "number" }, "qty": { "default": 1, "exclusiveMinimum": 0, "maximum": 9007199254740991, "type": "integer" }, "unit": { "default": "imperial", "description": "imperial: circumference in inches, length in feet; metric: cm and m", "enum": [ "imperial", "metric" ], "type": "string" } }, "required": [ "circumference", "length" ], "type": "object" }, "name": "hoppus_volume", "outputSchema": null }, { "description": "Japanese Agricultural Standard (JAS) log scale: official diameter rounding (floor to 1 cm below 14 cm, even 2 cm at 14 cm and above), oval-log averaging, optional +2 cm ovality adjustment and the length allowance for logs over 6 m. Volume per log and totals in m3.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "diameter_long_cm": { "description": "Long-axis diameter for oval logs (cm)", "minimum": 0, "type": "number" }, "diameter_small_cm": { "description": "Short-axis diameter in cm", "exclusiveMinimum": 0, "type": "number" }, "length_m": { "description": "Log length in meters", "exclusiveMinimum": 0, "type": "number" }, "oval_adjust": { "default": false, "description": "Add the +2 cm ovality adjustment", "type": "boolean" }, "qty": { "default": 1, "exclusiveMinimum": 0, "maximum": 9007199254740991, "type": "integer" } }, "required": [ "diameter_small_cm", "length_m" ], "type": "object" }, "name": "jas_log_scale", "outputSchema": null }, { "description": "Kiln charge capacity: wood volume per batch (AH-188 / TechDrying). V_wood = D×R×C × t/(t+s) × f where t=board thickness, s=sticker thickness, f=fill factor (0.85–0.95). Returns wood volume in m³ and board feet (1 m³ = 423.77 BF).", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "board_thickness_mm": { "description": "Average board thickness, mm", "exclusiveMinimum": 0, "type": "number" }, "fill_factor": { "description": "Stack fill factor 0–1, default 0.9", "minimum": 0, "type": "number" }, "height_m": { "description": "Stack height, m", "exclusiveMinimum": 0, "type": "number" }, "length_m": { "description": "Stack length, m", "exclusiveMinimum": 0, "type": "number" }, "sticker_thickness_mm": { "description": "Sticker thickness, mm (default 19)", "exclusiveMinimum": 0, "type": "number" }, "width_m": { "description": "Stack width, m", "exclusiveMinimum": 0, "type": "number" } }, "required": [ "length_m", "width_m", "height_m", "board_thickness_mm", "sticker_thickness_mm" ], "type": "object" }, "name": "kiln_capacity", "outputSchema": null }, { "description": "Optimize 1D cutting plans for bars, pipes and profiles (linear cutting stock problem, best-fit decreasing heuristic). Returns bars used, per-bar cut lists with positions, total waste and unplaced parts. A web_url with the plan prefilled is included for a visual SVG diagram.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "kerf": { "default": 0, "description": "Saw blade width consumed by each cut", "minimum": 0, "type": "number" }, "parts": { "description": "Parts to cut", "items": { "properties": { "label": { "description": "Optional part name", "type": "string" }, "length": { "description": "Cut length", "exclusiveMinimum": 0, "type": "number" }, "qty": { "default": 1, "description": "How many of this part", "exclusiveMinimum": 0, "maximum": 9007199254740991, "type": "integer" } }, "required": [ "length" ], "type": "object" }, "minItems": 1, "type": "array" }, "stock_count": { "default": 1, "description": "How many stock bars are available", "exclusiveMinimum": 0, "maximum": 9007199254740991, "type": "integer" }, "stock_length": { "description": "Length of one stock bar", "exclusiveMinimum": 0, "type": "number" }, "trim": { "default": 0, "description": "Unusable trim at bar ends", "minimum": 0, "type": "number" }, "unit": { "description": "Unit for all lengths", "enum": [ "mm", "cm", "m", "in", "ft" ], "type": "string" } }, "required": [ "unit", "stock_length", "parts" ], "type": "object" }, "name": "linear_cutting_optimizer", "outputSchema": null }, { "description": "Cubic volume of a log by classical formula: Huber (mid diameter only), Smalian (both end diameters) or Newton (all three, most accurate). Metric (cm, m) or imperial (in, ft); returns volume in m3 and ft3.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "diameter_large": { "description": "Large-end diameter (smalian/newton)", "minimum": 0, "type": "number" }, "diameter_mid": { "description": "Mid-length diameter (huber/newton)", "minimum": 0, "type": "number" }, "diameter_small": { "description": "Small-end diameter (smalian/newton)", "minimum": 0, "type": "number" }, "length": { "exclusiveMinimum": 0, "type": "number" }, "method": { "default": "huber", "enum": [ "huber", "smalian", "newton" ], "type": "string" }, "unit": { "default": "metric", "description": "metric: diameters in cm, length in m; imperial: in and ft", "enum": [ "metric", "imperial" ], "type": "string" } }, "required": [ "length" ], "type": "object" }, "name": "log_volume", "outputSchema": null }, { "description": "Weight of lumber by species, dimensions, quantity and moisture (dry/fresh), using species density tables. Optional custom density in kg/m3.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "custom_density_kg_m3": { "description": "Overrides species density", "minimum": 0, "type": "number" }, "length_m": { "exclusiveMinimum": 0, "type": "number" }, "moisture": { "default": "dry", "description": "fresh (green) wood uses 1.5x density (+50% weight)", "enum": [ "dry", "fresh" ], "type": "string" }, "qty": { "default": 1, "exclusiveMinimum": 0, "maximum": 9007199254740991, "type": "integer" }, "species": { "description": "Wood species key", "enum": [ "pine", "spruce", "fir", "cedar", "poplar", "oak-red", "oak-white", "maple-hard", "birch", "ash", "beech", "walnut", "cherry", "mahogany", "teak", "mdf", "plywood", "oak-engineered" ], "type": "string" }, "thickness_mm": { "exclusiveMinimum": 0, "type": "number" }, "width_mm": { "exclusiveMinimum": 0, "type": "number" } }, "required": [ "species", "thickness_mm", "width_mm", "length_m" ], "type": "object" }, "name": "lumber_weight_calculator", "outputSchema": null }, { "description": "Cumulative yield through a wood production chain (sawing -> drying -> machining -> finishing). Multiplies stage yields, shows per-stage loss and computes the roundwood volume needed for a target finished volume.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "stages": { "description": "Production stages in process order", "items": { "properties": { "label": { "description": "Optional stage name", "type": "string" }, "yield_pct": { "description": "Share of stage input that becomes usable output, %", "exclusiveMinimum": 0, "type": "number" } }, "required": [ "yield_pct" ], "type": "object" }, "minItems": 1, "type": "array" }, "target_output_m3": { "description": "Finished volume wanted, m3 (reverse mode)", "minimum": 0, "type": "number" } }, "required": [ "stages" ], "type": "object" }, "name": "manufacturing_yield", "outputSchema": null }, { "description": "Weight of metal stock per profile: pipe/tube (OD + wall), round bar, square/rectangular tube, flat bar, angle, beam/I-beam. Materials: steel, stainless, aluminum, copper, brass.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "height_mm": { "description": "rect-tube/beam: height", "minimum": 0, "type": "number" }, "length_m": { "description": "Length in meters", "exclusiveMinimum": 0, "type": "number" }, "material": { "enum": [ "steel", "stainless", "aluminum", "copper", "brass" ], "type": "string" }, "od_mm": { "description": "pipe/round-bar: outer diameter", "minimum": 0, "type": "number" }, "profile": { "enum": [ "pipe", "round-bar", "square-tube", "rect-tube", "flat-bar", "angle", "beam" ], "type": "string" }, "qty": { "default": 1, "exclusiveMinimum": 0, "maximum": 9007199254740991, "type": "integer" }, "wall_mm": { "description": "pipe/tubes: wall thickness", "minimum": 0, "type": "number" }, "web_mm": { "description": "beam: web thickness", "minimum": 0, "type": "number" }, "width_mm": { "description": "rect-tube/flat-bar/angle/beam: width", "minimum": 0, "type": "number" } }, "required": [ "profile", "material", "length_m" ], "type": "object" }, "name": "metal_weight_calculator", "outputSchema": null }, { "description": "Miter angles three ways: corner mode (any corner angle between two pieces), sides mode (regular polygon with N sides), crown mode (miter + bevel for crown molding at a spring angle).", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "corner_angle_deg": { "description": "corner mode: interior corner angle, e.g. 90 or 135", "exclusiveMaximum": 180, "exclusiveMinimum": 0, "type": "number" }, "mode": { "description": "Calculation mode", "enum": [ "corner", "sides", "crown" ], "type": "string" }, "sides": { "description": "sides mode: number of sides of the frame/polygon", "maximum": 120, "minimum": 3, "type": "integer" }, "spring_angle_deg": { "description": "crown mode: spring angle, typically 38 or 45", "exclusiveMaximum": 90, "exclusiveMinimum": 0, "type": "number" } }, "required": [ "mode" ], "type": "object" }, "name": "miter_angle_calculator", "outputSchema": null }, { "description": "Wood moisture content (WH-2021 Ch.4 Eq. 4-1..4-4). Two modes: (1) sample-based MC_od/MC_wb from wet+dry masses; (2) drying outcome — mass + water lost when going from start MC to target MC. Optional Gb (kg/m³) returns MCmax and MCsink. Basis 'od' (oven-dry, industry default) or 'wb' (wet).", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "basic_density_kg_m3": { "description": "Basic density kg/m³ for MCmax/MCsink (max mode)", "minimum": 0, "type": "number" }, "basis": { "default": "od", "enum": [ "od", "wb" ], "type": "string" }, "dry_mass": { "description": "Oven-dry mass of sample (sample mode)", "minimum": 0, "type": "number" }, "end_mc_pct": { "description": "Target MC after drying, %", "minimum": 0, "type": "number" }, "mode": { "default": "sample", "enum": [ "sample", "drying", "max" ], "type": "string" }, "start_mass": { "description": "Mass at start of drying (drying mode)", "minimum": 0, "type": "number" }, "start_mc_pct": { "description": "MC at start of drying, %", "minimum": 0, "type": "number" }, "wet_mass": { "description": "Wet mass of sample (sample mode)", "minimum": 0, "type": "number" } }, "type": "object" }, "name": "moisture_content", "outputSchema": null }, { "description": "Wood finishing paint quantity. Technical route: theoretical coverage = 10 x %volume solids / DFT(um), multiplied by transfer efficiency (conventional spray 30-35%, airless ~50%, HVLP ~65-90%, brush/roller ~90%); or a data-sheet coverage in m2/L. Adds an optional extra % for carved/3D surfaces.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "area_m2": { "description": "Surface to coat, m2 (flat projected area)", "exclusiveMinimum": 0, "type": "number" }, "coats": { "description": "Number of coats", "maximum": 10, "minimum": 1, "type": "integer" }, "coverage_m2_per_l": { "description": "Data-sheet coverage m2/L (mode A)", "minimum": 0, "type": "number" }, "dft_microns": { "description": "Target dry film thickness um (mode B)", "minimum": 0, "type": "number" }, "price_per_l": { "description": "Coating price per litre", "minimum": 0, "type": "number" }, "shape_extra_pct": { "default": 0, "description": "Extra % for 3D surfaces", "maximum": 100, "minimum": 0, "type": "number" }, "solids_pct": { "description": "Volume solids % (mode B)", "minimum": 0, "type": "number" }, "transfer_eff_pct": { "description": "Transfer efficiency % (mode B; HVLP ~70)", "minimum": 0, "type": "number" } }, "required": [ "area_m2", "coats" ], "type": "object" }, "name": "paint_coverage", "outputSchema": null }, { "description": "Rebar weight takeoff (d2/162 rule): total length, weight in kg and bars per tonne for a list of rebar lines. Supports metric mm bars and US # sizes as diameters.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "lines": { "description": "Rebar lines", "items": { "properties": { "diameter_mm": { "description": "Bar diameter, e.g. 12 or 15.875 (#5)", "exclusiveMinimum": 0, "type": "number" }, "length_m": { "exclusiveMinimum": 0, "type": "number" }, "qty": { "default": 1, "exclusiveMinimum": 0, "maximum": 9007199254740991, "type": "integer" } }, "required": [ "diameter_mm", "length_m" ], "type": "object" }, "minItems": 1, "type": "array" } }, "required": [ "lines" ], "type": "object" }, "name": "rebar_takeoff", "outputSchema": null }, { "description": "Rough sizing — convert between finished (planed, kiln-dried) and rough-sawn dimensions before drying and planing. Adds planing allowance (default 2.5 mm/face) + saw kerf (default 2.2 mm band) and applies WH-2021 Eq. 4-9 shrinkage. Direction: tangential (board width) or radial (board thickness).", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "custom_fsp_pct": { "description": "Custom FSP %, default 30", "minimum": 0, "type": "number" }, "custom_shrink_od_pct": { "description": "Custom S_od % (used if no species)", "minimum": 0, "type": "number" }, "direction": { "enum": [ "tangential", "radial" ], "type": "string" }, "finished_mc_pct": { "description": "Target finished MC, %", "exclusiveMinimum": 0, "type": "number" }, "finished_mm": { "description": "Finished dimension mm (forward mode)", "minimum": 0, "type": "number" }, "kerf_mm": { "description": "Saw kerf, mm (default 2.2 band)", "minimum": 0, "type": "number" }, "mode": { "default": "forward", "enum": [ "forward", "reverse" ], "type": "string" }, "planing_mm": { "description": "Planing allowance per face, mm (default 2.5)", "minimum": 0, "type": "number" }, "rough_mm": { "description": "Rough-sawn dimension mm (reverse mode)", "minimum": 0, "type": "number" }, "sawn_mc_pct": { "description": "MC at which the wood is sawn, %", "exclusiveMinimum": 0, "type": "number" }, "species": { "description": "Species key for shrinkage (e.g. 'white-oak')", "type": "string" } }, "required": [ "finished_mc_pct", "sawn_mc_pct", "direction" ], "type": "object" }, "name": "rough_sizing", "outputSchema": null }, { "description": "Spindle speed (RPM) from cutting speed: n = Vc*1000/(pi*D) metric, n = Vc*12/(pi*D) imperial. Metric takes diameter in mm and Vc in m/min; imperial takes diameter in inches and Vc in SFM. Includes a web_url with the calculation prefilled.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "cutting_speed": { "description": "Cutting speed (metric: m/min, imperial: SFM)", "exclusiveMinimum": 0, "type": "number" }, "diameter": { "description": "Tool/workpiece diameter (metric: mm, imperial: inch)", "exclusiveMinimum": 0, "type": "number" }, "unit": { "default": "metric", "description": "Unit system", "enum": [ "metric", "imperial" ], "type": "string" } }, "required": [ "diameter", "cutting_speed" ], "type": "object" }, "name": "rpm_calculator", "outputSchema": null }, { "description": "Sawmill recovery rate (lumber recovery factor): sawn volume out / roundwood volume in, benchmarked against FAO/EU/SE-Asia reference ranges. Also computes log-rule overrun/underrun: (actual BF - rule BF) / rule BF — Doyle underestimates small logs, so overrun is usually positive.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "actual_bf": { "description": "Optional: board feet actually sawn — enables the overrun calculation", "minimum": 0, "type": "number" }, "input_volume_m3": { "description": "Roundwood volume in (m3)", "exclusiveMinimum": 0, "type": "number" }, "log_rule_bf": { "description": "Optional: board feet predicted by the log rule (Doyle/Scribner/International)", "minimum": 0, "type": "number" }, "output_volume_m3": { "description": "Sawn lumber volume out (m3)", "exclusiveMinimum": 0, "type": "number" } }, "required": [ "input_volume_m3", "output_volume_m3" ], "type": "object" }, "name": "sawmill_recovery", "outputSchema": null }, { "description": "Optimize 2D guillotine cutting plans for plywood, MDF, glass, sheet metal (2D nesting with kerf, per-part rotation lock for grain direction, optional sheet trim and multiple stock sizes). Returns sheets used, piece positions, utilization, estimated cut length/count and unplaced pieces. Includes a web_url with the plan prefilled for a visual layout diagram.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "kerf": { "default": 0, "description": "Blade/saw width consumed by each cut", "minimum": 0, "type": "number" }, "pieces": { "description": "Pieces to cut", "items": { "properties": { "height": { "description": "Piece height", "exclusiveMinimum": 0, "type": "number" }, "label": { "description": "Optional piece name", "type": "string" }, "qty": { "default": 1, "description": "How many of this piece", "exclusiveMinimum": 0, "maximum": 9007199254740991, "type": "integer" }, "rotatable": { "default": true, "description": "Allow 90-degree rotation (false = grain lock)", "type": "boolean" }, "width": { "description": "Piece width", "exclusiveMinimum": 0, "type": "number" } }, "required": [ "width", "height" ], "type": "object" }, "minItems": 1, "type": "array" }, "stock_count": { "default": 1, "description": "How many sheets are available", "exclusiveMinimum": 0, "maximum": 9007199254740991, "type": "integer" }, "stock_height": { "description": "Sheet height", "exclusiveMinimum": 0, "type": "number" }, "stock_width": { "description": "Sheet width", "exclusiveMinimum": 0, "type": "number" }, "stocks": { "description": "Optional mixed stock sizes; replaces stock_width/stock_height/stock_count when given", "items": { "properties": { "count": { "description": "Sheets available of this size", "exclusiveMinimum": 0, "maximum": 9007199254740991, "type": "integer" }, "height": { "description": "Sheet height", "exclusiveMinimum": 0, "type": "number" }, "width": { "description": "Sheet width", "exclusiveMinimum": 0, "type": "number" } }, "required": [ "width", "height", "count" ], "type": "object" }, "maxItems": 6, "type": "array" }, "trim_x": { "default": 0, "description": "Symmetric trim removed from left/right sheet edges (damaged edges)", "minimum": 0, "type": "number" }, "trim_y": { "default": 0, "description": "Symmetric trim removed from top/bottom sheet edges", "minimum": 0, "type": "number" }, "unit": { "description": "Unit for all dimensions", "enum": [ "mm", "cm", "m", "in", "ft" ], "type": "string" } }, "required": [ "unit", "stock_width", "stock_height", "pieces" ], "type": "object" }, "name": "sheet_cutting_optimizer", "outputSchema": null }, { "description": "Convert sheet metal gauge to thickness (mm) or thickness to gauge, and compute sheet weight for steel, stainless, aluminum or galvanized steel.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "gauge": { "description": "gauge mode: gauge number, e.g. 16", "exclusiveMinimum": 0, "maximum": 9007199254740991, "type": "integer" }, "length_mm": { "default": 2000, "minimum": 0, "type": "number" }, "material": { "default": "steel", "enum": [ "steel", "stainless", "aluminum", "galvanized" ], "type": "string" }, "mode": { "default": "gauge", "description": "gauge: from gauge number; mm: from thickness", "enum": [ "gauge", "mm" ], "type": "string" }, "qty": { "default": 1, "exclusiveMinimum": 0, "maximum": 9007199254740991, "type": "integer" }, "thickness_mm": { "description": "mm mode: thickness in mm", "minimum": 0, "type": "number" }, "width_mm": { "default": 1000, "minimum": 0, "type": "number" } }, "type": "object" }, "name": "sheet_metal_gauge", "outputSchema": null }, { "description": "Stowage factor SF = cargo volume (m3) / cargo mass (tonnes), with classification against the IMO CSS Code Table 4.1 reference ranges for wood cargoes (sawn timber, tropical logs, plywood...).", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "tonnes": { "description": "Total cargo mass in metric tonnes", "exclusiveMinimum": 0, "type": "number" }, "volume_m3": { "description": "Total cargo volume in cubic metres", "exclusiveMinimum": 0, "type": "number" } }, "required": [ "volume_m3", "tonnes" ], "type": "object" }, "name": "stowage_factor", "outputSchema": null }, { "description": "Tiles, boxes and cost for a room: room and tile dimensions, grout width, waste factor by layout pattern (straight, offset, diagonal, herringbone...), optional box size and prices.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "box_size": { "default": 10, "description": "Tiles per box", "exclusiveMinimum": 0, "maximum": 9007199254740991, "type": "integer" }, "grout_mm": { "default": 3, "minimum": 0, "type": "number" }, "layout": { "default": "straight", "description": "Layout pattern (sets default waste factor)", "enum": [ "straight", "offset", "diagonal", "herringbone", "large-format", "natural-stone" ], "type": "string" }, "price_per_box": { "minimum": 0, "type": "number" }, "price_per_m2": { "minimum": 0, "type": "number" }, "room_length_m": { "exclusiveMinimum": 0, "type": "number" }, "room_width_m": { "exclusiveMinimum": 0, "type": "number" }, "tile_length_mm": { "exclusiveMinimum": 0, "type": "number" }, "tile_width_mm": { "exclusiveMinimum": 0, "type": "number" }, "waste_percent": { "description": "Overrides the layout default", "minimum": 0, "type": "number" } }, "required": [ "room_width_m", "room_length_m", "tile_width_mm", "tile_length_mm" ], "type": "object" }, "name": "tile_calculator", "outputSchema": null }, { "description": "Allowable load on a simply supported rectangular timber beam (planning estimate, Eurocode 5 conventions, EN 338 grades C16-D40/D24-D40). Returns allowable UDL and center point load (gross and net of self-weight), governing mode (bending vs deflection at L/300), utilization, section properties. NOT a structural design - verify with an engineer. Includes a web_url with the beam prefilled.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "grade": { "description": "Timber grade (EN 338)", "enum": [ "C16", "C18", "C24", "C30", "C35", "C40", "D24", "D30", "D40" ], "type": "string" }, "height_mm": { "description": "Beam depth h in mm (strong axis)", "exclusiveMinimum": 0, "type": "number" }, "load_type": { "default": "udl", "description": "Load type of interest", "enum": [ "udl", "point" ], "type": "string" }, "span_mm": { "description": "Clear span between supports in mm", "exclusiveMinimum": 0, "type": "number" }, "width_mm": { "description": "Beam width b in mm", "exclusiveMinimum": 0, "type": "number" } }, "required": [ "span_mm", "width_mm", "height_mm", "grade" ], "type": "object" }, "name": "timber_beam_capacity", "outputSchema": null }, { "description": "Convert timber quantities between m3, ft3, board feet, MBF, Hoppus ft3, Hoppus m3 and Hoppus tons, and translate a price quoted in any unit into $/m3 and $/MBF (1 MBF = 2.3597 m3).", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "from": { "description": "Source unit", "enum": [ "m3", "ft3", "bf", "mbf", "hft3", "hm3", "ht" ], "type": "string" }, "price": { "description": "Optional price per price_per unit", "minimum": 0, "type": "number" }, "price_per": { "default": "mbf", "enum": [ "m3", "ft3", "bf", "mbf", "hft3", "hm3", "ht" ], "type": "string" }, "qty": { "default": 1, "description": "Multiplier (number of lots)", "exclusiveMinimum": 0, "maximum": 9007199254740991, "type": "integer" }, "value": { "description": "Quantity in the source unit", "exclusiveMinimum": 0, "type": "number" } }, "required": [ "value", "from" ], "type": "object" }, "name": "timber_unit_converter", "outputSchema": null }, { "description": "Wallpaper rolls needed for a wall, accounting for pattern repeat and openings. Use a standard roll preset (eu, us-single, us-double, commercial54) or custom roll dimensions.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "openings_m2": { "default": 0, "description": "Area of doors/windows to subtract", "minimum": 0, "type": "number" }, "pattern_repeat_m": { "default": 0, "description": "Pattern repeat length", "minimum": 0, "type": "number" }, "roll_length_m": { "description": "Custom roll length (overrides preset)", "minimum": 0, "type": "number" }, "roll_preset": { "enum": [ "us-single", "us-double", "eu", "commercial54" ], "type": "string" }, "roll_width_m": { "description": "Custom roll width (overrides preset)", "minimum": 0, "type": "number" }, "wall_height_m": { "exclusiveMinimum": 0, "type": "number" }, "wall_width_m": { "exclusiveMinimum": 0, "type": "number" } }, "required": [ "wall_width_m", "wall_height_m" ], "type": "object" }, "name": "wallpaper_calculator", "outputSchema": null }, { "description": "Equilibrium moisture content (EMC) from temperature and RH using the Hailwood–Horrobin sorption model (Simpson 1973 coefficients, desorption branch — WH-2021 Ch.4 Table 4-2). Optional reverse mode: target MC → required RH at the given temperature.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "branch": { "default": "desorption", "enum": [ "desorption", "adsorption" ], "type": "string" }, "mode": { "default": "emc", "enum": [ "emc", "reverse" ], "type": "string" }, "rh_pct": { "description": "Relative humidity, 0–100 (emc mode)", "minimum": 0, "type": "number" }, "target_mc_pct": { "description": "Target MC % (reverse mode)", "minimum": 0, "type": "number" }, "temp_c": { "description": "Air temperature, °C", "exclusiveMinimum": 0, "type": "number" } }, "required": [ "temp_c" ], "type": "object" }, "name": "wood_emc", "outputSchema": null }, { "description": "Wood shrinkage from a start MC to an end MC (WH-2021 Eq. 4-9: S_x = S_od × (1 − x/FSP)). Direction: tangential (board width) or radial (board thickness) or volumetric. Picks a species from the wood-species table (16 verified species) or accepts custom S_od + FSP. MC is clamped to FSP — above FSP wood doesn't change dimension.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "custom_fsp_pct": { "description": "Custom FSP %, default 30 (22 for teak)", "minimum": 0, "type": "number" }, "custom_shrink_od_pct": { "description": "Custom green→OD shrinkage %, used if no species", "minimum": 0, "type": "number" }, "dimension_mm": { "description": "Original dimension in mm (width, thickness, or volume)", "exclusiveMinimum": 0, "type": "number" }, "direction": { "enum": [ "tangential", "radial", "volumetric" ], "type": "string" }, "end_mc_pct": { "description": "Target MC, %, must be ≤ start_mc_pct", "exclusiveMinimum": 0, "type": "number" }, "species": { "description": "Species key, e.g. 'white-oak', 'rubberwood'", "type": "string" }, "start_mc_pct": { "description": "Starting MC, %", "exclusiveMinimum": 0, "type": "number" } }, "required": [ "start_mc_pct", "end_mc_pct", "dimension_mm", "direction" ], "type": "object" }, "name": "wood_shrinkage", "outputSchema": null } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:00d6075d9d21ce146fb8b969c5848cc3617c70a64ebf22f9bbc13b150d2f01b7 | sha256sum