Skip to main content
Glama
machship-mcp

machship-mcp

Update Consignment Tracking Statuses

machship_update_consignment_statuses

Manually update consignment tracking statuses, such as marking a shipment delivered, by providing consignment IDs, status values, and optional UTC timestamps.

Instructions

Manually updates tracking statuses for consignments (e.g. mark as delivered).

Args:

  • statuses (array): Array of manual tracking status objects, each with consignmentId, status, and datetime

Input Schema

NameRequiredDescriptionDefault
statusesYesTracking status updates

Output Schema

NameRequiredDescriptionDefault
errorsNoValidation errors returned by Machship, if any
objectNoResponse payload from the Machship API

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changedv1.0.1
    • removedInput schema / properties / statuses / items / additionalProperties
      Removed value: -false
    • addedInput schema / properties / statuses / items / properties / consignmentId / maximum
      Added value: +9007199254740991
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": {},
      +  "properties": {
      +    "errors": {
      +      "anyOf": [
      +        {
      +          "items": {},
      +          "type": "array"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "description": "Validation errors returned by Machship, if any"
      +    },
      +    "object": {
      +      "description": "Response payload from the Machship API"
      +    }
      +  },
      +  "type": "object"
      +}
  2. First observedv1.0.0

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnly=false, destructive=false, idempotent=false and openWorld=true, so the safety profile is covered. The description adds the valuable manual-vs-automatic framing, but omits what an agent most needs for a non-idempotent mutation: whether a new status is appended to history or overwrites the current one, what happens on duplicate calls, and whether this changes downstream business state (reports, invoicing, reconciliation).

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?

Two short parts: a front-loaded purpose sentence followed by an args list. Nothing is padded, though the args block largely duplicates the already-complete input schema and could be dropped in favor of the behavioral detail that is actually missing.

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

Completeness3/5

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

An output schema exists, so return values need not be explained, and annotations cover the safety profile. That leaves the description adequate but thin for a non-idempotent, open-world mutation: it should say what gets changed and whether repeated or conflicting updates are safe.

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?

Schema coverage is 100%, so the baseline is 3 and the schema already documents consignmentId, status and dateTimeUtc. The description restates the fields but calls the timestamp "datetime" rather than the actual property name "dateTimeUtc", and does not say the timestamp is optional or what format/constraint the status string accepts beyond the schema's terse "Status value".

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?

States a specific verb+resource: "Manually updates tracking statuses for consignments," with a concrete example ("mark as delivered") that makes the effect tangible. It is distinguishable from the read-side sibling machship_get_consignment_statuses by the verb, though the description never names that sibling to draw the contrast.

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

Usage Guidelines3/5

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

The word "Manually" implies this is for overriding/setting statuses rather than reading carrier-driven status history, which is useful implied guidance. However, it never states when to use this instead of machship_get_consignment_statuses or the automated reconciliation path (machship_attempt_auto_reconciliation), nor any prerequisites such as needing the consignment to exist or not be manifested/completed.

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

Deploy Server

Other Tools