# Machship MCP (npm · @devkind/machship-mcp)

Model Context Protocol server for the Machship freight management platform

- Trust score: 71/100 (medium)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- npm · `@devkind/machship-mcp`: 71/100 (this document), [markdown](https://verifymcp.io/servers/devkindhq-machship-mcp/devkind-machship-mcp.md), [page](https://verifymcp.io/servers/devkindhq-machship-mcp/devkind-machship-mcp)

## Channel facts

- Registry: `npm`
- Package: `@devkind/machship-mcp`
- Version: `1.4.0`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-05.

- **Supply Chain Security**: 98/100
  - No malware found by supply-chain analysis.
  - No known CVEs affecting this package version or its production dependencies.
  - No install/post-install scripts declared.
  - 33 of 105 dependencies flagged as unhealthy.
- **Provenance & Transparency**: 48/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (ISC).
  - Actively maintained (last published 2 days ago).
  - Publishes a security disclosure policy (SECURITY.md).
- **Schema Quality & AI Usability**: 70/100
  - AI-judged instruction clarity (good).
  - Tool/resource definitions use about 11898 tokens (~95/item across 125 items; 125 tools + 0 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 10/100
  - Stability observed for 3 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - All 8 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.
  - An AI judge read all 126 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### How do I install the Machship MCP server?

Machship MCP runs locally as an npm package, launched with npx -y @devkind/machship-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add devkindhq-machship-mcp -- npx -y @devkind/machship-mcp
```

### Cursor

```json
{
  "mcpServers": {
    "devkindhq-machship-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@devkind/machship-mcp"
      ]
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "devkindhq-machship-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@devkind/machship-mcp"
      ]
    }
  }
}
```

### Codex

```bash
codex mcp add devkindhq-machship-mcp -- npx -y @devkind/machship-mcp
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "devkindhq-machship-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@devkind/machship-mcp"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add devkindhq-machship-mcp --command npx --arg -y --arg @devkind/machship-mcp
```

### Hermes

```yaml
mcp_servers:
  devkindhq-machship-mcp:
    command: "npx"
    args: ["-y", "@devkind/machship-mcp"]
