Skip to main content
Glama

Logistics: Update freight order

logistics_update_freight_order
Destructive

Edit a freight order. Send ONLY the fields you are changing — the server reads the order first and merges your changes onto it, so untouched fields keep their values. 'status' moves the order (New → Assigned → InProgress → Completed, or Cancelled); cancelling REQUIRES 'cancellation_reason', and Completed requires the order to have actual delivered tonnage recorded on its trips. Requires confirmation. CONFIRMATION: this tool is PROPOSED, never performed directly. You get status='confirmation_required' with an action_id and a plan_token, and the write happens only after confirm_action.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "freight_order_id": "<freight_order_id>"
    },
    "name": "logistics_update_freight_order"
  }
}

Input Schema

NameRequiredDescriptionDefault
notesNo
statusNoOne of: New, Assigned, InProgress, Completed, Cancelled.
cargo_idNo
customerNo
end_houseNo
end_phoneNo
end_placeNo
load_dateNoISO date (YYYY-MM-DD) or datetime.
load_typeNoVehicle body type. Prefer a code from the company's «Тип машини» book (Grain, Dump, Tent, Reefer, Flatbed, Container, Tanker) — loss-norm resolution matches this against the norm's transportType.
plan_tonsNo
end_regionNo
end_streetNo
load_pointNo
order_dateNoISO date (YYYY-MM-DD) or datetime.
distance_kmNo
end_contactNo
end_countryNo
start_houseNo
start_phoneNo
start_placeNo
unload_dateNoISO date (YYYY-MM-DD) or datetime.
end_districtNo
end_latitudeNo
end_localityNo
loss_percentNo
rate_per_tonNo
start_regionNo
start_streetNo
unload_pointNo
end_longitudeNo
start_contactNo
start_countryNo
start_districtNo
start_latitudeNo
start_localityNo
vehicles_countNo
freight_rate_idNo
start_longitudeNo
freight_order_idYes
cancellation_reasonNo
customer_rate_per_tonNo
estimated_cost_per_tonNo
customer_organization_idNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.1/5.0
Behavior5/5

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

Goes well beyond the annotations: it discloses the read-merge-write behavior, the ordered status workflow, the mandatory 'cancellation_reason' for cancel, the delivered-tonnage prerequisite for Completed, and the full two-phase confirmation protocol (status='confirmation_required', action_id, plan_token, write only after confirm_action). That is exactly the kind of destructive-write context the destructiveHint annotation alone cannot convey.

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

Conciseness4/5

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

Front-loads the core semantics ('Send ONLY the fields you are changing') and then layers the status rules and the confirmation block in a readable order. Dense for three sentences but essentially every clause carries operational information, with no filler.

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

Completeness4/5

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

For a 43-parameter destructive mutation with no output schema, the description covers the critical unknowns: partial-update semantics, status legality, conditional required fields, and the confirmation round-trip including what the agent receives back. The only meaningful gap is that the bulk of the field set gets no per-field guidance.

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

Parameters3/5

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

With 43 parameters at 12% schema coverage, the description cannot realistically document everything, but it does add meaning for the two parameters that matter most: the status enum's transition rules and the conditional requirement on cancellation_reason. The remaining ~40 fields (addresses, coordinates, rates) are left entirely to often self-explanatory names, so compensation is partial rather than complete.

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

Purpose4/5

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

Specific verb+resource ('Edit a freight order') that reads clearly against create/get siblings, and it immediately clarifies the patch-style semantics rather than restating the title. It stops short of naming the create/get siblings that are the alternative, but the purpose is unambiguous.

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

Usage Guidelines4/5

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

Tells the caller the key selection rule — send only changed fields, omit everything else — which is the main way this differs from a full-update call. It also spells out the status transition path and the preconditions for Cancelled and Completed, giving concrete when-to-use context even though it doesn't route to a named alternative.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources