Kubova — 3D Container Loading
What this MCP does
Computes three-dimensional cargo placements in shipping containers and on pallets, with capacity estimates and rendered reports.
Tools
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['product'], 'properties': {'product': {'type': 'object', 'required': ['cartons'], 'properties': {'name': {'type': 'string', 'maxLength': 200}, 'cartons': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'lengthCm', 'widthCm', 'heightCm', 'weightKg'], 'properties': {'name': {'type': 'string', 'maxLength': 200}, 'widthCm': {'type': 'number', 'maximum': 5000, 'exclusiveMinimum': 0}, 'heightCm': {'type': 'number', 'maximum': 5000, 'exclusiveMinimum': 0}, 'lengthCm': {'type': 'number', 'maximum': 5000, 'exclusiveMinimum': 0}, 'weightKg': {'type': 'number', 'maximum': 1000000, 'minimum': 0}, 'qtyPerSet': {'type': 'integer', 'default': 1, 'maximum': 1000000, 'description': 'How many of THIS carton make up one set/product. Default 1.', 'exclusiveMinimum': 0}, 'allowRotation': {'type': 'boolean', 'default': True}, 'allowStacking': {'type': 'boolean', 'default': True}}, 'additionalProperties': False}, 'maxItems': 500, 'minItems': 1}}, 'additionalProperties': False}, 'containers': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'name', 'innerLengthCm', 'innerWidthCm', 'innerHeightCm', 'doorWidthCm', 'doorHeightCm', 'maxPayloadKg'], 'properties': {'id': {'type': 'string', 'maxLength': 200}, 'name': {'type': 'string', 'maxLength': 200}, 'doorWidthCm': {'type': 'number', 'maximum': 5000, 'exclusiveMinimum': 0}, 'doorHeightCm': {'type': 'number', 'maximum': 5000, 'exclusiveMinimum': 0}, 'innerWidthCm': {'type': 'number', 'maximum': 5000, 'exclusiveMinimum': 0}, 'maxPayloadKg': {'type': 'number', 'maximum': 1000000000, 'exclusiveMinimum': 0}, 'innerHeightCm': {'type': 'number', 'maximum': 5000, 'exclusiveMinimum': 0}, 'innerLengthCm': {'type': 'number', 'maximum': 5000, 'exclusiveMinimum': 0}}, 'additionalProperties': False}, 'maxItems': 20, 'description': "Containers to evaluate. Omit to use the standard catalogue (20' DC, 40' DC, 40' HC)."}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['cargos'], 'properties': {'cargos': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'name', 'lengthCm', 'widthCm', 'heightCm', 'quantity', 'weightKg'], 'properties': {'id': {'type': 'string', 'maxLength': 200}, 'name': {'type': 'string', 'maxLength': 200}, 'color': {'type': 'string', 'default': '#3b82f6'}, 'shape': {'enum': ['box', 'cylinder'], 'type': 'string', 'default': 'box'}, 'widthCm': {'type': 'number', 'maximum': 5000, 'exclusiveMinimum': 0}, 'heightCm': {'type': 'number', 'maximum': 5000, 'exclusiveMinimum': 0}, 'lengthCm': {'type': 'number', 'maximum': 5000, 'exclusiveMinimum': 0}, 'quantity': {'type': 'integer', 'maximum': 1000000, 'description': 'Number of identical pieces of this SKU.', 'exclusiveMinimum': 0}, 'weightKg': {'type': 'number', 'minimum': 0, 'description': 'Weight of ONE piece in kg â\x80\x94 NOT the row total. If a packing list shows both "weight/piece" and "weight total", use weight/piece (total = quantity Ã\x97 weightKg).'}, 'diameterCm': {'type': 'number', 'maximum': 5000, 'exclusiveMinimum': 0}, 'noOverstack': {'type': 'boolean', 'description': 'Nothing may rest on top of this SKU.'}, 'loadingOrder': {'enum': ['optimized', 'rear', 'door'], 'type': 'string', 'description': 'Placement priority: rear = deepest (unloaded last), door = closest to the door (unloaded first).'}, 'noUnderstack': {'type': 'boolean', 'description': 'Floor only â\x80\x94 this SKU may not sit on other pieces.'}, 'orientations': {'type': 'array', 'items': {'enum': ['standard-0', 'standard-90', 'turnup-0', 'turnup-90', 'turnside-0', 'turnside-90'], 'type': 'string'}, 'description': 'Explicit allowed-pose subset; overrides allowRotation when set. standard = upright, turnup/turnside = tipped onto a face; 0/90 = yaw.'}, 'allowRotation': {'type': 'boolean', 'default': True}, 'allowStacking': {'type': 'boolean', 'default': True}, 'includeInLoading': {'type': 'boolean', 'default': True}}, 'additionalProperties': False}, 'maxItems': 500, 'minItems': 1}, 'pallet': {'type': 'object', 'required': ['id', 'name', 'lengthCm', 'widthCm', 'baseHeightCm', 'maxStackHeightCm', 'maxPayloadKg', 'tareWeightKg'], 'properties': {'id': {'type': 'string', 'maxLength': 200}, 'name': {'type': 'string', 'maxLength': 200}, 'widthCm': {'type': 'number', 'maximum': 5000, 'description': 'Pallet footprint width (cm).', 'exclusiveMinimum': 0}, 'lengthCm': {'type': 'number', 'maximum': 5000, 'description': 'Pallet footprint length (cm).', 'exclusiveMinimum': 0}, 'baseHeightCm': {'type': 'number', 'maximum': 5000, 'minimum': 0, 'description': 'Pallet base self-height (cm), added below the cargo stack.'}, 'maxPayloadKg': {'type': 'number', 'maximum': 1000000, 'description': 'Max cargo weight per pallet (kg).', 'exclusiveMinimum': 0}, 'tareWeightKg': {'type': 'number', 'maximum': 1000000, 'minimum': 0, 'description': 'Pallet self-weight (kg), added to container payload.'}, 'maxStackHeightCm': {'type': 'number', 'maximum': 5000, 'description': 'Max cargo stack height ON the pallet (cm), excluding the base.', 'exclusiveMinimum': 0}}, 'description': 'The pallet to stack onto. Required when loadingMode is "pallet".', 'additionalProperties': False}, 'result': {'type': 'object', 'description': 'OPTIONAL but strongly recommended: the exact `result` object returned by a prior pack_containers call, so the report renders THAT plan instead of repacking.', 'additionalProperties': {}}, 'options': {'type': 'object', 'properties': {'deepOptimize': {'type': 'boolean', 'description': 'Pallet mode only: run the exact optimizer for a tighter pallet plan (slower; Pro/Team plans).'}, 'maxContainers': {'type': 'integer', 'maximum': 1000, 'exclusiveMinimum': 0}, 'loadingDirection': {'enum': ['floor-to-top', 'right-to-left'], 'type': 'string'}}, 'additionalProperties': False}, 'container': {'type': 'object', 'required': ['id', 'name', 'innerLengthCm', 'innerWidthCm', 'innerHeightCm', 'doorWidthCm', 'doorHeightCm', 'maxPayloadKg'], 'properties': {'id': {'type': 'string', 'maxLength': 200}, 'name': {'type': 'string', 'maxLength': 200}, 'doorWidthCm': {'type': 'number', 'maximum': 5000, 'exclusiveMinimum': 0}, 'doorHeightCm': {'type': 'number', 'maximum': 5000, 'exclusiveMinimum': 0}, 'innerWidthCm': {'type': 'number', 'maximum': 5000, 'exclusiveMinimum': 0}, 'maxPayloadKg': {'type': 'number', 'maximum': 1000000000, 'exclusiveMinimum': 0}, 'innerHeightCm': {'type': 'number', 'maximum': 5000, 'exclusiveMinimum': 0}, 'innerLengthCm': {'type': 'number', 'maximum': 5000, 'exclusiveMinimum': 0}}, 'additionalProperties': False}, 'containers': {'type': 'array', 'items': {'$ref': '#/properties/container'}, 'maxItems': 20}, 'loadingMode': {'enum': ['bulk', 'pallet'], 'type': 'string', 'description': "'bulk' (default) loads cartons straight into the container. 'pallet' first stacks cartons onto pallets, then loads the pallets â\x80\x94 requires the `pallet` field."}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['cargos'], 'properties': {'cargos': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'name', 'lengthCm', 'widthCm', 'heightCm', 'quantity', 'weightKg'], 'properties': {'id': {'type': 'string', 'maxLength': 200}, 'name': {'type': 'string', 'maxLength': 200}, 'color': {'type': 'string', 'default': '#3b82f6'}, 'shape': {'enum': ['box', 'cylinder'], 'type': 'string', 'default': 'box'}, 'widthCm': {'type': 'number', 'maximum': 5000, 'exclusiveMinimum': 0}, 'heightCm': {'type': 'number', 'maximum': 5000, 'exclusiveMinimum': 0}, 'lengthCm': {'type': 'number', 'maximum': 5000, 'exclusiveMinimum': 0}, 'quantity': {'type': 'integer', 'maximum': 1000000, 'description': 'Number of identical pieces of this SKU.', 'exclusiveMinimum': 0}, 'weightKg': {'type': 'number', 'minimum': 0, 'description': 'Weight of ONE piece in kg â\x80\x94 NOT the row total. If a packing list shows both "weight/piece" and "weight total", use weight/piece (total = quantity Ã\x97 weightKg).'}, 'diameterCm': {'type': 'number', 'maximum': 5000, 'exclusiveMinimum': 0}, 'noOverstack': {'type': 'boolean', 'description': 'Nothing may rest on top of this SKU.'}, 'loadingOrder': {'enum': ['optimized', 'rear', 'door'], 'type': 'string', 'description': 'Placement priority: rear = deepest (unloaded last), door = closest to the door (unloaded first).'}, 'noUnderstack': {'type': 'boolean', 'description': 'Floor only â\x80\x94 this SKU may not sit on other pieces.'}, 'orientations': {'type': 'array', 'items': {'enum': ['standard-0', 'standard-90', 'turnup-0', 'turnup-90', 'turnside-0', 'turnside-90'], 'type': 'string'}, 'description': 'Explicit allowed-pose subset; overrides allowRotation when set. standard = upright, turnup/turnside = tipped onto a face; 0/90 = yaw.'}, 'allowRotation': {'type': 'boolean', 'default': True}, 'allowStacking': {'type': 'boolean', 'default': True}, 'includeInLoading': {'type': 'boolean', 'default': True}}, 'additionalProperties': False}, 'maxItems': 500, 'minItems': 1}, 'pallet': {'type': 'object', 'required': ['id', 'name', 'lengthCm', 'widthCm', 'baseHeightCm', 'maxStackHeightCm', 'maxPayloadKg', 'tareWeightKg'], 'properties': {'id': {'type': 'string', 'maxLength': 200}, 'name': {'type': 'string', 'maxLength': 200}, 'widthCm': {'type': 'number', 'maximum': 5000, 'description': 'Pallet footprint width (cm).', 'exclusiveMinimum': 0}, 'lengthCm': {'type': 'number', 'maximum': 5000, 'description': 'Pallet footprint length (cm).', 'exclusiveMinimum': 0}, 'baseHeightCm': {'type': 'number', 'maximum': 5000, 'minimum': 0, 'description': 'Pallet base self-height (cm), added below the cargo stack.'}, 'maxPayloadKg': {'type': 'number', 'maximum': 1000000, 'description': 'Max cargo weight per pallet (kg).', 'exclusiveMinimum': 0}, 'tareWeightKg': {'type': 'number', 'maximum': 1000000, 'minimum': 0, 'description': 'Pallet self-weight (kg), added to container payload.'}, 'maxStackHeightCm': {'type': 'number', 'maximum': 5000, 'description': 'Max cargo stack height ON the pallet (cm), excluding the base.', 'exclusiveMinimum': 0}}, 'description': 'The pallet to stack onto. Required when loadingMode is "pallet".', 'additionalProperties': False}, 'options': {'type': 'object', 'properties': {'deepOptimize': {'type': 'boolean', 'description': 'Pallet mode only: run the exact optimizer for a tighter pallet plan (slower; Pro/Team plans).'}, 'maxContainers': {'type': 'integer', 'maximum': 1000, 'exclusiveMinimum': 0}, 'loadingDirection': {'enum': ['floor-to-top', 'right-to-left'], 'type': 'string'}}, 'additionalProperties': False}, 'container': {'type': 'object', 'required': ['id', 'name', 'innerLengthCm', 'innerWidthCm', 'innerHeightCm', 'doorWidthCm', 'doorHeightCm', 'maxPayloadKg'], 'properties': {'id': {'type': 'string', 'maxLength': 200}, 'name': {'type': 'string', 'maxLength': 200}, 'doorWidthCm': {'type': 'number', 'maximum': 5000, 'exclusiveMinimum': 0}, 'doorHeightCm': {'type': 'number', 'maximum': 5000, 'exclusiveMinimum': 0}, 'innerWidthCm': {'type': 'number', 'maximum': 5000, 'exclusiveMinimum': 0}, 'maxPayloadKg': {'type': 'number', 'maximum': 1000000000, 'exclusiveMinimum': 0}, 'innerHeightCm': {'type': 'number', 'maximum': 5000, 'exclusiveMinimum': 0}, 'innerLengthCm': {'type': 'number', 'maximum': 5000, 'exclusiveMinimum': 0}}, 'additionalProperties': False}, 'containers': {'type': 'array', 'items': {'$ref': '#/properties/container'}, 'maxItems': 20}, 'loadingMode': {'enum': ['bulk', 'pallet'], 'type': 'string', 'description': "'bulk' (default) loads cartons straight into the container. 'pallet' first stacks cartons onto pallets, then loads the pallets â\x80\x94 requires the `pallet` field."}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
Recent tool changes
Similar MCP servers
AdButler
Manages AdButler advertisers, campaigns, ad items, audiences, zones, creatives, catalogs, and advertising reports.
Duvo MCP
Provides governed retail and CPG operations for cases, queues, approvals, automations, process documentation, integrations, and a…
Lovie Company Formation
Supports company formation and business administration with bank accounts, cards, invoicing, bookkeeping, accounting periods, and…
freedom-mcp
Supports company operations through commitments, teams, agents, customer evidence, leads, content workflows, spreadsheets, commer…
独行录 / opcmenu
Supports founder and company discovery, collaboration goals and tasks, events and signups, networking, messaging, profiles, produ…
Meta Council
Provides governed workflows for consulting, outreach, sales deals, invoices, marketing campaigns, content approvals, accounting a…
synter-ads
Manages cross-platform advertising campaigns, audiences, tracking, creative, landing pages, campaign audits, technology intellige…
synter-ads
Manages cross-platform advertising campaigns, audiences, tracking, creative, landing pages, campaign audits, technology intellige…