```

### Netclaw

```json
{
  "McpServers": {
    "devkindhq-machship-mcp": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "@devkind/machship-mcp"
      ]
    }
  }
}
```

### Vellum

```bash
assistant mcp add devkindhq-machship-mcp -t stdio -c npx -a -y @devkind/machship-mcp
```

### Other

```json
{
  "mcpServers": {
    "devkindhq-machship-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@devkind/machship-mcp"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-11-04 (score 71, +2)

- [functional improvement] Security disclosure: unverified → pass

### 2026-11-03 (score 69, +20)

- [security improvement] Malware scan: unverified → pass
- [security improvement] Source repository: fail → pass
- [functional improvement] Stability: unverified → 0.03
- [functional] Package version: 1.3.0 → 1.4.0

### 2026-11-02 (score 49)

First indexed and scored.

## MCP tools (125)

### `machship_ping` (~53 tokens)

Ping / Check Auth Status

Determines the current user's login status and retrieves session properties from Machship.
Use this to verify authentication is working and to get the current user/company context.

Returns: session info including user details, company ID, and permissions.

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_get_attachment` (~62 tokens)

Get Attachment

Downloads the raw attachment file from Machship by attachment ID.
Returns { fileBase64, contentType, sizeBytes }. contentType comes from the response header.

Args:
  \- id (number): Attachment ID

Input parameters:

- `id` (integer, required): Attachment ID

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_get_attachment_pod_report` (~71 tokens)

Get Attachment POD Report

Downloads a Proof of Delivery (POD) report that includes attachment and consignment details.
Returns { fileBase64, contentType, sizeBytes }. contentType comes from the response header.

Args:
  \- id (number): Attachment ID

Input parameters:

- `id` (integer, required): Attachment ID

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_get_attachments_by_consignment_ids` (~83 tokens)

Get Attachments by Consignment IDs

Downloads attachments for up to 40 consignments in bulk (returned as zip).
Returns { fileBase64, contentType, sizeBytes }. contentType comes from the response header.

Args:
  \- ids (number[]): Array of consignment IDs (max 40)

Input parameters:

- `ids` (array, required): Consignment IDs (max 40)

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_upload_attachments` (~105 tokens)

Upload Attachments

Uploads one or more attachments to Machship.

Args:
  \- attachments (array): Array of attachment objects. Each object should contain:
    - consignmentId (number): Consignment to attach to
    - fileName (string): File name with extension
    - fileBase64 (string): Base64-encoded file content
    - attachmentTypeId (number, optional): Type of attachment

Input parameters:

- `attachments` (array, required): Attachments to upload

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_get_carrier_invoices` (~135 tokens)

Get Carrier Invoices

Returns basic carrier invoice information (max 100 records per call).

Args:
  \- companyId (number, optional): Filter by company ID
  \- carrierId (number, optional): Filter by carrier ID
  \- fileName (string, optional): Filter by invoice file name
  \- invoiceId (number, optional): Filter by specific invoice ID

Input parameters:

- `carrierId` (integer): Filter by carrier ID
- `companyId` (integer): Filter by company ID
- `fileName` (string): Filter by invoice file name
- `invoiceId` (integer): Filter by invoice ID

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_get_carrier_invoice_entries` (~74 tokens)

Get Carrier Invoice Entries

Gets carrier invoice line entries with optional status filtering.

Args:
  \- carrierInvoiceId (number): The carrier invoice ID
  \- status (string, optional): Filter entries by status

Input parameters:

- `carrierInvoiceId` (integer, required): Carrier invoice ID
- `status` (string): Filter by entry status

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_update_reprice_consignment` (~68 tokens)

Update and Reprice Consignment

Updates consignment items on a carrier invoice entry and triggers repricing.
Use for reconciling carrier invoice discrepancies.

Args:
  \- body (object): Repricing request payload (consignmentId, items, etc.)

Input parameters:

- `body` (object, required): Repricing request payload

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_attempt_auto_reconciliation` (~54 tokens)

Attempt Auto Reconciliation

Attempts automatic reconciliation of carrier invoices based on configured carrier thresholds.

Args:
  \- body (object): Reconciliation request payload (carrierInvoiceId, etc.)

Input parameters:

- `body` (object, required): Reconciliation request payload

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_upload_commercial_invoice` (~101 tokens)

Upload Commercial Invoice

Uploads one or more commercial invoice files for a consignment (for international shipments).
Files are provided as base64-encoded content.

Args:
  \- consignmentId (number): The consignment to attach the invoice to
  \- files (array): Array of files, each with fileName and fileBase64 content

Input parameters:

- `consignmentId` (integer, required): Consignment ID
- `files` (array, required): Invoice files to upload

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_get_companies` (~279 tokens)

Get Companies

Returns all companies accessible to the authenticated user.

Args:
  \- atOrBelowCompanyId (number, optional): Filter to companies at or below this company in the hierarchy
  \- response_format ('json' | 'markdown'): Output format (default: 'json')

Returns:
  Array of company objects, each containing:
  {
    "id": number,           // Company ID — use this in other tool calls
    "name": string,         // Display name of the company
    "isActive": boolean,    // Whether the company is active
    "parentCompanyId": number | null
  }

Examples:
  \- Use when: "List all companies I have access to"
  \- Use when: "What company ID does Acme Corp have?" -> call this, then search by name
  \- Don't use when: You need carrier/service info (use machship_get_company_carriers instead)

Error Handling:
  \- Error 401: Check MACHSHIP_API_TOKEN is set correctly
  \- Error 403: Token lacks permission to list companies

Input parameters:

- `atOrBelowCompanyId` (integer): Limit to companies at or below this company ID in the hierarchy
- `response_format` (string): Output format: 'json' (machine-readable, default) or 'markdown' (human-readable)

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_get_company_carriers` (~236 tokens)

Get Company Carriers, Accounts and Services

Returns all available carriers, carrier accounts, and freight services for a company.
Call this before creating consignments or quotes to discover which services and accounts are available.

Args:
  \- companyId (number): Company ID
  \- response_format ('json' | 'markdown'): Output format (default: 'json')

Returns:
  Array of carrier objects with nested accounts and services, each containing:
  {
    "carrierId": number,
    "carrierName": string,
    "accounts": [
      {
        "accountId": number,
        "accountName": string,
        "services": [{ "serviceId": number, "serviceName": string }]
      }
    ]
  }

Examples:
  \- Use when: "What carriers are available for company 123?"
  \- Use when: You need a serviceId to pass to createConsignment
  \- Don't use when: You just need a company list (use machship_get_companies instead)

Input parameters:

- `companyId` (integer, required): Company ID
- `response_format` (string): Output format: 'json' (default) or 'markdown'

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_get_item` (~46 tokens)

Get Company Item

Returns a single saved item (product/SKU) with its dimensions by ID.

Args:
  \- id (number): Item ID

Input parameters:

- `id` (integer, required): Item ID

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_get_items` (~116 tokens)

Get All Company Items

Returns a paginated list of saved items for a company (max 200 per request).

Args:
  \- companyId (number): Company ID
  \- startIndex (number, optional): Pagination start index (default 1)
  \- retrieveSize (number, optional): Number of items to retrieve (default 200, max 200)

Input parameters:

- `companyId` (integer, required): Company ID
- `retrieveSize` (integer): Items to retrieve (max 200)
- `startIndex` (integer): Pagination start index

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_get_item_by_sku` (~66 tokens)

Get Company Item by SKU

Returns a saved item matching the given SKU for a company.

Args:
  \- companyId (number): Company ID
  \- sku (string): Product SKU code

Input parameters:

- `companyId` (integer, required): Company ID
- `sku` (string, required): Product SKU

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_get_item_complex` (~48 tokens)

Get Complex Company Item

Returns a single complex item (with detailed dimensions/packaging data) by ID.

Args:
  \- id (number): Item ID

Input parameters:

- `id` (integer, required): Item ID

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_get_items_complex` (~117 tokens)

Get All Complex Company Items

Returns a paginated list of complex items for a company (max 200 per request).

Args:
  \- companyId (number): Company ID
  \- startIndex (number, optional): Pagination start index (default 1)
  \- retrieveSize (number, optional): Number of items to retrieve (default 200, max 200)

Input parameters:

- `companyId` (integer, required): Company ID
- `retrieveSize` (integer): Items to retrieve (max 200)
- `startIndex` (integer): Pagination start index

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_get_item_complex_by_sku` (~70 tokens)

Get Complex Company Item by SKU

Returns a complex item (detailed dimensions) by SKU for a company.

Args:
  \- companyId (number): Company ID
  \- sku (string): Product SKU code

Input parameters:

- `companyId` (integer, required): Company ID
- `sku` (string, required): Product SKU

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_create_item_complex` (~98 tokens)

Create Complex Company Item

Creates a new complex item (product/SKU with detailed packaging info) for a company.

Args:
  \- companyId (number): Company ID to create item under
  \- item (object): Item details including sku, description, weight, dimensions, etc.

Input parameters:

- `companyId` (integer, required): Company ID
- `item` (object, required): Complex item data (sku, description, weight, length, width, height, etc.)

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_delete_item` (~55 tokens)

Delete Company Item

Deletes a saved item from a company. This action is irreversible.

Args:
  \- companyItemId (number): The ID of the item to delete

Input parameters:

- `companyItemId` (integer, required): Company item ID to delete

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_get_items_by_skus` (~118 tokens)

Get Company Items by SKUs (Batch)

Returns a list of saved items matching any of the supplied SKUs (standard items only, max 100 SKUs).
SKUs that don't match any item are silently omitted — compare returned Sku values against your input to detect misses.

Args:
  \- companyId (number): Company ID
  \- skus (string[]): Array of SKU codes to look up (max 100)

Input parameters:

- `companyId` (integer, required): Company ID
- `skus` (array, required): SKU codes to look up (max 100)

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_get_company_location` (~47 tokens)

Get Company Location

Returns details for a single company location (warehouse, store, depot).

Args:
  \- id (number): Company location ID

Input parameters:

- `id` (integer, required): Company location ID

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_get_company_locations` (~50 tokens)

Get All Company Locations

Returns all locations (warehouses, stores, depots) for a given company.

Args:
  \- companyId (number): Company ID

Input parameters:

- `companyId` (integer, required): Company ID

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_create_company_location` (~87 tokens)

Create Company Location

Creates a new company location (warehouse, store, depot pickup point).

Args:
  \- location (object): Location data including companyId, name, address, suburb, postcode, state, country, contactName, phone, etc.

Input parameters:

- `location` (object, required): Location data (companyId, name, address, suburb, postcode, state, country, contactName, phone)

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_edit_company_location` (~49 tokens)

Edit Company Location

Edits an existing company location.

Args:
  \- location (object): Updated location data including id and any fields to update

Input parameters:

- `location` (object, required): Updated location data including id

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_get_permanent_pickups` (~50 tokens)

Get Permanent Pickups for Company Location

Gets all permanent scheduled pickups configured for a company location.

Args:
  \- companyLocationId (number): Company location ID

Input parameters:

- `companyLocationId` (integer, required): Company location ID

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_add_permanent_pickups` (~55 tokens)

Add Permanent Pickups to Company Location

Adds permanent scheduled pickups to a company location.

Args:
  \- payload (object): Contains companyLocationId and pickup schedule details

Input parameters:

- `payload` (object, required): Permanent pickup configuration including companyLocationId and schedule

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_get_consignment` (~102 tokens)

Get Consignment

Returns full details for a single consignment by ID.

Args:
  \- id (number): Consignment ID
  \- includeDeleted (boolean, optional): Include deleted consignments
  \- includeRequestGuids (boolean, optional): Include request GUIDs in response

Input parameters:

- `id` (integer, required): Consignment ID
- `includeDeleted` (boolean): Include deleted consignments
- `includeRequestGuids` (boolean): Include request GUIDs

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_get_consignments_by_ids` (~62 tokens)

Get Consignments by IDs (Batch)

Returns details for multiple consignments by their IDs (max 100 per request).

Args:
  \- ids (number[]): Array of consignment IDs (max 100)

Input parameters:

- `ids` (array, required): Consignment IDs (max 100)

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_get_consignments_by_reference1` (~70 tokens)

Get Consignments by Reference 1

Finds consignments by their Reference 1 field (order number, etc). Max 10 per request.

Args:
  \- references (string[]): Array of Reference 1 values (max 10)

Input parameters:

- `references` (array, required): Reference 1 values (max 10)

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_get_consignments_by_reference2` (~65 tokens)

Get Consignments by Reference 2

Finds consignments by their Reference 2 field. Max 10 per request.

Args:
  \- references (string[]): Array of Reference 2 values (max 10)

Input parameters:

- `references` (array, required): Reference 2 values (max 10)

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_get_consignments_by_carrier_id` (~75 tokens)

Get Consignments by Carrier Consignment ID

Finds consignments by carrier's own consignment/tracking ID. Max 10 per request.

Args:
  \- carrierConsignmentIds (string[]): Array of carrier consignment IDs (max 10)

Input parameters:

- `carrierConsignmentIds` (array, required): Carrier consignment IDs (max 10)

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_get_consignment_statuses` (~99 tokens)

Get Consignment Tracking Statuses

Returns tracking/delivery statuses for a batch of consignments, with optional date filter.

Args:
  \- ids (number[]): Consignment IDs
  \- sinceDateCreatedUtc (string, optional): Only return statuses since this UTC datetime (ISO 8601)

Input parameters:

- `ids` (array, required): Consignment IDs
- `sinceDateCreatedUtc` (string): Filter: only statuses since this UTC datetime (ISO 8601)

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_update_consignment_statuses` (~65 tokens)

Update Consignment Tracking Statuses

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 parameters:

- `statuses` (array, required): Tracking status updates

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_get_unmanifested_consignments` (~154 tokens)

Get Unmanifested Consignments

Returns consignments that have been created but not yet manifested (booked with carrier).

Args:
  \- companyId (number): Company ID
  \- startIndex (number, optional): Pagination start index
  \- retrieveSize (number, optional): Number to retrieve
  \- carrierId (number, optional): Filter by carrier
  \- includeChildCompanies (boolean, optional): Include sub-companies

Input parameters:

- `carrierId` (integer): Filter by carrier ID
- `companyId` (integer, required): Company ID
- `includeChildCompanies` (boolean): Include child companies
- `retrieveSize` (integer): Items to retrieve
- `startIndex` (integer): Pagination start index

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_get_active_consignments` (~149 tokens)

Get Active Consignments

Returns all active (in-transit) consignments for a company.

Args:
  \- companyId (number): Company ID
  \- startIndex (number, optional): Pagination start index
  \- retrieveSize (number, optional): Number to retrieve
  \- carrierId (number, optional): Filter by carrier
  \- includeChildCompanies (boolean, optional): Include sub-companies

Input parameters:

- `carrierId` (integer): Filter by carrier ID
- `companyId` (integer, required): Company ID
- `includeChildCompanies` (boolean): Include child companies
- `retrieveSize` (integer): Items to retrieve
- `startIndex` (integer): Pagination start index

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_get_all_consignments` (~318 tokens)

Get All Consignments

Returns all consignments for a company with date range and status filtering.

Args:
  \- companyId (number): Company ID
  \- startIndex (number, optional): Pagination start index
  \- retrieveSize (number, optional): Number to retrieve
  \- carrierId (number, optional): Filter by carrier
  \- includeChildCompanies (boolean, optional): Include sub-companies
  \- includeDeletedConsignments (boolean, optional): Include deleted
  \- fromDateTimeLocal (string, optional): Start date filter (local time)
  \- toDateTimeLocal (string, optional): End date filter (local time)
  \- filterByEtaCompletedOrDespatch (string, optional): Filter by ETA/despatch status

Input parameters:

- `carrierId` (integer): Filter by carrier ID
- `companyId` (integer, required): Company ID
- `filterByEtaCompletedOrDespatch` (string): Filter by ETA, completed, or despatch status
- `fromDateTimeLocal` (string): Start date filter (local time ISO 8601)
- `includeChildCompanies` (boolean): Include consignments from child companies
- `includeDeletedConsignments` (boolean): Include deleted consignments in results
- `retrieveSize` (integer): Number of results to return (default 40, max 200)
- `startIndex` (integer): Pagination start index (default 1)
- `toDateTimeLocal` (string): End date filter (local time ISO 8601)

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_get_recent_consignments` (~300 tokens)

Get Recently Created or Updated Consignments

Returns consignments created or updated within a UTC date range. Ideal for sync/polling workflows.

Args:
  \- companyId (number): Company ID
  \- fromDateUtc (string): Start datetime in UTC (ISO 8601)
  \- toDateUtc (string): End datetime in UTC (ISO 8601)
  \- startIndex (number, optional): Pagination start index
  \- retrieveSize (number, optional): Number to retrieve
  \- carrierId (number, optional): Filter by carrier
  \- includeChildCompanies (boolean, optional): Include sub-companies
  \- getNotes (boolean, optional): Include notes in response
  \- getReconciliationData (boolean, optional): Include reconciliation data

Input parameters:

- `carrierId` (integer): Filter by carrier ID
- `companyId` (integer, required): Company ID
- `fromDateUtc` (string, required): Start datetime UTC (ISO 8601)
- `getNotes` (boolean): Include notes in the response
- `getReconciliationData` (boolean): Include reconciliation data in the response
- `includeChildCompanies` (boolean): Include consignments from child companies
- `retrieveSize` (integer): Number of results to return (default 40, max 200)
- `startIndex` (integer): Pagination start index (default 1)
- `toDateUtc` (string, required): End datetime UTC (ISO 8601)

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_get_completed_consignments` (~144 tokens)

Get Completed Consignments

Returns completed (delivered) consignments within a date range (max 2000 results).

Args:
  \- companyId (number): Company ID
  \- startDate (string): Start date (ISO 8601)
  \- endDate (string): End date (ISO 8601)
  \- includeChildCompanies (boolean, optional): Include sub-companies

Input parameters:

- `companyId` (integer, required): Company ID
- `endDate` (string, required): End date (ISO 8601)
- `includeChildCompanies` (boolean): Include consignments from child companies
- `startDate` (string, required): Start date (ISO 8601)

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_create_consignment` (~123 tokens)

Create Consignment

Creates a new unmanifested consignment in Machship. This is the core operation for booking freight.

Args:
  \- consignment (object): Full consignment details including:
    - companyId, fromCompanyLocationId, toAddress (suburb, postcode, state, country)
    - items (array of packages with weight, dimensions)
    - carrierId, serviceId, reference1, reference2, etc.

Input parameters:

- `consignment` (object, required): Consignment data (companyId, from/to locations, items, carrier, service, references)

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_create_consignment_with_complex_items` (~68 tokens)

Create Consignment with Complex Items

Creates a consignment using complex item definitions (with detailed packaging/dangerous goods data).

Args:
  \- consignment (object): Consignment data with complexItems array instead of standard items

Input parameters:

- `consignment` (object, required): Consignment data with complexItems array

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_create_consignment_existing_items` (~62 tokens)

Create Consignment with Existing Saved Items

Creates a consignment using previously saved company items (by item ID / SKU).

Args:
  \- consignment (object): Consignment data referencing existing saved item IDs

Input parameters:

- `consignment` (object, required): Consignment data referencing existing item IDs

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_edit_consignment` (~65 tokens)

Edit Unmanifested Consignment

Edits an existing unmanifested (not yet booked) consignment. Cannot edit manifested consignments.

Args:
  \- consignment (object): Updated consignment data including the consignment id

Input parameters:

- `consignment` (object, required): Updated consignment data including id

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_delete_consignments` (~54 tokens)

Delete Unmanifested Consignments

Deletes multiple unmanifested consignments. Cannot delete manifested consignments.

Args:
  \- ids (number[]): Array of consignment IDs to delete

Input parameters:

- `ids` (array, required): Consignment IDs to delete

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_search_consignments` (~58 tokens)

Search Consignments

Searches consignments by reference numbers (Reference 1, Reference 2, or carrier IDs).

Args:
  \- references (string[]): Array of reference strings to search for

Input parameters:

- `references` (array, required): Reference values to search

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_get_consignment_creation_settings` (~64 tokens)

Get Consignment Creation Settings

Returns settings and defaults needed for creating consignments for a company (required fields, defaults, etc.).

Args:
  \- companyId (number, optional): Company ID (defaults to authenticated company)

Input parameters:

- `companyId` (integer): Company ID (optional)

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_get_consignment_attachments` (~52 tokens)

Get Consignment Attachments

Returns attachment metadata (not file contents) for a consignment.

Args:
  \- consignmentId (number): Consignment ID

Input parameters:

- `consignmentId` (integer, required): Consignment ID

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_update_despatch_dates` (~75 tokens)

Update Despatch Dates for Manifest

Updates despatch dates and estimated time of arrival (ETA) for a set of consignments.

Args:
  \- updates (array): Array of objects with consignmentId and new despatch date/ETA

Input parameters:

- `updates` (array, required): Despatch date updates (consignmentId, despatchDate, eta)

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_get_consignment_by_pending_id` (~65 tokens)

Get Consignment by Pending Consignment ID

Get consignment details (if it exists) using a pending consignment ID that has been transformed (linked) into a consignment.

Args:
  \- id (number): Pending consignment ID

Input parameters:

- `id` (integer, required): Pending consignment ID

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_get_consignment_for_clone` (~70 tokens)

Get Consignment for Clone

Get the details of an existing consignment in a format that can be passed directly to the createConsignmentWithComplexItems endpoint to create a copy.

Args:
  \- id (number): Consignment ID to retrieve in clone format

Input parameters:

- `id` (integer, required): Consignment ID

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_get_unmanifested_consignment_for_edit` (~78 tokens)

Get Unmanifested Consignment for Edit

Get an unmanifested consignment in the same format required to perform an update via the editUnmanifestedConsignment endpoint.

Args:
  \- id (number): Consignment ID (must be in unmanifested state)

Input parameters:

- `id` (integer, required): Consignment ID (must be unmanifested)

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_get_consignments_by_pending_ids` (~75 tokens)

Get Consignments by Pending Consignment IDs (Batch)

Get consignment details for multiple consignments using Pending Consignment IDs as the lookup. Maximum of 100 consignments per request.

Args:
  \- ids (number[]): Array of pending consignment IDs (max 100)

Input parameters:

- `ids` (array, required): Pending consignment IDs (max 100)

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_group_consignments_for_consolidation` (~77 tokens)

Group Consignments for Consolidation

Automatically groups consignments into consolidation groups based on options (carrier, route, etc.).
Returns groups without actually consolidating — preview step before consolidation.

Args:
  \- options (object): Consolidation grouping options (companyId, carrierId, etc.)

Input parameters:

- `options` (object, required): Consolidation grouping options

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_perform_consolidation` (~67 tokens)

Perform Consolidation

Consolidates a set of consignments into consolidated shipments.
This merges multiple consignments into fewer shipment units for carrier efficiency.

Args:
  \- request (object): Consolidation request with consignment IDs and consolidation parameters

Input parameters:

- `request` (object, required): Consolidation request payload

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_group_and_perform_consolidation` (~65 tokens)

Group and Perform Consolidation

Groups and consolidates consignments in a single operation (combines grouping + performing).

Args:
  \- options (object): Consolidation options (companyId, carrierId, grouping rules, etc.)

Input parameters:

- `options` (object, required): Consolidation options

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_get_custom_schemas` (~33 tokens)

Get All Custom Schemas

Returns all custom schemas defined in the Machship organisation.
Custom schemas extend Machship entities with additional fields.

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_get_custom_schema` (~54 tokens)

Get Custom Schema by ID

Returns a specific custom schema by its DotNet class ID.

Args:
  \- id (string): The DotNet class ID of the schema

Input parameters:

- `id` (string, required): DotNet class ID of the schema

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_create_custom_schema` (~87 tokens)

Create Custom Schema

Creates a new custom schema to extend Machship entities with additional fields.

Args:
  \- name (string): Schema name
  \- type (string): Schema type/entity to extend
  \- schema (object): JSON schema definition

Input parameters:

- `name` (string, required): Schema name
- `schema` (object, required): JSON schema definition
- `type` (string, required): Schema type/entity

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_update_custom_schema` (~74 tokens)

Update Custom Schema

Updates an existing custom schema by its DotNet class ID.

Args:
  \- id (string): DotNet class ID of the schema to update
  \- schema (object): Updated JSON schema definition

Input parameters:

- `id` (string, required): DotNet class ID
- `schema` (object, required): Updated JSON schema definition

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_delete_custom_schema` (~55 tokens)

Delete Custom Schema

Deletes a custom schema by its DotNet class ID. This is irreversible.

Args:
  \- id (string): DotNet class ID of the schema to delete

Input parameters:

- `id` (string, required): DotNet class ID

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_get_posted_invoices` (~173 tokens)

Get Posted Financial Invoices

Returns posted financial invoices within an optional date range (max 100 per call).

Args:
  \- startDate (string, optional): Start date filter (ISO 8601)
  \- endDate (string, optional): End date filter (ISO 8601)
  \- startIndex (number, optional): Pagination start index (default 1)
  \- retrieveSize (number, optional): Number to retrieve (default 100, max 100)

Input parameters:

- `endDate` (string): End date filter (ISO 8601)
- `retrieveSize` (integer): Number of results to return (default 100, max 100)
- `startDate` (string): Start date filter (ISO 8601)
- `startIndex` (integer): Pagination start index (default 1)

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_get_invoice_by_document_number` (~87 tokens)

Get Financial Invoice by Document Number

Returns a specific financial invoice by document number, with optional PDF download.

Args:
  \- documentNumber (string): Invoice document number
  \- returnPdfFileBytes (boolean, optional): Include PDF as base64 bytes in response

Input parameters:

- `documentNumber` (string, required): Invoice document number
- `returnPdfFileBytes` (boolean): Include PDF as base64 bytes

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_get_identities` (~124 tokens)

Get Identities

Get all identities owned by an organisation, with details on which companies they are linked to.
Requires administrator access to the organisation.

Args:
  \- organisationId (number): Organisation ID
  \- onlyUnlinkedIdentities (boolean, optional): Return only identities not linked to any company
  \- identityProviderId (number, optional): Filter by identity provider

Input parameters:

- `identityProviderId` (integer): Filter by identity provider ID
- `onlyUnlinkedIdentities` (boolean): Return only unlinked identities
- `organisationId` (integer, required): Organisation ID

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_get_identity` (~38 tokens)

Get Identity

Get the identity with the given ID.

Args:
  \- id (number): Identity ID

Input parameters:

- `id` (integer, required): Identity ID

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_get_available_roles` (~48 tokens)

Get Available Roles

Get all roles that are available to assign to users of a certain company.

Args:
  \- companyId (number): Company ID

Input parameters:

- `companyId` (integer, required): Company ID

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_create_identities` (~208 tokens)

Create Identities

Create identities in MachShip and assign companies and roles. All identities must belong to the same identityProvider and organisation.
Requires administrator access.

Args:
  \- identities (array): Array of identity objects, each with:
    - givenName (string): First name (required)
    - familyName (string): Last name (required)
    - displayName (string): Display name (required)
    - emailAddress (string): Email (required)
    - identifyingClaim (string): Unique claim for identity provider (required)
    - organisationId (number): Organisation ID (required)
    - identityProviderId (number): Identity provider ID (required)
    - owningCompanyId (number): Owning company ID (required)
    - password (string, optional): Password
    - uniqueId (string, optional): Unique ID
    - userAndCompanyLinks (array, optional): Company/role links to create

Input parameters:

- `identities` (array, required): Identities to create

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_update_identity` (~257 tokens)

Update Identity

Updates properties on an identity. All fields except password are required; omitted fields are set to null.

Args:
  \- id (number): Identity ID (required)
  \- givenName (string): First name (required)
  \- familyName (string): Last name (required)
  \- displayName (string): Display name (required)
  \- emailAddress (string): Email address (required)
  \- owningCompanyId (number): Owning company ID (required)
  \- password (string, optional): New password
  \- phone / businessPhone / mobile / position / notes (optional)

Input parameters:

- `businessPhone` (string): Business phone number
- `displayName` (string, required): Display name
- `emailAddress` (string, required): Email address
- `familyName` (string, required): Last name
- `givenName` (string, required): First name
- `id` (integer, required): Identity ID
- `mobile` (string): Mobile number
- `notes` (string): Additional notes about the identity
- `owningCompanyId` (integer, required): Owning company ID
- `password` (string): New password (optional)
- `phone` (string): Phone number
- `position` (string): Job position or title

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_delete_identities` (~50 tokens)

Delete Identities

Delete the identities with the given IDs. This action is irreversible.

Args:
  \- ids (number[]): Array of identity IDs to delete

Input parameters:

- `ids` (array, required): Identity IDs to delete

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_disable_identities` (~51 tokens)

Disable Identities

Disable the identities with the given IDs, preventing them from logging in.

Args:
  \- ids (number[]): Array of identity IDs to disable

Input parameters:

- `ids` (array, required): Identity IDs to disable

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_reenable_identities` (~50 tokens)

Re-enable Identities

Re-enable previously disabled identities, restoring login access.

Args:
  \- ids (number[]): Array of identity IDs to re-enable

Input parameters:

- `ids` (array, required): Identity IDs to re-enable

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_link_identities_to_companies` (~70 tokens)

Link Identities to Companies

Assign companies and roles to identities to give them access to the system.
Requires administrator access.

Args:
  \- links (array): Array of identity-company link objects, each with identityId, companyId, and roles

Input parameters:

- `links` (array, required): Identity-company links to create

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_unlink_identities_from_companies` (~68 tokens)

Unlink Identities from Companies

Remove company access from identities. Each entry specifies an identity and the company to revoke access from.

Args:
  \- unlinks (array): Array of objects with identityId and companyId to unlink

Input parameters:

- `unlinks` (array, required): Identity-company pairs to unlink

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_return_identity_public_keys` (~73 tokens)

Return Identity Public Keys

Get the public keys of the supplied identities. These keys can be used by a linked organisation to grant
those identities access to companies in their organisation.
Requires administrator access.

Args:
  \- ids (number[]): Array of identity IDs to retrieve public keys for

Input parameters:

- `ids` (array, required): Identity IDs

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_get_identity_provider` (~45 tokens)

Get Identity Provider

Get a specific identity provider by ID.

Args:
  \- identityProviderId (number): Identity provider ID

Input parameters:

- `identityProviderId` (integer, required): Identity provider ID

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_get_identity_providers_for_company` (~46 tokens)

Get Identity Providers for Company

Get all identity providers associated with a specific company.

Args:
  \- companyId (number): Company ID

Input parameters:

- `companyId` (integer, required): Company ID

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_get_identity_providers_for_logged_user` (~29 tokens)

Get Identity Providers for Logged-in User

Returns all identity providers for the current user's organisation. No parameters required.

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_get_identity_providers_for_organisation` (~46 tokens)

Get Identity Providers for Organisation

Returns all identity providers for the specified organisation.

Args:
  \- organisationId (number): Organisation ID

Input parameters:

- `organisationId` (integer, required): Organisation ID

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_get_consignment_label_pdf` (~66 tokens)

Get Consignment Label PDF

Returns the consignment label PDF.
Returns { fileBase64, contentType, sizeBytes }. contentType comes from the response header.

Args:
  \- consignmentId (number): Consignment ID

Input parameters:

- `consignmentId` (integer, required): Consignment ID

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_get_item_label_pdf` (~105 tokens)

Get Item Label PDF

Returns item/package labels for a consignment as a PDF.
Returns { fileBase64, contentType, sizeBytes }. contentType comes from the response header.

Args:
  \- consignmentId (number): Consignment ID
  \- printA4 (boolean, optional): Print in A4 format (default: label-size)

Input parameters:

- `consignmentId` (integer, required): Consignment ID
- `printA4` (boolean): Print in A4 format

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_get_item_labels_zip` (~143 tokens)

Get Item Labels ZIP (Batch)

Gets item labels as a zip file for up to 40 consignments.
Returns { fileBase64, contentType, sizeBytes }. contentType comes from the response header.

Args:
  \- consignmentIds (number[]): Consignment IDs (max 40)
  \- printA4 (boolean, optional): Print in A4 format
  \- singlePdf (boolean, optional): Combine all labels into a single PDF inside the zip

Input parameters:

- `consignmentIds` (array, required): Consignment IDs (max 40)
- `printA4` (boolean): Print in A4 format
- `singlePdf` (boolean): Combine into single PDF

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_get_manifest_label_pdf` (~65 tokens)

Get Manifest Label PDF

Returns the manifest document as a PDF by manifest ID.
Returns { fileBase64, contentType, sizeBytes }. contentType comes from the response header.

Args:
  \- manifestId (number): Manifest ID

Input parameters:

- `manifestId` (integer, required): Manifest ID

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_get_manifest_label_pdf_by_consignment` (~75 tokens)

Get Manifest Label PDF by Consignment

Returns the manifest PDF for the manifest associated with a given consignment.
Returns { fileBase64, contentType, sizeBytes }. contentType comes from the response header.

Args:
  \- consignmentId (number): Consignment ID

Input parameters:

- `consignmentId` (integer, required): Consignment ID

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_get_commercial_invoice_pdf` (~74 tokens)

Get Commercial Invoice PDF

Returns the commercial invoice PDF for a consignment (used for international shipments).
Returns { fileBase64, contentType, sizeBytes }. contentType comes from the response header.

Args:
  \- consignmentId (number): Consignment ID

Input parameters:

- `consignmentId` (integer, required): Consignment ID

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_get_dangerous_goods_pdf` (~72 tokens)

Get Dangerous Goods Document PDF

Returns the dangerous goods declaration document PDF for a consignment.
Returns { fileBase64, contentType, sizeBytes }. contentType comes from the response header.

Args:
  \- consignmentId (number): Consignment ID

Input parameters:

- `consignmentId` (integer, required): Consignment ID

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_send_labels_to_printer` (~70 tokens)

Send Labels to Printer

Sends labels directly to a configured printer in Machship.

Args:
  \- requests (array): Array of print requests, each with consignmentId, printerId, labelType, etc.

Input parameters:

- `requests` (array, required): Print requests (consignmentId, printerId, labelType)

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_group_consignments_for_printing` (~57 tokens)

Group Consignments for Printing

Groups consignments for batch label printing and returns print groups.

Args:
  \- consignmentIds (number[]): Consignment IDs to group for printing

Input parameters:

- `consignmentIds` (array, required): Consignment IDs

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_get_consignment_pdf_file_info` (~67 tokens)

Get Consignment PDF File Info

Returns the consignment label PDF as JSON. object.content holds the file as base64, with object.fileName and object.contentType.

Args:
  \- consignmentId (number): Consignment ID

Input parameters:

- `consignmentId` (integer, required): Consignment ID

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_get_item_pdf_file_info` (~98 tokens)

Get Item Label PDF File Info

Returns the item/package label PDF as JSON. object.content holds the file as base64, with object.fileName and object.contentType.

Args:
  \- consignmentId (number): Consignment ID
  \- printA4 (boolean, optional): Whether the label is in A4 format

Input parameters:

- `consignmentId` (integer, required): Consignment ID
- `printA4` (boolean): A4 format flag

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_get_manifest_pdf_file_info` (~60 tokens)

Get Manifest PDF File Info

Returns the manifest PDF as JSON. object.content holds the file as base64, with object.fileName and object.contentType.

Args:
  \- manifestId (number): Manifest ID

Input parameters:

- `manifestId` (integer, required): Manifest ID

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_get_dangerous_goods_pdf_file_info` (~69 tokens)

Get Dangerous Goods Document PDF File Info

Returns the dangerous goods declaration PDF as JSON. object.content holds the file as base64, with object.fileName and object.contentType.

Args:
  \- consignmentId (number): Consignment ID

Input parameters:

- `consignmentId` (integer, required): Consignment ID

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_get_mo41_document_pdf` (~78 tokens)

Get MO41 Document PDF

Returns the MO41 document PDF for a consignment (used for specific carrier compliance documents).
Returns { fileBase64, contentType, sizeBytes }. contentType comes from the response header.

Args:
  \- consignmentId (number): Consignment ID

Input parameters:

- `consignmentId` (integer, required): Consignment ID

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_get_mo41_document_pdf_file_info` (~69 tokens)

Get MO41 Document PDF File Info

Returns the MO41 document PDF as JSON. object.content holds the file as base64, with object.fileName and object.contentType.

Args:
  \- consignmentId (number): Consignment ID

Input parameters:

- `consignmentId` (integer, required): Consignment ID

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_get_special_instructions_pdf` (~100 tokens)

Get Special Instructions PDF

Returns the special instructions document PDF for a consignment.
Returns { fileBase64, contentType, sizeBytes }. contentType comes from the response header.

Args:
  \- consignmentId (number): Consignment ID
  \- printA4 (boolean, optional): Print in A4 format

Input parameters:

- `consignmentId` (integer, required): Consignment ID
- `printA4` (boolean): Print in A4 format

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_return_item_pdfs_for_consignments` (~130 tokens)

Return Item PDFs for Consignments (POST)

Returns item labels as a zip for up to 40 consignments (POST variant — use this when passing a body payload is preferred over query string).
Returns { fileBase64, contentType, sizeBytes }. contentType comes from the response header.

Args:
  \- consignmentIds (number[]): Consignment IDs (max 40)
  \- printA4 (boolean, optional): Print in A4 format

Input parameters:

- `consignmentIds` (array, required): Consignment IDs (max 40)
- `printA4` (boolean): Print in A4 format

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_search_locations` (~220 tokens)

Search Locations

Returns up to 10 Machship locations matching a suburb or postcode search string.
Use this to look up valid delivery/pickup locationIds before creating consignments.

Args:
  \- s (string): Search string — suburb name, postcode, or both (e.g. "Melbourne 3000")
  \- response_format ('json' | 'markdown'): Output format (default: 'json')

Returns:
  Array of location objects:
  { "id": number, "suburb": string, "postcode": string, "state": string, "country": string }

Examples:
  \- Use when: "What location ID is for Sydney 2000?" -> search "Sydney 2000", pick from results
  \- Use when: Validating a delivery address before creating a consignment

Input parameters:

- `response_format` (string): Output format: 'json' (default) or 'markdown'
- `s` (string, required): Search string: suburb name, postcode, or both (e.g. 'Melbourne 3000')

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_get_locations_exact` (~65 tokens)

Get Locations (Exact Match)

Returns locations that exactly match provided suburb/postcode combinations.
Supports multiple location lookups in one call.

Args:
  \- locations (array): Array of suburb/postcode pairs to look up exactly

Input parameters:

- `locations` (array, required): Suburb/postcode pairs for exact matching

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_get_locations_with_options` (~69 tokens)

Get Locations with Search Options

Returns locations with additional search options/filters applied.

Args:
  \- s (string): Search string
  \- options (object): Additional search options (country, state, etc.)

Input parameters:

- `options` (object): Additional location search options
- `s` (string, required): Search string

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_get_manifests` (~364 tokens)

Get Manifests

Returns a paginated list of manifests for a company (max 200 per call).
A manifest represents a carrier pickup booking for a group of consignments.

Args:
  \- companyId (number, optional): Company ID
  \- startIndex (number, optional): Pagination start index (default 1)
  \- retrieveSize (number, optional): Number to retrieve (default 40, max 200)
  \- carrierId (number, optional): Filter by carrier
  \- includeChildCompanies (boolean, optional): Include sub-companies
  \- startDate / endDate (string, optional): Date range filter (ISO 8601)
  \- response_format ('json' | 'markdown'): Output format (default: 'json')

Returns:
  Array of manifest summary objects:
  { "id": number, "manifestDate": string, "carrierName": string, "status": string, "consignmentCount": number }

Examples:
  \- Use when: "List today's manifests" -> set startDate/endDate to today
  \- Use when: You need a manifestId to download a manifest PDF

Input parameters:

- `carrierId` (integer): Filter by carrier ID
- `companyId` (integer): Company ID
- `endDate` (string): Filter to date (ISO 8601)
- `includeChildCompanies` (boolean): Include manifests from child companies
- `response_format` (string): Output format: 'json' (default) or 'markdown'
- `retrieveSize` (integer): Number of results to return (default 40, max 200)
- `startDate` (string): Filter from date (ISO 8601)
- `startIndex` (integer): Pagination start index (default 1)

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_group_all_for_manifest` (~53 tokens)

Group All Unmanifested Consignments for Manifest

Groups ALL unmanifested consignments for a company into manifest groups (preview before manifesting).

Args:
  \- companyId (number): Company ID

Input parameters:

- `companyId` (integer, required): Company ID

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_group_consignments_for_manifest` (~60 tokens)

Group Consignments for Manifest

Groups a specific set of consignments into manifest groups (preview before manifesting).

Args:
  \- consignmentIds (number[]): Consignment IDs to group

Input parameters:

- `consignmentIds` (array, required): Consignment IDs to group

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_manifest_consignments` (~90 tokens)

Manifest / Book Consignments with Carrier

Books/manifests consignments with the carrier — creates the pickup booking and generates tracking numbers.
This is the final step in the consignment workflow before physical pickup.

Args:
  \- manifests (array): Array of booked manifest objects with consignment IDs and carrier booking details

Input parameters:

- `manifests` (array, required): Manifest booking objects (consignmentIds, carrierId, despatchDate, etc.)

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_rebook_manifest_pickup` (~71 tokens)

Rebook Manifest Pickup

Rebooks the carrier pickup for an existing manifest (e.g. missed pickup or changed schedule).

Args:
  \- rebooking (object): Rebooking details including manifestId and new pickup datetime

Input parameters:

- `rebooking` (object, required): Rebooking details (manifestId, pickupDate, etc.)

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_get_consignment_notes` (~51 tokens)

Get Consignment Notes

Returns all notes attached to a consignment (internal comments, delivery instructions, etc.).

Args:
  \- id (number): Consignment ID

Input parameters:

- `id` (integer, required): Consignment ID

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_get_organisation_links` (~65 tokens)

Get Organisation Links

Returns all links (partnerships/integrations) that exist for an organisation.

Args:
  \- id (number, optional): Organisation ID (leave blank for current authenticated org)

Input parameters:

- `id` (integer): Organisation ID (optional, defaults to current org)

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_get_linked_from_organisations` (~133 tokens)

Get Linked-From Organisations

Returns all organisations that have linked INTO this organisation (suppliers, partners).

Args:
  \- startIndex (number, optional): Pagination start index
  \- retrieveSize (number, optional): Number to retrieve
  \- sort (string, optional): Sort field
  \- searchText (string, optional): Filter by name

Input parameters:

- `retrieveSize` (integer): Number of results to return (max 100)
- `searchText` (string): Filter results by organisation name
- `sort` (string): Sort field name
- `startIndex` (integer): Pagination start index

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_get_linked_to_organisations` (~131 tokens)

Get Linked-To Organisations

Returns all organisations this organisation has linked TO (customers, subsidiaries).

Args:
  \- startIndex (number, optional): Pagination start index
  \- retrieveSize (number, optional): Number to retrieve
  \- sort (string, optional): Sort field
  \- searchText (string, optional): Filter by name

Input parameters:

- `retrieveSize` (integer): Number of results to return (max 100)
- `searchText` (string): Filter results by organisation name
- `sort` (string): Sort field name
- `startIndex` (integer): Pagination start index

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_get_organisation_public_key` (~59 tokens)

Get Organisation Public Key

Returns the public key for an organisation, used to set up inter-organisation links.

Args:
  \- id (number, optional): Organisation ID (defaults to current org)

Input parameters:

- `id` (integer): Organisation ID (optional)

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_get_organisation_by_public_key` (~65 tokens)

Get Organisation Details by Public Key

Validates a public key and returns the corresponding organisation details.
Use this to verify a partner's public key before linking.

Args:
  \- publicKey (string): Organisation public key to look up

Input parameters:

- `publicKey` (string, required): Organisation public key

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_add_organisation_link` (~57 tokens)

Add Organisation Link

Links another organisation into yours using their public key.

Args:
  \- request (object): Link request with the partner's publicKey and optional configuration

Input parameters:

- `request` (object, required): Link request (publicKey of partner organisation)

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_remove_organisation_link` (~57 tokens)

Remove Organisation Link

Removes an existing link between two organisations. This action is irreversible.

Args:
  \- request (object): Unlink request with organisationLinkId to remove

Input parameters:

- `request` (object, required): Unlink request (organisationLinkId)

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_reset_organisation_public_key` (~62 tokens)

Reset Organisation Public Key

Resets the public key for an organisation (generates new key). Does NOT affect existing links.

Args:
  \- id (number, optional): Organisation ID (defaults to current org)

Input parameters:

- `id` (integer): Organisation ID (optional)

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_create_pending_consignment` (~104 tokens)

Create Pending Consignment

Creates a pending consignment — a draft/staging consignment that hasn't been rated or assigned to a carrier yet.
Pending consignments can be converted to full consignments after quoting.

Args:
  \- consignment (object): Pending consignment data including companyId, from/to address, items, references, etc.

Input parameters:

- `consignment` (object, required): Pending consignment data (companyId, fromAddress, toAddress, items, reference1, reference2)

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_get_pending_consignment` (~47 tokens)

Get Pending Consignment

Returns details for a single pending consignment by ID.

Args:
  \- id (number): Pending consignment ID

Input parameters:

- `id` (integer, required): Pending consignment ID

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_get_pending_consignments_by_ids` (~63 tokens)

Get Pending Consignments by IDs (Batch)

Returns details for multiple pending consignments by IDs (max 10 per request).

Args:
  \- ids (number[]): Pending consignment IDs (max 10)

Input parameters:

- `ids` (array, required): Pending consignment IDs (max 10)

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_get_pending_consignments_by_reference1` (~64 tokens)

Get Pending Consignments by Reference 1

Finds pending consignments by Reference 1 field. Max 10 per request.

Args:
  \- references (string[]): Reference 1 values (max 10)

Input parameters:

- `references` (array, required): Reference 1 values (max 10)

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_get_pending_consignments_by_reference2` (~64 tokens)

Get Pending Consignments by Reference 2

Finds pending consignments by Reference 2 field. Max 10 per request.

Args:
  \- references (string[]): Reference 2 values (max 10)

Input parameters:

- `references` (array, required): Reference 2 values (max 10)

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_get_recent_pending_consignments` (~258 tokens)

Get Recently Created/Updated Pending Consignments

Returns pending consignments created or updated within a UTC date range. Useful for sync workflows.

Args:
  \- companyId (number): Company ID
  \- fromDateUtc (string): Start datetime UTC (ISO 8601)
  \- toDateUtc (string): End datetime UTC (ISO 8601)
  \- startIndex (number, optional): Pagination start
  \- retrieveSize (number, optional): Page size
  \- carrierId (number, optional): Filter by carrier
  \- includeChildCompanies (boolean, optional): Include sub-companies
  \- getDeleted (boolean, optional): Include deleted pending consignments

Input parameters:

- `carrierId` (integer): Filter by carrier ID
- `companyId` (integer, required): Company ID
- `fromDateUtc` (string, required): Start datetime UTC (ISO 8601)
- `getDeleted` (boolean): Include deleted pending consignments
- `includeChildCompanies` (boolean): Include pending consignments from child companies
- `retrieveSize` (integer): Number of results to return (max 200)
- `startIndex` (integer): Pagination start index
- `toDateUtc` (string, required): End datetime UTC (ISO 8601)

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_delete_pending_consignments` (~49 tokens)

Delete Pending Consignments

Deletes one or more pending consignments.

Args:
  \- ids (number[]): Pending consignment IDs to delete

Input parameters:

- `ids` (array, required): Pending consignment IDs to delete

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_create_quote` (~238 tokens)

Create Quote

Creates a freight quote in Machship — returns available carrier rates for a shipment.
Use this to compare carrier prices and transit times before creating a consignment.

Args:
  \- quote (object): Quote request including:
    - companyId (number): Company to quote under
    - fromAddress or fromLocationId: Pickup address or location ID
    - toAddress: Delivery address (suburb, postcode, state, country)
    - items: Array of items with weight (kg), length/width/height (cm)
    - carrierId / serviceId (optional): Filter to a specific carrier/service

Returns:
  Array of available rate options, each with:
  { "carrierId", "serviceName", "totalCost", "transitDays", "accountId" }

Examples:
  \- Use when: "Get freight quotes from Sydney to Melbourne for a 5kg parcel"
  \- Don't use when: You already have a carrier in mind — use machship_create_consignment directly

Input parameters:

- `quote` (object, required): Quote request body (companyId, fromAddress/fromLocationId, toAddress, items)

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_create_quote_complex_items` (~121 tokens)

Create Quote with Complex Items

Creates a freight quote using complex item definitions (detailed packaging, dangerous goods, serialisation data).

Args:
  \- quote (object): Quote request with complexItems array instead of standard items

Returns: Same as machship_create_quote — array of rate options with cost and transit info.

Examples:
  \- Use when: Items have dangerous goods codes, serial numbers, or non-standard packaging
  \- Use when: machship_create_quote returned a validation error about item structure

Input parameters:

- `quote` (object, required): Quote request with complexItems array

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_get_quotes` (~188 tokens)

Get All Quotes

Returns all quotes for a given company.

Args:
  \- companyId (number): Company ID
  \- response_format ('json' | 'markdown'): Output format (default: 'json')

Returns:
  Array of quote summary objects:
  { "id": number, "reference": string, "status": string, "createdDate": string }

Examples:
  \- Use when: "List all quotes for company 123"
  \- Use when: You need a quote ID to pass to machship_get_quote for full details
  \- Don't use when: You want to create a new quote (use machship_create_quote instead)

Error Handling:
  \- Error 404: companyId does not exist or is not accessible

Input parameters:

- `companyId` (integer, required): Company ID
- `response_format` (string): Output format: 'json' (default) or 'markdown'

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_get_quote` (~144 tokens)

Get Quote

Returns full details for a single quote by ID, including all carrier rate options.

Args:
  \- id (number): Quote ID
  \- response_format ('json' | 'markdown'): Output format (default: 'json')

Returns:
  Full quote object with all carrier rate options, addresses, and item details.

Examples:
  \- Use when: "Show me the full details for quote 456"
  \- Use when: You have a quote ID and need the carrier rates to pick one for a consignment

Input parameters:

- `id` (integer, required): Quote ID
- `response_format` (string): Output format: 'json' (default) or 'markdown'

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_get_routes` (~305 tokens)

Get Available Routes

Returns a list of available freight routes and carrier services for a single shipment request.
Use this to find all carrier options (rates, ETAs) before creating a consignment.

Args:
  \- request (object): Route request including:
    - companyId: Company ID (required)
    - fromLocation: { suburb, postcode, state, country } — origin location
    - toLocation: { suburb, postcode, state, country } — destination location
    - items: Array of packages with weight (kg), length/width/height (cm), name (string), quantity (integer > 0)
    - despatchDate (optional): Planned despatch date (ISO 8601)

Example:
  {
    "companyId": 1790,
    "fromLocation": { "suburb": "Melbourne", "postcode": "3000", "state": "VIC", "country": "AU" },
    "toLocation": { "suburb": "Sydney", "postcode": "2000", "state": "NSW", "country": "AU" },
    "items": [{ "weight": 10, "length": 30, "width": 30, "height": 30, "name": "Parcel", "quantity": 1 }]
  }

Input parameters:

- `request` (object, required): Route request (companyId, from/to location, items with weight/dimensions, optional despatchDate)

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_get_routes_batch` (~65 tokens)

Get Available Routes (Batch)

Returns available routes for multiple shipment requests in a single call.
Efficient for bulk rate shopping across multiple shipments.

Args:
  \- requests (array): Array of route request objects (same structure as single route request)

Input parameters:

- `requests` (array, required): Array of route requests

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

### `machship_get_routes_complex_items` (~69 tokens)

Get Available Routes with Complex Items

Returns available routes for a shipment with complex item definitions (dangerous goods, specialised packaging).

Args:
  \- request (object): Route request with complexItems array (including dangerous goods classifications)

Input parameters:

- `request` (object, required): Route request with complexItems (dangerous goods, specialised packaging)

Output parameters:

- `errors`: Validation errors returned by Machship, if any
- `object`: Response payload from the Machship API

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/devkindhq-machship-mcp/devkind-machship-mcp#diagnostics

## Score history

- 2026-11-05: 71
- 2026-11-04: 71
- 2026-11-03: 69
- 2026-11-02: 49

## Common questions

### What is the Machship MCP server?

Machship MCP is listed in the public MCP registry as io.github.devkindhq/machship-mcp. Model Context Protocol server for the Machship freight management platform. This page covers its npm package (@devkind/machship-mcp).

### Is the Machship MCP server safe to use?

Machship MCP scores 71 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 5 November 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the Machship MCP server expose?

Machship MCP exposes 125 tools: machship_ping, machship_get_attachment, machship_get_attachment_pod_report, machship_get_attachments_by_consignment_ids, machship_upload_attachments, and 120 more. Their descriptions and schemas cost roughly 11,729 tokens of context every time the server is loaded.

### Is the Machship MCP server still maintained?

Machship MCP is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

### What licence is the Machship MCP server under?

Machship MCP declares the ISC licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.

## Links

- npm package: https://www.npmjs.com/package/@devkind/machship-mcp
- Socket report: https://socket.dev/npm/package/@devkind/machship-mcp
- Repository: https://github.com/devkindhq/machship-mcp
- Website: https://devkind.com.au/services
- Changelog RSS feed: https://verifymcp.io/servers/devkindhq-machship-mcp/devkind-machship-mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/devkindhq-machship-mcp/devkind-machship-mcp.json
- HTML version of this page: https://verifymcp.io/servers/devkindhq-machship-mcp/devkind-machship-mcp
