Skip to main content
Glama
SoapyRED

FreightUtils MCP Server

ldm_calculator

Read-onlyIdempotent

Calculate loading metres (LDM) for European road freight, showing how much trailer length a pallet load occupies. Use standard pallet presets or custom dimensions.

Instructions

Calculate loading metres (LDM) for European road freight — how much trailer length a pallet load occupies. 1 LDM = 1 linear metre of a 2.4m-wide trailer; a standard artic is 13.6 LDM.

Provide a pallet preset OR custom length_mm + width_mm — omitting both errors with a usage hint. Behavior: deterministic; stackable=true with stack_height 2 or 3 divides the floor footprint accordingly; fits reports whether the load fits the chosen vehicle's LENGTH (give weight_kg to also see total_weight_kg against the vehicle's max payload); utilisation_percent is of the vehicle's length. Rate-limited (anonymous use: 25 requests/day per IP): a 429 error body carries retry_after_seconds and a Retry-After header — back off and retry, or call get_subscribe_link for higher limits.

Returns: ldm, vehicle (name, length_m, max_payload_kg), utilisation_percent, pallet_spaces (used/available), total_weight_kg, fits and warnings under result, plus confidence, _source and citation (the FreightUtils v1 response envelope).

Related: vehicle_lookup (the trailer specs behind the vehicle presets), pallet_fitting_calculator (boxes onto one pallet), consignment_calculator (mixed lines including LDM).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
palletNoPallet preset: euro=1200x800mm, uk=1200x1000mm, half=800x600mm, quarter=600x400mm. Provide this OR length_mm + width_mm.
vehicleNoVehicle preset: artic = 13.6m curtainsider (default), rigid10 = DEPRECATED, removal in 3.0.0 (it still answers with the same figures and returns a DEPRECATED advisory in warnings[]; its 10 m length is published by no manufacturer for any rigid — use custom with vehicle_length_m, or artic), rigid75 = 7.5t rigid, luton = 3.5t Luton van, us53 = 53ft US/Canada trailer, us48 = 48ft US trailer, or custom. EU presets divide by the 2.40 m loading-metre convention; US trailers divide by their own 2.591 m internal width, because loading metres are not the North American pricing unit.
quantityNoNumber of pallets. Default: 1.
width_mmNoCustom pallet width in millimetres. Example: 980.
length_mmNoCustom pallet length in millimetres (use with width_mm instead of a preset). Example: 1140.
stackableNoWhether pallets can be double/triple-stacked — halves (or thirds) the floor footprint. Default: false.
weight_kgNoWeight per pallet in kg — enables the payload side of the fits check.
stack_heightNoStack height when stackable: 2 or 3. Default: 2.
vehicle_length_mNoCustom vehicle load length in metres (required when vehicle=custom).

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
okYes
resultYes
_sourceYes
citationYes
validityNo
warningsNo
confidenceYes
blocking_errorsNo
envelope_versionYes
normalized_inputNo
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark readOnlyHint, idempotentHint, and destructiveHint=false, but the description adds substantial behavioral detail: deterministic behavior, stackable=true dividing floor footprint, fits checking against vehicle length, weight_kg enabling payload checks, and rate limiting with 429 error and retry_after_seconds. It also discloses the deprecated rigid10 vehicle and advisory warnings.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but well organized: definition, input rule, behavior, rate limit, return envelope, and related tools. Every sentence adds value without redundancy against the schema, and the structure front-loads the core concept before diving into details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 9-parameter calculator with an output schema, the description covers all necessary context: input modes, behavioral rules, error handling with rate limits, return structure (ldm, vehicle, utilisation_percent, pallet_spaces, total_weight_kg, fits, warnings, confidence, _source, citation), and related tools. This is sufficient for an agent to select and invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but the description enriches parameter meaning beyond the schema: it explains pallet preset dimensions, US vs EU width conventions, stackable/stack_height impact on footprint, and that utilisation_percent is based on vehicle length. This goes far beyond the baseline of simply restating parameter descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description begins with a specific action and resource: 'Calculate loading metres (LDM) for European road freight — how much trailer length a pallet load occupies.' It distinguishes itself from siblings by naming vehicle_lookup, pallet_fitting_calculator, and consignment_calculator as related but different tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly states the input requirement (pallet preset OR custom length_mm + width_mm) and warns that omitting both errors. It provides clear alternatives via the Related list, each with a parenthetical distinction (e.g., pallet_fitting_calculator for boxes onto one pallet), and explains when US vehicle presets differ from EU conventions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/SoapyRED/freightutils-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server