이 MCP로 할 수 있는 일
Provides woodworking, cutting, material, manufacturing, construction, and shipping calculations, including optimization and costing tools.
도구
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['run_mm', 'baluster_width_mm'], 'properties': {'run_mm': {'type': 'number', 'description': 'Total run length between posts', 'exclusiveMinimum': 0}, 'max_gap_mm': {'type': 'number', 'default': 100, 'minimum': 0, 'description': 'Maximum allowed gap (100 mm = sphere rule, 102 mm = 4 in)'}, 'baluster_width_mm': {'type': 'number', 'exclusiveMinimum': 0}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['boards'], 'properties': {'unit': {'enum': ['in', 'ft', 'mm', 'cm', 'm'], 'type': 'string', 'default': 'in', 'description': 'Unit for board dimensions'}, 'price': {'type': 'number', 'minimum': 0, 'description': 'Optional price per price_unit'}, 'boards': {'type': 'array', 'items': {'type': 'object', 'required': ['thickness', 'width', 'length'], 'properties': {'qty': {'type': 'integer', 'default': 1, 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, 'label': {'type': 'string'}, 'width': {'type': 'number', 'exclusiveMinimum': 0}, 'length': {'type': 'number', 'exclusiveMinimum': 0}, 'thickness': {'type': 'number', 'exclusiveMinimum': 0}}}, 'minItems': 1, 'description': 'Boards (dimensions in the chosen unit)'}, 'price_unit': {'enum': ['bf', 'mbf'], 'type': 'string', 'default': 'bf', 'description': 'Unit the price is quoted in: single board foot or MBF (1,000 bf)'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['lines'], 'properties': {'lines': {'type': 'array', 'items': {'type': 'object', 'required': ['qty', 'unit_cost'], 'properties': {'qty': {'type': 'number', 'description': 'Net quantity per product', 'exclusiveMinimum': 0}, 'name': {'type': 'string'}, 'unit': {'type': 'string', 'description': 'Unit label (m3, m2, pcs...)'}, 'unit_cost': {'type': 'number', 'description': 'Cost per unit', 'exclusiveMinimum': 0}, 'waste_pct': {'type': 'number', 'default': 0, 'maximum': 200, 'minimum': 0, 'description': 'Waste allowance %'}}}, 'minItems': 1}, 'products': {'type': 'integer', 'default': 1, 'maximum': 9007199254740991, 'description': 'Products this BOM covers', 'exclusiveMinimum': 0}, 'margin_pct': {'type': 'number', 'maximum': 90, 'minimum': 0, 'description': 'Target margin on selling price, %'}, 'labor_per_product': {'type': 'number', 'minimum': 0, 'description': 'Direct labour per product'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['lines'], 'properties': {'lines': {'type': 'array', 'items': {'type': 'object', 'required': ['length_cm', 'width_cm', 'height_cm', 'count'], 'properties': {'count': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, 'width_cm': {'type': 'number', 'exclusiveMinimum': 0}, 'height_cm': {'type': 'number', 'exclusiveMinimum': 0}, 'length_cm': {'type': 'number', 'exclusiveMinimum': 0}, 'weight_kg': {'type': 'number', 'minimum': 0, 'description': 'Gross weight per carton, kg'}}}, 'minItems': 1, 'description': 'Carton lines'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['unit', 'tool_diameter', 'chip_load', 'cutting_speed'], 'properties': {'unit': {'enum': ['metric', 'imperial'], 'type': 'string'}, 'flutes': {'type': 'integer', 'default': 2, 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, 'machine': {'enum': ['router', 'mill'], 'type': 'string', 'default': 'router'}, 'chip_load': {'type': 'number', 'description': 'Chip load per tooth (mm or inch)', 'exclusiveMinimum': 0}, 'cutting_speed': {'type': 'number', 'description': 'Cutting speed Vc (m/min or ft/min)', 'exclusiveMinimum': 0}, 'tool_diameter': {'type': 'number', 'description': 'Cutter diameter (mm or inch)', 'exclusiveMinimum': 0}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['kg_per_piece'], 'properties': {'container': {'enum': ['20gp', '40gp', '40hc', 'custom'], 'type': 'string', 'default': '40hc'}, 'piece_h_m': {'type': 'number', 'minimum': 0, 'description': 'Carton height (m)'}, 'piece_l_m': {'type': 'number', 'minimum': 0, 'description': 'Carton length (m)'}, 'piece_w_m': {'type': 'number', 'minimum': 0, 'description': 'Carton width (m)'}, 'payload_kg': {'type': 'number', 'minimum': 0, 'description': 'Override max payload (kg); route limits are often lower than the container maximum'}, 'usable_cbm': {'type': 'number', 'minimum': 0, 'description': 'Override usable/stowable volume (CBM)'}, 'planned_qty': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'Planned number of cartons (returns containers needed)', 'exclusiveMinimum': 0}, 'kg_per_piece': {'type': 'number', 'description': 'Mass per carton (kg)', 'exclusiveMinimum': 0}, 'cbm_per_piece': {'type': 'number', 'minimum': 0, 'description': 'Volume per carton in CBM (alternative to dimensions)'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['diameter', 'rpm'], 'properties': {'rpm': {'type': 'number', 'description': 'Spindle speed in revolutions per minute', 'exclusiveMinimum': 0}, 'unit': {'enum': ['metric', 'imperial'], 'type': 'string', 'default': 'metric', 'description': 'Unit system'}, 'diameter': {'type': 'number', 'description': 'Tool/workpiece diameter (metric: mm, imperial: inch)', 'exclusiveMinimum': 0}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['file_base64', 'scale_percent'], 'properties': {'file_base64': {'type': 'string', 'minLength': 4, 'description': 'Base64-encoded PES or DST file'}, 'scale_percent': {'type': 'number', 'description': 'Target scale in percent, e.g. 80 for -20%', 'exclusiveMinimum': 0}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['value', 'from'], 'properties': {'from': {'enum': ['stere', 'cord', 'loose', 'ft3'], 'type': 'string', 'description': 'Input unit: stere = 1 stacked m3, cord = 128 ft3, loose = bulk m3'}, 'value': {'type': 'number', 'exclusiveMinimum': 0}, 'species': {'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', 'description': 'Optional species key for weight'}, 'moisture': {'enum': ['dry', 'fresh'], 'type': 'string', 'default': 'dry', 'description': 'fresh = 1.5x weight'}, 'loose_factor': {'type': 'number', 'default': 1.4, 'description': 'Loose m3 per stacked m3 (1.35-1.55 typical)', 'exclusiveMinimum': 1}, 'solid_factor': {'type': 'number', 'default': 0.7, 'maximum': 1, 'description': 'Solid m3 per stacked m3 (Festmeter/Raummeter, 0.65-0.75 typical) - the weight runs off this', 'exclusiveMinimum': 0}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['room_width_m', 'room_length_m', 'plank_width_mm', 'plank_length_mm'], 'properties': {'layout': {'enum': ['straight', 'staggered', 'herringbone', 'diagonal'], 'type': 'string', 'default': 'staggered'}, 'direction': {'enum': ['length', 'width'], 'type': 'string', 'default': 'length', 'description': 'Plank direction'}, 'expansion_mm': {'type': 'number', 'default': 10, 'minimum': 0}, 'price_per_m2': {'type': 'number', 'minimum': 0}, 'room_width_m': {'type': 'number', 'exclusiveMinimum': 0}, 'min_offcut_mm': {'type': 'number', 'default': 300, 'minimum': 0, 'description': 'Offcuts shorter than this are not reused'}, 'price_per_box': {'type': 'number', 'minimum': 0}, 'room_length_m': {'type': 'number', 'exclusiveMinimum': 0}, 'waste_percent': {'type': 'number', 'minimum': 0, 'description': 'Overrides the layout default'}, 'plank_width_mm': {'type': 'number', 'exclusiveMinimum': 0}, 'planks_per_box': {'type': 'integer', 'default': 8, 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, 'plank_length_mm': {'type': 'number', 'exclusiveMinimum': 0}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['width_mm', 'height_mm', 'thickness_mm', 'price_per_m2'], 'properties': {'quantity': {'type': 'integer', 'default': 1, 'maximum': 9007199254740991, 'description': 'Number of identical panes', 'exclusiveMinimum': 0}, 'width_mm': {'type': 'number', 'description': 'Pane width in mm', 'exclusiveMinimum': 0}, 'height_mm': {'type': 'number', 'description': 'Pane height in mm', 'exclusiveMinimum': 0}, 'waste_pct': {'type': 'number', 'default': 0, 'maximum': 50, 'minimum': 0, 'description': 'Cutting-waste allowance added on top of net area (%)'}, 'price_per_m2': {'type': 'number', 'description': 'Glass price per square metre', 'exclusiveMinimum': 0}, 'thickness_mm': {'type': 'number', 'description': 'Glass thickness in mm (2-25)', 'exclusiveMinimum': 0}, 'edge_price_per_m': {'type': 'number', 'default': 0, 'minimum': 0, 'description': 'Polished-edge work price per running metre'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['spread_gsm'], 'properties': {'faces': {'enum': ['1', '2'], 'type': 'string', 'default': '1', 'description': '1 = single-face, 2 = both mating faces'}, 'face_lam': {'type': 'object', 'required': ['length_mm', 'width_mm', 'layers'], 'properties': {'sets': {'type': 'integer', 'default': 1, 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, 'layers': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 2}, 'width_mm': {'type': 'number', 'exclusiveMinimum': 0}, 'length_mm': {'type': 'number', 'exclusiveMinimum': 0}}, 'description': 'Face lamination lay-up instead of a direct area'}, 'waste_pct': {'type': 'number', 'default': 5, 'maximum': 100, 'minimum': 0, 'description': 'Application/squeeze-out waste, %'}, 'edge_panel': {'type': 'object', 'required': ['panel_length_mm', 'panel_width_mm', 'board_width_mm', 'panel_thickness_mm'], 'properties': {'panels': {'type': 'integer', 'default': 1, 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, 'board_width_mm': {'type': 'number', 'description': 'Sawn lamella width - joint count = ceil(width/board)-1', 'exclusiveMinimum': 0}, 'panel_width_mm': {'type': 'number', 'exclusiveMinimum': 0}, 'panel_length_mm': {'type': 'number', 'exclusiveMinimum': 0}, 'panel_thickness_mm': {'type': 'number', 'exclusiveMinimum': 0}}, 'description': 'Edge-glued panel dimensions instead of a direct area'}, 'spread_gsm': {'type': 'number', 'description': 'Spread rate g/m2 (PVAc D3 one face ~175, EGP ~250, finger PUR ~530)', 'exclusiveMinimum': 0}, 'bond_area_m2': {'type': 'number', 'minimum': 0, 'description': 'Total bond-line area, m2'}, 'density_gcm3': {'type': 'number', 'minimum': 0, 'description': 'Glue density g/cm3 to get litres (PVAc ~1.08)'}, 'price_per_kg': {'type': 'number', 'minimum': 0, 'description': 'Glue price per kg'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['volume_m3'], 'properties': {'mc_pct': {'type': 'number', 'minimum': 0, 'description': "Moisture content % oven-dry basis; defaults to the species' freshly-felled MC (~73% acacia, ~75% rubberwood)"}, 'species': {'type': 'string', 'description': 'Species key, e.g. acacia-mangium, rubberwood, white-oak, teak'}, 'volume_m3': {'type': 'number', 'description': 'Roundwood volume in m3 (Hoppus true, Huber or JAS volume)', 'exclusiveMinimum': 0}, 'basic_density_kg_m3': {'type': 'number', 'minimum': 0, 'description': 'Custom basic density (oven-dry kg per green m3); overrides the species preset'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['circumference', 'length'], 'properties': {'qty': {'type': 'integer', 'default': 1, 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, 'unit': {'enum': ['imperial', 'metric'], 'type': 'string', 'default': 'imperial', 'description': 'imperial: circumference in inches, length in feet; metric: cm and m'}, 'length': {'type': 'number', 'description': 'Log length (ft or m)', 'exclusiveMinimum': 0}, 'circumference': {'type': 'number', 'description': 'Circumference at mid-length (in or cm)', 'exclusiveMinimum': 0}, 'price_per_hoppus_unit': {'type': 'number', 'minimum': 0, 'description': 'Optional value per Hoppus ft3/m3'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['diameter_small_cm', 'length_m'], 'properties': {'qty': {'type': 'integer', 'default': 1, 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, 'length_m': {'type': 'number', 'description': 'Log length in meters', 'exclusiveMinimum': 0}, 'oval_adjust': {'type': 'boolean', 'default': False, 'description': 'Add the +2 cm ovality adjustment'}, 'diameter_long_cm': {'type': 'number', 'minimum': 0, 'description': 'Long-axis diameter for oval logs (cm)'}, 'diameter_small_cm': {'type': 'number', 'description': 'Short-axis diameter in cm', 'exclusiveMinimum': 0}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['length_m', 'width_m', 'height_m', 'board_thickness_mm', 'sticker_thickness_mm'], 'properties': {'width_m': {'type': 'number', 'description': 'Stack width, m', 'exclusiveMinimum': 0}, 'height_m': {'type': 'number', 'description': 'Stack height, m', 'exclusiveMinimum': 0}, 'length_m': {'type': 'number', 'description': 'Stack length, m', 'exclusiveMinimum': 0}, 'fill_factor': {'type': 'number', 'minimum': 0, 'description': 'Stack fill factor 0â\x80\x931, default 0.9'}, 'board_thickness_mm': {'type': 'number', 'description': 'Average board thickness, mm', 'exclusiveMinimum': 0}, 'sticker_thickness_mm': {'type': 'number', 'description': 'Sticker thickness, mm (default 19)', 'exclusiveMinimum': 0}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['unit', 'stock_length', 'parts'], 'properties': {'kerf': {'type': 'number', 'default': 0, 'minimum': 0, 'description': 'Saw blade width consumed by each cut'}, 'trim': {'type': 'number', 'default': 0, 'minimum': 0, 'description': 'Unusable trim at bar ends'}, 'unit': {'enum': ['mm', 'cm', 'm', 'in', 'ft'], 'type': 'string', 'description': 'Unit for all lengths'}, 'parts': {'type': 'array', 'items': {'type': 'object', 'required': ['length'], 'properties': {'qty': {'type': 'integer', 'default': 1, 'maximum': 9007199254740991, 'description': 'How many of this part', 'exclusiveMinimum': 0}, 'label': {'type': 'string', 'description': 'Optional part name'}, 'length': {'type': 'number', 'description': 'Cut length', 'exclusiveMinimum': 0}}}, 'minItems': 1, 'description': 'Parts to cut'}, 'stock_count': {'type': 'integer', 'default': 1, 'maximum': 9007199254740991, 'description': 'How many stock bars are available', 'exclusiveMinimum': 0}, 'stock_length': {'type': 'number', 'description': 'Length of one stock bar', 'exclusiveMinimum': 0}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['length'], 'properties': {'unit': {'enum': ['metric', 'imperial'], 'type': 'string', 'default': 'metric', 'description': 'metric: diameters in cm, length in m; imperial: in and ft'}, 'length': {'type': 'number', 'exclusiveMinimum': 0}, 'method': {'enum': ['huber', 'smalian', 'newton'], 'type': 'string', 'default': 'huber'}, 'diameter_mid': {'type': 'number', 'minimum': 0, 'description': 'Mid-length diameter (huber/newton)'}, 'diameter_large': {'type': 'number', 'minimum': 0, 'description': 'Large-end diameter (smalian/newton)'}, 'diameter_small': {'type': 'number', 'minimum': 0, 'description': 'Small-end diameter (smalian/newton)'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['species', 'thickness_mm', 'width_mm', 'length_m'], 'properties': {'qty': {'type': 'integer', 'default': 1, 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, 'species': {'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', 'description': 'Wood species key'}, 'length_m': {'type': 'number', 'exclusiveMinimum': 0}, 'moisture': {'enum': ['dry', 'fresh'], 'type': 'string', 'default': 'dry', 'description': 'fresh (green) wood uses 1.5x density (+50% weight)'}, 'width_mm': {'type': 'number', 'exclusiveMinimum': 0}, 'thickness_mm': {'type': 'number', 'exclusiveMinimum': 0}, 'custom_density_kg_m3': {'type': 'number', 'minimum': 0, 'description': 'Overrides species density'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['stages'], 'properties': {'stages': {'type': 'array', 'items': {'type': 'object', 'required': ['yield_pct'], 'properties': {'label': {'type': 'string', 'description': 'Optional stage name'}, 'yield_pct': {'type': 'number', 'description': 'Share of stage input that becomes usable output, %', 'exclusiveMinimum': 0}}}, 'minItems': 1, 'description': 'Production stages in process order'}, 'target_output_m3': {'type': 'number', 'minimum': 0, 'description': 'Finished volume wanted, m3 (reverse mode)'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['profile', 'material', 'length_m'], 'properties': {'qty': {'type': 'integer', 'default': 1, 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, 'od_mm': {'type': 'number', 'minimum': 0, 'description': 'pipe/round-bar: outer diameter'}, 'web_mm': {'type': 'number', 'minimum': 0, 'description': 'beam: web thickness'}, 'profile': {'enum': ['pipe', 'round-bar', 'square-tube', 'rect-tube', 'flat-bar', 'angle', 'beam'], 'type': 'string'}, 'wall_mm': {'type': 'number', 'minimum': 0, 'description': 'pipe/tubes: wall thickness'}, 'length_m': {'type': 'number', 'description': 'Length in meters', 'exclusiveMinimum': 0}, 'material': {'enum': ['steel', 'stainless', 'aluminum', 'copper', 'brass'], 'type': 'string'}, 'width_mm': {'type': 'number', 'minimum': 0, 'description': 'rect-tube/flat-bar/angle/beam: width'}, 'height_mm': {'type': 'number', 'minimum': 0, 'description': 'rect-tube/beam: height'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['mode'], 'properties': {'mode': {'enum': ['corner', 'sides', 'crown'], 'type': 'string', 'description': 'Calculation mode'}, 'sides': {'type': 'integer', 'maximum': 120, 'minimum': 3, 'description': 'sides mode: number of sides of the frame/polygon'}, 'corner_angle_deg': {'type': 'number', 'description': 'corner mode: interior corner angle, e.g. 90 or 135', 'exclusiveMaximum': 180, 'exclusiveMinimum': 0}, 'spring_angle_deg': {'type': 'number', 'description': 'crown mode: spring angle, typically 38 or 45', 'exclusiveMaximum': 90, 'exclusiveMinimum': 0}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'mode': {'enum': ['sample', 'drying', 'max'], 'type': 'string', 'default': 'sample'}, 'basis': {'enum': ['od', 'wb'], 'type': 'string', 'default': 'od'}, 'dry_mass': {'type': 'number', 'minimum': 0, 'description': 'Oven-dry mass of sample (sample mode)'}, 'wet_mass': {'type': 'number', 'minimum': 0, 'description': 'Wet mass of sample (sample mode)'}, 'end_mc_pct': {'type': 'number', 'minimum': 0, 'description': 'Target MC after drying, %'}, 'start_mass': {'type': 'number', 'minimum': 0, 'description': 'Mass at start of drying (drying mode)'}, 'start_mc_pct': {'type': 'number', 'minimum': 0, 'description': 'MC at start of drying, %'}, 'basic_density_kg_m3': {'type': 'number', 'minimum': 0, 'description': 'Basic density kg/m³ for MCmax/MCsink (max mode)'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['area_m2', 'coats'], 'properties': {'coats': {'type': 'integer', 'maximum': 10, 'minimum': 1, 'description': 'Number of coats'}, 'area_m2': {'type': 'number', 'description': 'Surface to coat, m2 (flat projected area)', 'exclusiveMinimum': 0}, 'solids_pct': {'type': 'number', 'minimum': 0, 'description': 'Volume solids % (mode B)'}, 'dft_microns': {'type': 'number', 'minimum': 0, 'description': 'Target dry film thickness um (mode B)'}, 'price_per_l': {'type': 'number', 'minimum': 0, 'description': 'Coating price per litre'}, 'shape_extra_pct': {'type': 'number', 'default': 0, 'maximum': 100, 'minimum': 0, 'description': 'Extra % for 3D surfaces'}, 'transfer_eff_pct': {'type': 'number', 'minimum': 0, 'description': 'Transfer efficiency % (mode B; HVLP ~70)'}, 'coverage_m2_per_l': {'type': 'number', 'minimum': 0, 'description': 'Data-sheet coverage m2/L (mode A)'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['lines'], 'properties': {'lines': {'type': 'array', 'items': {'type': 'object', 'required': ['diameter_mm', 'length_m'], 'properties': {'qty': {'type': 'integer', 'default': 1, 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, 'length_m': {'type': 'number', 'exclusiveMinimum': 0}, 'diameter_mm': {'type': 'number', 'description': 'Bar diameter, e.g. 12 or 15.875 (#5)', 'exclusiveMinimum': 0}}}, 'minItems': 1, 'description': 'Rebar lines'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['finished_mc_pct', 'sawn_mc_pct', 'direction'], 'properties': {'mode': {'enum': ['forward', 'reverse'], 'type': 'string', 'default': 'forward'}, 'kerf_mm': {'type': 'number', 'minimum': 0, 'description': 'Saw kerf, mm (default 2.2 band)'}, 'species': {'type': 'string', 'description': "Species key for shrinkage (e.g. 'white-oak')"}, 'rough_mm': {'type': 'number', 'minimum': 0, 'description': 'Rough-sawn dimension mm (reverse mode)'}, 'direction': {'enum': ['tangential', 'radial'], 'type': 'string'}, 'planing_mm': {'type': 'number', 'minimum': 0, 'description': 'Planing allowance per face, mm (default 2.5)'}, 'finished_mm': {'type': 'number', 'minimum': 0, 'description': 'Finished dimension mm (forward mode)'}, 'sawn_mc_pct': {'type': 'number', 'description': 'MC at which the wood is sawn, %', 'exclusiveMinimum': 0}, 'custom_fsp_pct': {'type': 'number', 'minimum': 0, 'description': 'Custom FSP %, default 30'}, 'finished_mc_pct': {'type': 'number', 'description': 'Target finished MC, %', 'exclusiveMinimum': 0}, 'custom_shrink_od_pct': {'type': 'number', 'minimum': 0, 'description': 'Custom S_od % (used if no species)'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['diameter', 'cutting_speed'], 'properties': {'unit': {'enum': ['metric', 'imperial'], 'type': 'string', 'default': 'metric', 'description': 'Unit system'}, 'diameter': {'type': 'number', 'description': 'Tool/workpiece diameter (metric: mm, imperial: inch)', 'exclusiveMinimum': 0}, 'cutting_speed': {'type': 'number', 'description': 'Cutting speed (metric: m/min, imperial: SFM)', 'exclusiveMinimum': 0}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['input_volume_m3', 'output_volume_m3'], 'properties': {'actual_bf': {'type': 'number', 'minimum': 0, 'description': 'Optional: board feet actually sawn â\x80\x94 enables the overrun calculation'}, 'log_rule_bf': {'type': 'number', 'minimum': 0, 'description': 'Optional: board feet predicted by the log rule (Doyle/Scribner/International)'}, 'input_volume_m3': {'type': 'number', 'description': 'Roundwood volume in (m3)', 'exclusiveMinimum': 0}, 'output_volume_m3': {'type': 'number', 'description': 'Sawn lumber volume out (m3)', 'exclusiveMinimum': 0}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['unit', 'stock_width', 'stock_height', 'pieces'], 'properties': {'kerf': {'type': 'number', 'default': 0, 'minimum': 0, 'description': 'Blade/saw width consumed by each cut'}, 'unit': {'enum': ['mm', 'cm', 'm', 'in', 'ft'], 'type': 'string', 'description': 'Unit for all dimensions'}, 'pieces': {'type': 'array', 'items': {'type': 'object', 'required': ['width', 'height'], 'properties': {'qty': {'type': 'integer', 'default': 1, 'maximum': 9007199254740991, 'description': 'How many of this piece', 'exclusiveMinimum': 0}, 'label': {'type': 'string', 'description': 'Optional piece name'}, 'width': {'type': 'number', 'description': 'Piece width', 'exclusiveMinimum': 0}, 'height': {'type': 'number', 'description': 'Piece height', 'exclusiveMinimum': 0}, 'rotatable': {'type': 'boolean', 'default': True, 'description': 'Allow 90-degree rotation (false = grain lock)'}}}, 'minItems': 1, 'description': 'Pieces to cut'}, 'stocks': {'type': 'array', 'items': {'type': 'object', 'required': ['width', 'height', 'count'], 'properties': {'count': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'Sheets available of this size', 'exclusiveMinimum': 0}, 'width': {'type': 'number', 'description': 'Sheet width', 'exclusiveMinimum': 0}, 'height': {'type': 'number', 'description': 'Sheet height', 'exclusiveMinimum': 0}}}, 'maxItems': 6, 'description': 'Optional mixed stock sizes; replaces stock_width/stock_height/stock_count when given'}, 'trim_x': {'type': 'number', 'default': 0, 'minimum': 0, 'description': 'Symmetric trim removed from left/right sheet edges (damaged edges)'}, 'trim_y': {'type': 'number', 'default': 0, 'minimum': 0, 'description': 'Symmetric trim removed from top/bottom sheet edges'}, 'stock_count': {'type': 'integer', 'default': 1, 'maximum': 9007199254740991, 'description': 'How many sheets are available', 'exclusiveMinimum': 0}, 'stock_width': {'type': 'number', 'description': 'Sheet width', 'exclusiveMinimum': 0}, 'stock_height': {'type': 'number', 'description': 'Sheet height', 'exclusiveMinimum': 0}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'qty': {'type': 'integer', 'default': 1, 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, 'mode': {'enum': ['gauge', 'mm'], 'type': 'string', 'default': 'gauge', 'description': 'gauge: from gauge number; mm: from thickness'}, 'gauge': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'gauge mode: gauge number, e.g. 16', 'exclusiveMinimum': 0}, 'material': {'enum': ['steel', 'stainless', 'aluminum', 'galvanized'], 'type': 'string', 'default': 'steel'}, 'width_mm': {'type': 'number', 'default': 1000, 'minimum': 0}, 'length_mm': {'type': 'number', 'default': 2000, 'minimum': 0}, 'thickness_mm': {'type': 'number', 'minimum': 0, 'description': 'mm mode: thickness in mm'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['volume_m3', 'tonnes'], 'properties': {'tonnes': {'type': 'number', 'description': 'Total cargo mass in metric tonnes', 'exclusiveMinimum': 0}, 'volume_m3': {'type': 'number', 'description': 'Total cargo volume in cubic metres', 'exclusiveMinimum': 0}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['room_width_m', 'room_length_m', 'tile_width_mm', 'tile_length_mm'], 'properties': {'layout': {'enum': ['straight', 'offset', 'diagonal', 'herringbone', 'large-format', 'natural-stone'], 'type': 'string', 'default': 'straight', 'description': 'Layout pattern (sets default waste factor)'}, 'box_size': {'type': 'integer', 'default': 10, 'maximum': 9007199254740991, 'description': 'Tiles per box', 'exclusiveMinimum': 0}, 'grout_mm': {'type': 'number', 'default': 3, 'minimum': 0}, 'price_per_m2': {'type': 'number', 'minimum': 0}, 'room_width_m': {'type': 'number', 'exclusiveMinimum': 0}, 'price_per_box': {'type': 'number', 'minimum': 0}, 'room_length_m': {'type': 'number', 'exclusiveMinimum': 0}, 'tile_width_mm': {'type': 'number', 'exclusiveMinimum': 0}, 'waste_percent': {'type': 'number', 'minimum': 0, 'description': 'Overrides the layout default'}, 'tile_length_mm': {'type': 'number', 'exclusiveMinimum': 0}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['span_mm', 'width_mm', 'height_mm', 'grade'], 'properties': {'grade': {'enum': ['C16', 'C18', 'C24', 'C30', 'C35', 'C40', 'D24', 'D30', 'D40'], 'type': 'string', 'description': 'Timber grade (EN 338)'}, 'span_mm': {'type': 'number', 'description': 'Clear span between supports in mm', 'exclusiveMinimum': 0}, 'width_mm': {'type': 'number', 'description': 'Beam width b in mm', 'exclusiveMinimum': 0}, 'height_mm': {'type': 'number', 'description': 'Beam depth h in mm (strong axis)', 'exclusiveMinimum': 0}, 'load_type': {'enum': ['udl', 'point'], 'type': 'string', 'default': 'udl', 'description': 'Load type of interest'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['value', 'from'], 'properties': {'qty': {'type': 'integer', 'default': 1, 'maximum': 9007199254740991, 'description': 'Multiplier (number of lots)', 'exclusiveMinimum': 0}, 'from': {'enum': ['m3', 'ft3', 'bf', 'mbf', 'hft3', 'hm3', 'ht'], 'type': 'string', 'description': 'Source unit'}, 'price': {'type': 'number', 'minimum': 0, 'description': 'Optional price per price_per unit'}, 'value': {'type': 'number', 'description': 'Quantity in the source unit', 'exclusiveMinimum': 0}, 'price_per': {'enum': ['m3', 'ft3', 'bf', 'mbf', 'hft3', 'hm3', 'ht'], 'type': 'string', 'default': 'mbf'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['wall_width_m', 'wall_height_m'], 'properties': {'openings_m2': {'type': 'number', 'default': 0, 'minimum': 0, 'description': 'Area of doors/windows to subtract'}, 'roll_preset': {'enum': ['us-single', 'us-double', 'eu', 'commercial54'], 'type': 'string'}, 'roll_width_m': {'type': 'number', 'minimum': 0, 'description': 'Custom roll width (overrides preset)'}, 'wall_width_m': {'type': 'number', 'exclusiveMinimum': 0}, 'roll_length_m': {'type': 'number', 'minimum': 0, 'description': 'Custom roll length (overrides preset)'}, 'wall_height_m': {'type': 'number', 'exclusiveMinimum': 0}, 'pattern_repeat_m': {'type': 'number', 'default': 0, 'minimum': 0, 'description': 'Pattern repeat length'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['temp_c'], 'properties': {'mode': {'enum': ['emc', 'reverse'], 'type': 'string', 'default': 'emc'}, 'branch': {'enum': ['desorption', 'adsorption'], 'type': 'string', 'default': 'desorption'}, 'rh_pct': {'type': 'number', 'minimum': 0, 'description': 'Relative humidity, 0â\x80\x93100 (emc mode)'}, 'temp_c': {'type': 'number', 'description': 'Air temperature, °C', 'exclusiveMinimum': 0}, 'target_mc_pct': {'type': 'number', 'minimum': 0, 'description': 'Target MC % (reverse mode)'}}}
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['start_mc_pct', 'end_mc_pct', 'dimension_mm', 'direction'], 'properties': {'species': {'type': 'string', 'description': "Species key, e.g. 'white-oak', 'rubberwood'"}, 'direction': {'enum': ['tangential', 'radial', 'volumetric'], 'type': 'string'}, 'end_mc_pct': {'type': 'number', 'description': 'Target MC, %, must be â\x89¤ start_mc_pct', 'exclusiveMinimum': 0}, 'dimension_mm': {'type': 'number', 'description': 'Original dimension in mm (width, thickness, or volume)', 'exclusiveMinimum': 0}, 'start_mc_pct': {'type': 'number', 'description': 'Starting MC, %', 'exclusiveMinimum': 0}, 'custom_fsp_pct': {'type': 'number', 'minimum': 0, 'description': 'Custom FSP %, default 30 (22 for teak)'}, 'custom_shrink_od_pct': {'type': 'number', 'minimum': 0, 'description': 'Custom greenâ\x86\x92OD shrinkage %, used if no species'}}}
최근 도구 변경
유사한 MCP 서버
freedom-mcp
Supports company operations through commitments, teams, agents, customer evidence, leads, content workflows, spreadsheets, commer…
Calcgrid
Runs general-purpose calculators for loans, dates, lunar and solar terms, time zones, units, and a larger catalog of specialized …
Local MCP
Connects AI assistants to Mac email, calendars, reminders, notes, tasks, files, Microsoft 365, Todoist, spreadsheets, and daily b…
Stable Baseline
Manages company documents, knowledge graphs, whiteboards, projects, plans, tasks, teams, and improvement workflows.
hopi
Provides read-only calculators, converters, validators, text utilities, encoders, and generators for everyday and technical tasks.
Clink Forge
Provides pay-per-call access to attested government datasets, primarily CDC and HHS health data plus EPA air-quality observations.
mu
Supports personal and collaborative tasks including web browsing, app creation, blogs, bookmarks, discussions, and contact manage…
John's Essentials
Analyzes and converts documents, images, audio, video, archives, data files, and other media formats, with PDF chat and file insp…