machship-mcp
Use this MCP server to run Machship freight operations from an MCP client, covering quoting/bookings, labels/documents, tracking, invoicing, and account administration.
Verify authentication and retrieve session/company context with
machship_ping.Discover companies, carriers, accounts, services, company locations, and saved items/SKUs.
Search/validate suburb/postcode locations and exact location matches.
Get live freight rates/quotes and route options (as described in the README).
Create, edit, delete, clone, search, batch-fetch, consolidate, and list consignments, including complex items and saved items.
Retrieve tracking statuses, update statuses manually, and find consignments by references, carrier IDs, pending IDs, or date/status filters.
Download/upload attachments, commercial invoices, POD reports, and generate label/document PDFs for consignments, items, manifests, dangerous goods, MO41, and special instructions.
Send labels to configured printers and get PDF file metadata.
List/group manifests and manage permanent pickups for company locations.
Retrieve carrier invoices and financial invoices, filter invoice entries, reprice consignments, and attempt auto-reconciliation.
Manage identities, roles, identity providers, company links, and custom schemas, including destructive deletes/disable/re-enable operations.
Run over stdio or HTTP mode; HTTP mode has no built-in authentication.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@machship-mcp Create a consignment for a 5kg box from Auckland to Wellington"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Machship MCP Server: freight quotes, bookings and labels for AI agents
Machship MCP server connects Claude Desktop, Claude Code, Cursor, VS Code and any other MCP client to the Machship freight platform API. It has 125 tools for live rates, quotes, consignments, labels, manifests, tracking and invoices. It runs with npx over stdio, or as an HTTP endpoint.
Quickstart
You need Node.js 22 or later and a Machship API token. In Machship, go to Settings > API and generate a token.
# Read the token without echo, so it stays out of shell history
read -rs MACHSHIP_API_TOKEN
claude mcp add --scope local machship -e MACHSHIP_API_TOKEN="$MACHSHIP_API_TOKEN" -- npx -y @devkind/machship-mcpThen ask your agent: "Ping the Machship API". A successful reply confirms the token.
Install in your client
Requirements:
Node.js 22 or later
A Machship API token
Claude Desktop, Claude Code, Cursor, VS Code, Windsurf, Goose, LM Studio, Warp, or another MCP client
Standard config works in most MCP clients:
{
"mcpServers": {
"machship": {
"command": "npx",
"args": ["-y", "@devkind/machship-mcp"],
"env": {
"MACHSHIP_API_TOKEN": "your-token-here"
}
}
}
}Keep the token in your user-level client config. Do not put it in a project .mcp.json that you commit.
Open Settings > Developer > Edit Config, or edit the file directly:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
Add the standard config above and restart Claude Desktop.
Use the Quickstart command above. --scope local stores the token in ~/.claude.json, outside the repository. You can also install the Claude Code plugin.
Or go to Cursor Settings > MCP > Add new MCP Server. Use type command, the command npx -y @devkind/machship-mcp, and set MACHSHIP_API_TOKEN.
code --add-mcp '{"name":"machship","command":"npx","args":["-y","@devkind/machship-mcp"],"env":{"MACHSHIP_API_TOKEN":"your-token-here"}}'Or follow the VS Code MCP setup guide with the standard config above.
Follow the Windsurf MCP documentation and add the standard config above.
Go to Advanced settings > Extensions > Add custom extension. Use type STDIO, the command npx -y @devkind/machship-mcp, and set MACHSHIP_API_TOKEN.
Go to Program in the right sidebar > Install > Edit mcp.json and add the standard config above.
Go to Settings > AI > Manage MCP Servers > + Add, or type /add-mcp in the Warp prompt. Paste the standard config above.
No image is published to a registry. Build the image from this repo:
docker build -t devkind/machship-mcp .Stdio config for an MCP client:
{
"mcpServers": {
"machship": {
"command": "docker",
"args": ["run", "--rm", "-i", "-e", "MACHSHIP_API_TOKEN", "devkind/machship-mcp"],
"env": { "MACHSHIP_API_TOKEN": "your-token-here" }
}
}
}HTTP mode on port 3000. The image sets MCP_HOST=0.0.0.0, so the published port accepts outside connections:
docker run --rm -e MACHSHIP_API_TOKEN -e TRANSPORT=http -p 3000:3000 devkind/machship-mcpThe server is also listed on Smithery.
Related MCP server: Deftship MCP Server
Tools
The server has 125 tools in 21 modules. Every tool name starts with machship_.
Area | Modules | Tools |
Consignments | Consignments, PendingConsignments, Consolidation, Notes | 36 |
Labels and documents | Labels, Attachments, CommercialInvoices | 22 |
Accounts and access | Identities, IdentityProviders, OrganisationLinks, CustomSchemas | 28 |
Companies, items and locations | Companies, CompanyItems, CompanyLocations, Locations | 20 |
Rates | Quotes, Routes | 7 |
Invoices | CarrierInvoices, FinancialInvoice | 6 |
Manifests | Manifests | 5 |
Connection check | Authenticate ( | 1 |
A typical flow: machship_get_companies for the company ID, machship_search_locations for suburbs and postcodes, machship_get_routes for live rates, machship_create_consignment to book, a label tool, then machship_manifest_consignments to send the booking to the carrier. machship_get_consignment_statuses tracks it.
Tool text output stops at 25,000 characters. The full response is in structuredContent.
Example
{
"tool": "machship_get_routes",
"arguments": {
"request": {
"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 }]
}
}
}Illustrative output:
{
"object": {
"routes": [
{
"carrier": { "name": "Example Express" },
"carrierService": { "name": "Road Express" },
"consignmentTotal": { "totalSellPrice": 24.5 },
"despatchOptions": [{ "etaLocal": "2026-11-05T17:00:00" }]
}
]
},
"errors": null
}Configuration
Variable | Required | Default | Purpose |
| Yes | none | Machship API token, sent only to |
| No |
| Machship API base URL. |
| No |
| Set to |
| No |
| HTTP port when |
| No |
| HTTP bind address when |
Network access and data
The plugin starts the server with
npx, so npx downloads the pinned@devkind/machship-mcppackage from the npm registry.The server sends requests only to
MACHSHIP_API_URL(defaulthttps://live.machship.com). Each request carries your API token and the tool arguments, such as addresses, items, consignment IDs and the invoice files you upload.Labels and other documents come back in the tool result as base64. The server writes no files.
The server sends no telemetry and stores no data. It writes errors to stderr only.
In HTTP mode the server also accepts requests on
MCP_HOSTandPORT. See HTTP mode.
Claude Code plugin
The repo root is a Claude Code plugin. It adds the Machship MCP server, pinned to a release version of @devkind/machship-mcp (.mcp.json). When you enable the plugin, Claude Code asks for your API token and stores it as a sensitive value. You can also change the API URL.
The plugin also ships the machship-freight skill. The skill teaches Claude the freight workflow with exact tool names: rates, consignment, labels, manifest and tracking. It also tells Claude to ask you before it books, manifests or deletes.
Install it from this repo's marketplace (Claude Code 2.1.275 or later):
/plugin install machship --marketplace devkindhq/machship-mcpThe plugin will also be in the Claude plugin directory once it is listed. On older Claude Code versions, use the claude mcp add command in the Quickstart.
HTTP mode
MACHSHIP_API_TOKEN=your-token TRANSPORT=http npx -y @devkind/machship-mcpMCP endpoint:
POST http://localhost:3000/mcp(Streamable HTTP, stateless, JSON responses)Health check:
GET http://localhost:3000/health
By default the server listens on 127.0.0.1 only. It rejects requests whose Host header is not localhost, 127.0.0.1 or ::1, which blocks DNS rebinding attacks from web pages. Set MCP_HOST=0.0.0.0 to listen on all interfaces, for example in a container.
Warning: HTTP mode has no authentication, and every request uses the server's Machship token. If you set
MCP_HOSTto anything other than a loopback address, put an authenticating proxy in front of the server.
Security notes
HTTP mode has no authentication. See HTTP mode before you set
MCP_HOST.Tools can create, edit and delete live consignments, identities and organisation links. Tool annotations mark the delete and remove tools as destructive, so a client can ask you to confirm them.
machship_update_identitysets omitted fields to null.Use a token with the smallest Machship permissions that your work needs.
Development
This repo uses Yarn 1 (yarn.lock). Do not use npm install.
git clone https://github.com/devkindhq/machship-mcp.git
cd machship-mcp
yarn install
yarn lint && yarn build
MACHSHIP_API_TOKEN=your-token yarn startSee CONTRIBUTING.md for the checks, commit style and release flow.
Built by
Built by Devkind. Maintained by the Devkind team.
License
ISC. See CONTRIBUTING.md and SECURITY.md.
Automating freight for your store?
If you ship with Machship, Devkind can connect it to the rest of your stack. We build on Shopify, Swell and headless commerce stacks, and build custom MCP servers and AI agent workflows. Talk to Devkind or email hello@devkind.com.au.
Available Tools
125 toolsmachship_add_organisation_linkAdd Organisation LinkB
Links another organisation into yours using their public key.
Args:
request (object): Link request with the partner's publicKey and optional configuration
Inputs: request (required). Returns: errors, object
machship_add_permanent_pickupsAdd Permanent Pickups to Company LocationB
Adds permanent scheduled pickups to a company location.
Args:
payload (object): Contains companyLocationId and pickup schedule details
Inputs: payload (required). Returns: errors, object
machship_attempt_auto_reconciliationAttempt Auto ReconciliationB
Attempts automatic reconciliation of carrier invoices based on configured carrier thresholds.
Args:
body (object): Reconciliation request payload (carrierInvoiceId, etc.)
Inputs: body (required). Returns: errors, object
machship_create_company_locationCreate Company LocationC
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.
Inputs: location (required). Returns: errors, object
machship_create_consignmentCreate ConsignmentB
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.
Inputs: consignment (required). Returns: errors, object
machship_create_consignment_existing_itemsCreate Consignment with Existing Saved ItemsB
Creates a consignment using previously saved company items (by item ID / SKU).
Args:
consignment (object): Consignment data referencing existing saved item IDs
Inputs: consignment (required). Returns: errors, object
machship_create_consignment_with_complex_itemsCreate Consignment with Complex ItemsB
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
Inputs: consignment (required). Returns: errors, object
machship_create_custom_schemaCreate Custom SchemaB
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
Inputs: name (required), type (required), schema (required). Returns: errors, object
machship_create_identitiesCreate IdentitiesA
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
Inputs: identities (required). Returns: errors, object
machship_create_item_complexCreate Complex Company ItemB
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.
Inputs: item (required), companyId (required). Returns: errors, object
machship_create_pending_consignmentCreate Pending ConsignmentA
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.
Inputs: consignment (required). Returns: errors, object
machship_create_quoteCreate QuoteA
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
Inputs: quote (required). Returns: errors, object
machship_create_quote_complex_itemsCreate Quote with Complex ItemsA
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
Inputs: quote (required). Returns: errors, object
machship_delete_consignmentsDelete Unmanifested ConsignmentsADestructive
Deletes multiple unmanifested consignments. Cannot delete manifested consignments.
Args:
ids (number[]): Array of consignment IDs to delete
Inputs: ids (required). Returns: errors, object
machship_delete_custom_schemaDelete Custom SchemaADestructive
Deletes a custom schema by its DotNet class ID. This is irreversible.
Args:
id (string): DotNet class ID of the schema to delete
Inputs: id (required). Returns: errors, object
machship_delete_identitiesDelete IdentitiesADestructive
Delete the identities with the given IDs. This action is irreversible.
Args:
ids (number[]): Array of identity IDs to delete
Inputs: ids (required). Returns: errors, object
machship_delete_itemDelete Company ItemBDestructive
Deletes a saved item from a company. This action is irreversible.
Args:
companyItemId (number): The ID of the item to delete
Inputs: companyItemId (required). Returns: errors, object
machship_delete_pending_consignmentsDelete Pending ConsignmentsBDestructive
Deletes one or more pending consignments.
Args:
ids (number[]): Pending consignment IDs to delete
Inputs: ids (required). Returns: errors, object
machship_disable_identitiesDisable IdentitiesA
Disable the identities with the given IDs, preventing them from logging in.
Args:
ids (number[]): Array of identity IDs to disable
Inputs: ids (required). Returns: errors, object
machship_edit_company_locationEdit Company LocationC
Edits an existing company location.
Args:
location (object): Updated location data including id and any fields to update
Inputs: location (required). Returns: errors, object
machship_edit_consignmentEdit Unmanifested ConsignmentA
Edits an existing unmanifested (not yet booked) consignment. Cannot edit manifested consignments.
Args:
consignment (object): Updated consignment data including the consignment id
Inputs: consignment (required). Returns: errors, object
machship_get_active_consignmentsGet Active ConsignmentsBRead-onlyIdempotent
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
Inputs: companyId (required), carrierId, startIndex, retrieveSize, +1 more. Returns: errors, object
machship_get_all_consignmentsGet All ConsignmentsCRead-onlyIdempotent
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
Inputs: companyId (required), carrierId, startIndex, retrieveSize, +5 more. Returns: errors, object
machship_get_attachmentGet AttachmentBRead-onlyIdempotent
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
Inputs: id (required). Returns: errors, object
machship_get_attachment_pod_reportGet Attachment POD ReportARead-onlyIdempotent
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
Inputs: id (required). Returns: errors, object
machship_get_attachments_by_consignment_idsGet Attachments by Consignment IDsARead-onlyIdempotent
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)
Inputs: ids (required). Returns: errors, object
machship_get_available_rolesGet Available RolesBRead-onlyIdempotent
Get all roles that are available to assign to users of a certain company.
Args:
companyId (number): Company ID
Inputs: companyId (required). Returns: errors, object
machship_get_carrier_invoice_entriesGet Carrier Invoice EntriesCRead-onlyIdempotent
Gets carrier invoice line entries with optional status filtering.
Args:
carrierInvoiceId (number): The carrier invoice ID
status (string, optional): Filter entries by status
Inputs: carrierInvoiceId (required), status. Returns: errors, object
machship_get_carrier_invoicesGet Carrier InvoicesBRead-onlyIdempotent
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
Inputs: fileName, carrierId, companyId, invoiceId. Returns: errors, object
machship_get_commercial_invoice_pdfGet Commercial Invoice PDFARead-onlyIdempotent
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
Inputs: consignmentId (required). Returns: errors, object
machship_get_companiesGet CompaniesARead-onlyIdempotent
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
Inputs: response_format, atOrBelowCompanyId. Returns: errors, object
machship_get_company_carriersGet Company Carriers, Accounts and ServicesARead-onlyIdempotent
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)
Inputs: companyId (required), response_format. Returns: errors, object
machship_get_company_locationGet Company LocationARead-onlyIdempotent
Returns details for a single company location (warehouse, store, depot).
Args:
id (number): Company location ID
Inputs: id (required). Returns: errors, object
machship_get_company_locationsGet All Company LocationsARead-onlyIdempotent
Returns all locations (warehouses, stores, depots) for a given company.
Args:
companyId (number): Company ID
Inputs: companyId (required). Returns: errors, object
machship_get_completed_consignmentsGet Completed ConsignmentsBRead-onlyIdempotent
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
Inputs: endDate (required), companyId (required), startDate (required), includeChildCompanies. Returns: errors, object
machship_get_consignmentGet ConsignmentBRead-onlyIdempotent
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
Inputs: id (required), includeDeleted, includeRequestGuids. Returns: errors, object
machship_get_consignment_attachmentsGet Consignment AttachmentsARead-onlyIdempotent
Returns attachment metadata (not file contents) for a consignment.
Args:
consignmentId (number): Consignment ID
Inputs: consignmentId (required). Returns: errors, object
machship_get_consignment_by_pending_idGet Consignment by Pending Consignment IDARead-onlyIdempotent
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
Inputs: id (required). Returns: errors, object
machship_get_consignment_creation_settingsGet Consignment Creation SettingsARead-onlyIdempotent
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)
Inputs: companyId. Returns: errors, object
machship_get_consignment_for_cloneGet Consignment for CloneARead-onlyIdempotent
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
Inputs: id (required). Returns: errors, object
machship_get_consignment_label_pdfGet Consignment Label PDFBRead-onlyIdempotent
Returns the consignment label PDF. Returns { fileBase64, contentType, sizeBytes }. contentType comes from the response header.
Args:
consignmentId (number): Consignment ID
Inputs: consignmentId (required). Returns: errors, object
machship_get_consignment_notesGet Consignment NotesARead-onlyIdempotent
Returns all notes attached to a consignment (internal comments, delivery instructions, etc.).
Args:
id (number): Consignment ID
Inputs: id (required). Returns: errors, object
machship_get_consignment_pdf_file_infoGet Consignment PDF File InfoBRead-onlyIdempotent
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
Inputs: consignmentId (required). Returns: errors, object
machship_get_consignments_by_carrier_idGet Consignments by Carrier Consignment IDARead-onlyIdempotent
Finds consignments by carrier's own consignment/tracking ID. Max 10 per request.
Args:
carrierConsignmentIds (string[]): Array of carrier consignment IDs (max 10)
Inputs: carrierConsignmentIds (required). Returns: errors, object
machship_get_consignments_by_idsGet Consignments by IDs (Batch)ARead-onlyIdempotent
Returns details for multiple consignments by their IDs (max 100 per request).
Args:
ids (number[]): Array of consignment IDs (max 100)
Inputs: ids (required). Returns: errors, object
machship_get_consignments_by_pending_idsGet Consignments by Pending Consignment IDs (Batch)BRead-onlyIdempotent
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)
Inputs: ids (required). Returns: errors, object
machship_get_consignments_by_reference1Get Consignments by Reference 1BRead-onlyIdempotent
Finds consignments by their Reference 1 field (order number, etc). Max 10 per request.
Args:
references (string[]): Array of Reference 1 values (max 10)
Inputs: references (required). Returns: errors, object
machship_get_consignments_by_reference2Get Consignments by Reference 2BRead-onlyIdempotent
Finds consignments by their Reference 2 field. Max 10 per request.
Args:
references (string[]): Array of Reference 2 values (max 10)
Inputs: references (required). Returns: errors, object
machship_get_consignment_statusesGet Consignment Tracking StatusesARead-onlyIdempotent
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)
Inputs: ids (required), sinceDateCreatedUtc. Returns: errors, object
machship_get_custom_schemaGet Custom Schema by IDCRead-onlyIdempotent
Returns a specific custom schema by its DotNet class ID.
Args:
id (string): The DotNet class ID of the schema
Inputs: id (required). Returns: errors, object
machship_get_custom_schemasGet All Custom SchemasARead-onlyIdempotent
Returns all custom schemas defined in the Machship organisation. Custom schemas extend Machship entities with additional fields.
Inputs: no named parameters. Returns: errors, object
machship_get_dangerous_goods_pdfGet Dangerous Goods Document PDFARead-onlyIdempotent
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
Inputs: consignmentId (required). Returns: errors, object
machship_get_dangerous_goods_pdf_file_infoGet Dangerous Goods Document PDF File InfoBRead-onlyIdempotent
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
Inputs: consignmentId (required). Returns: errors, object
machship_get_identitiesGet IdentitiesARead-onlyIdempotent
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
Inputs: organisationId (required), identityProviderId, onlyUnlinkedIdentities. Returns: errors, object
machship_get_identityGet IdentityBRead-onlyIdempotent
Get the identity with the given ID.
Args:
id (number): Identity ID
Inputs: id (required). Returns: errors, object
machship_get_identity_providerGet Identity ProviderBRead-onlyIdempotent
Get a specific identity provider by ID.
Args:
identityProviderId (number): Identity provider ID
Inputs: identityProviderId (required). Returns: errors, object
machship_get_identity_providers_for_companyGet Identity Providers for CompanyARead-onlyIdempotent
Get all identity providers associated with a specific company.
Args:
companyId (number): Company ID
Inputs: companyId (required). Returns: errors, object
machship_get_identity_providers_for_logged_userGet Identity Providers for Logged-in UserARead-onlyIdempotent
Returns all identity providers for the current user's organisation. No parameters required.
Inputs: no named parameters. Returns: errors, object
machship_get_identity_providers_for_organisationGet Identity Providers for OrganisationCRead-onlyIdempotent
Returns all identity providers for the specified organisation.
Args:
organisationId (number): Organisation ID
Inputs: organisationId (required). Returns: errors, object
machship_get_invoice_by_document_numberGet Financial Invoice by Document NumberBRead-onlyIdempotent
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
Inputs: documentNumber (required), returnPdfFileBytes. Returns: errors, object
machship_get_itemGet Company ItemARead-onlyIdempotent
Returns a single saved item (product/SKU) with its dimensions by ID.
Args:
id (number): Item ID
Inputs: id (required). Returns: errors, object
machship_get_item_by_skuGet Company Item by SKUBRead-onlyIdempotent
Returns a saved item matching the given SKU for a company.
Args:
companyId (number): Company ID
sku (string): Product SKU code
Inputs: sku (required), companyId (required). Returns: errors, object
machship_get_item_complexGet Complex Company ItemARead-onlyIdempotent
Returns a single complex item (with detailed dimensions/packaging data) by ID.
Args:
id (number): Item ID
Inputs: id (required). Returns: errors, object
machship_get_item_complex_by_skuGet Complex Company Item by SKUARead-onlyIdempotent
Returns a complex item (detailed dimensions) by SKU for a company.
Args:
companyId (number): Company ID
sku (string): Product SKU code
Inputs: sku (required), companyId (required). Returns: errors, object
machship_get_item_label_pdfGet Item Label PDFBRead-onlyIdempotent
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)
Inputs: consignmentId (required), printA4. Returns: errors, object
machship_get_item_labels_zipGet Item Labels ZIP (Batch)ARead-onlyIdempotent
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
Inputs: consignmentIds (required), printA4, singlePdf. Returns: errors, object
machship_get_item_pdf_file_infoGet Item Label PDF File InfoARead-onlyIdempotent
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
Inputs: consignmentId (required), printA4. Returns: errors, object
machship_get_itemsGet All Company ItemsARead-onlyIdempotent
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)
Inputs: companyId (required), startIndex, retrieveSize. Returns: errors, object
machship_get_items_by_skusGet Company Items by SKUs (Batch)ARead-onlyIdempotent
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)
Inputs: skus (required), companyId (required). Returns: errors, object
machship_get_items_complexGet All Complex Company ItemsARead-onlyIdempotent
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)
Inputs: companyId (required), startIndex, retrieveSize. Returns: errors, object
machship_get_linked_from_organisationsGet Linked-From OrganisationsBRead-onlyIdempotent
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
Inputs: sort, searchText, startIndex, retrieveSize. Returns: errors, object
machship_get_linked_to_organisationsGet Linked-To OrganisationsBRead-onlyIdempotent
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
Inputs: sort, searchText, startIndex, retrieveSize. Returns: errors, object
machship_get_locations_exactGet Locations (Exact Match)BRead-onlyIdempotent
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
Inputs: locations (required). Returns: errors, object
machship_get_locations_with_optionsGet Locations with Search OptionsCRead-onlyIdempotent
Returns locations with additional search options/filters applied.
Args:
s (string): Search string
options (object): Additional search options (country, state, etc.)
Inputs: s (required), options. Returns: errors, object
machship_get_manifest_label_pdfGet Manifest Label PDFBRead-onlyIdempotent
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
Inputs: manifestId (required). Returns: errors, object
machship_get_manifest_label_pdf_by_consignmentGet Manifest Label PDF by ConsignmentARead-onlyIdempotent
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
Inputs: consignmentId (required). Returns: errors, object
machship_get_manifest_pdf_file_infoGet Manifest PDF File InfoBRead-onlyIdempotent
Returns the manifest PDF as JSON. object.content holds the file as base64, with object.fileName and object.contentType.
Args:
manifestId (number): Manifest ID
Inputs: manifestId (required). Returns: errors, object
machship_get_manifestsGet ManifestsARead-onlyIdempotent
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
Inputs: endDate, carrierId, companyId, startDate, +4 more. Returns: errors, object
machship_get_mo41_document_pdfGet MO41 Document PDFARead-onlyIdempotent
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
Inputs: consignmentId (required). Returns: errors, object
machship_get_mo41_document_pdf_file_infoGet MO41 Document PDF File InfoARead-onlyIdempotent
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
Inputs: consignmentId (required). Returns: errors, object
machship_get_organisation_by_public_keyGet Organisation Details by Public KeyARead-onlyIdempotent
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
Inputs: publicKey (required). Returns: errors, object
machship_get_organisation_linksGet Organisation LinksBRead-onlyIdempotent
Returns all links (partnerships/integrations) that exist for an organisation.
Args:
id (number, optional): Organisation ID (leave blank for current authenticated org)
Inputs: id. Returns: errors, object
machship_get_organisation_public_keyGet Organisation Public KeyARead-onlyIdempotent
Returns the public key for an organisation, used to set up inter-organisation links.
Args:
id (number, optional): Organisation ID (defaults to current org)
Inputs: id. Returns: errors, object
machship_get_pending_consignmentGet Pending ConsignmentARead-onlyIdempotent
Returns details for a single pending consignment by ID.
Args:
id (number): Pending consignment ID
Inputs: id (required). Returns: errors, object
machship_get_pending_consignments_by_idsGet Pending Consignments by IDs (Batch)BRead-onlyIdempotent
Returns details for multiple pending consignments by IDs (max 10 per request).
Args:
ids (number[]): Pending consignment IDs (max 10)
Inputs: ids (required). Returns: errors, object
machship_get_pending_consignments_by_reference1Get Pending Consignments by Reference 1BRead-onlyIdempotent
Finds pending consignments by Reference 1 field. Max 10 per request.
Args:
references (string[]): Reference 1 values (max 10)
Inputs: references (required). Returns: errors, object
machship_get_pending_consignments_by_reference2Get Pending Consignments by Reference 2BRead-onlyIdempotent
Finds pending consignments by Reference 2 field. Max 10 per request.
Args:
references (string[]): Reference 2 values (max 10)
Inputs: references (required). Returns: errors, object
machship_get_permanent_pickupsGet Permanent Pickups for Company LocationARead-onlyIdempotent
Gets all permanent scheduled pickups configured for a company location.
Args:
companyLocationId (number): Company location ID
Inputs: companyLocationId (required). Returns: errors, object
machship_get_posted_invoicesGet Posted Financial InvoicesBRead-onlyIdempotent
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)
Inputs: endDate, startDate, startIndex, retrieveSize. Returns: errors, object
machship_get_quoteGet QuoteARead-onlyIdempotent
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
Inputs: id (required), response_format. Returns: errors, object
machship_get_quotesGet All QuotesARead-onlyIdempotent
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
Inputs: companyId (required), response_format. Returns: errors, object
machship_get_recent_consignmentsGet Recently Created or Updated ConsignmentsARead-onlyIdempotent
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
Inputs: companyId (required), toDateUtc (required), fromDateUtc (required), getNotes, +5 more. Returns: errors, object
machship_get_recent_pending_consignmentsGet Recently Created/Updated Pending ConsignmentsBRead-onlyIdempotent
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
Inputs: companyId (required), toDateUtc (required), fromDateUtc (required), carrierId, +4 more. Returns: errors, object
machship_get_routesGet Available RoutesARead-only
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 }] }
Inputs: request (required). Returns: errors, object
machship_get_routes_batchGet Available Routes (Batch)BRead-only
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)
Inputs: requests (required). Returns: errors, object
machship_get_routes_complex_itemsGet Available Routes with Complex ItemsBRead-only
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)
Inputs: request (required). Returns: errors, object
machship_get_special_instructions_pdfGet Special Instructions PDFBRead-onlyIdempotent
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
Inputs: consignmentId (required), printA4. Returns: errors, object
machship_get_unmanifested_consignment_for_editGet Unmanifested Consignment for EditARead-onlyIdempotent
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)
Inputs: id (required). Returns: errors, object
machship_get_unmanifested_consignmentsGet Unmanifested ConsignmentsARead-onlyIdempotent
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
Inputs: companyId (required), carrierId, startIndex, retrieveSize, +1 more. Returns: errors, object
machship_group_all_for_manifestGroup All Unmanifested Consignments for ManifestARead-only
Groups ALL unmanifested consignments for a company into manifest groups (preview before manifesting).
Args:
companyId (number): Company ID
Inputs: companyId (required). Returns: errors, object
machship_group_and_perform_consolidationGroup and Perform ConsolidationB
Groups and consolidates consignments in a single operation (combines grouping + performing).
Args:
options (object): Consolidation options (companyId, carrierId, grouping rules, etc.)
Inputs: options (required). Returns: errors, object
machship_group_consignments_for_consolidationGroup Consignments for ConsolidationARead-only
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.)
Inputs: options (required). Returns: errors, object
machship_group_consignments_for_manifestGroup Consignments for ManifestBRead-only
Groups a specific set of consignments into manifest groups (preview before manifesting).
Args:
consignmentIds (number[]): Consignment IDs to group
Inputs: consignmentIds (required). Returns: errors, object
machship_group_consignments_for_printingGroup Consignments for PrintingBRead-only
Groups consignments for batch label printing and returns print groups.
Args:
consignmentIds (number[]): Consignment IDs to group for printing
Inputs: consignmentIds (required). Returns: errors, object
machship_link_identities_to_companiesLink Identities to CompaniesB
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
Inputs: links (required). Returns: errors, object
machship_manifest_consignmentsManifest / Book Consignments with CarrierA
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
Inputs: manifests (required). Returns: errors, object
machship_perform_consolidationPerform ConsolidationB
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
Inputs: request (required). Returns: errors, object
machship_pingPing / Check Auth StatusARead-onlyIdempotent
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.
Inputs: no named parameters. Returns: errors, object
machship_rebook_manifest_pickupRebook Manifest PickupA
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
Inputs: rebooking (required). Returns: errors, object
machship_reenable_identitiesRe-enable IdentitiesA
Re-enable previously disabled identities, restoring login access.
Args:
ids (number[]): Array of identity IDs to re-enable
Inputs: ids (required). Returns: errors, object
machship_remove_organisation_linkRemove Organisation LinkBDestructive
Removes an existing link between two organisations. This action is irreversible.
Args:
request (object): Unlink request with organisationLinkId to remove
Inputs: request (required). Returns: errors, object
machship_reset_organisation_public_keyReset Organisation Public KeyA
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)
Inputs: id. Returns: errors, object
machship_return_identity_public_keysReturn Identity Public KeysARead-onlyIdempotent
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
Inputs: ids (required). Returns: errors, object
machship_return_item_pdfs_for_consignmentsReturn Item PDFs for Consignments (POST)ARead-onlyIdempotent
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
Inputs: consignmentIds (required), printA4. Returns: errors, object
machship_search_consignmentsSearch ConsignmentsCRead-onlyIdempotent
Searches consignments by reference numbers (Reference 1, Reference 2, or carrier IDs).
Args:
references (string[]): Array of reference strings to search for
Inputs: references (required). Returns: errors, object
machship_search_locationsSearch LocationsARead-onlyIdempotent
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
Inputs: s (required), response_format. Returns: errors, object
machship_send_labels_to_printerSend Labels to PrinterB
Sends labels directly to a configured printer in Machship.
Args:
requests (array): Array of print requests, each with consignmentId, printerId, labelType, etc.
Inputs: requests (required). Returns: errors, object
machship_unlink_identities_from_companiesUnlink Identities from CompaniesB
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
Inputs: unlinks (required). Returns: errors, object
machship_update_consignment_statusesUpdate Consignment Tracking StatusesB
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
Inputs: statuses (required). Returns: errors, object
machship_update_custom_schemaUpdate Custom SchemaC
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
Inputs: id (required), schema (required). Returns: errors, object
machship_update_despatch_datesUpdate Despatch Dates for ManifestC
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
Inputs: updates (required). Returns: errors, object
machship_update_identityUpdate IdentityA
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)
Inputs: id (required), givenName (required), familyName (required), displayName (required), +8 more. Returns: errors, object
machship_update_reprice_consignmentUpdate and Reprice ConsignmentA
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.)
Inputs: body (required). Returns: errors, object
machship_upload_attachmentsUpload AttachmentsB
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
Inputs: attachments (required). Returns: errors, object
machship_upload_commercial_invoiceUpload Commercial InvoiceB
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
Inputs: files (required), consignmentId (required). Returns: errors, object
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 125 tools
Several tool pairs are functionally near-duplicates: the PDF getters exist in two flavours (e.g. machship_get_consignment_label_pdf vs machship_get_consignment_pdf_file_info, same for item, manifest, dangerous goods and MO41), and machship_get_item_labels_zip vs machship_return_item_pdfs_for_consignments is explicitly the same operation with a different payload style. Search surfaces also overlap heavily: machship_search_consignments versus the three machship_get_consignments_by_reference1/reference2/carrier_id tools, and machship_search_locations vs machship_get_locations_exact vs machship_get_locations_with_options. On top of that, machship_create_quote and machship_get_routes both return carrier rate options, making selection genuinely uncertain.
Almost every tool follows a predictable machship_verb_noun snake_case pattern (get_, create_, update_, delete_, group_, upload_). Minor deviations exist: machship_ping has no verb_noun form, 'edit' is used alongside 'update' (machship_edit_consignment, machship_edit_company_location vs machship_update_custom_schema, machship_update_despatch_dates), and 'return' is used inconsistently (machship_return_identity_public_keys, machship_return_item_pdfs_for_consignments). These are small blemishes rather than a broken convention.
125 tools for a single server is far past any reasonable agent-facing surface; selection cost and misselection risk dominate. A meaningful chunk of that count is redundant (duplicated PDF variants, POST-vs-GET duplicates, three location search variants), so the surface could be halved without losing capability. Even for a broad TMS domain, this is an extreme overload.
Coverage across the freight lifecycle is genuinely deep: consignments (create/edit/delete/search/statuses/despatch dates), pending consignments, quoting and route shopping, manifests and rebooking, labels/PODs/commercial invoices, attachments, items, locations, identities/roles, organisation links, custom schemas and carrier invoice reconciliation. The main gaps are around items (there is create_item_complex and delete_item but no standard create_item and no update/edit item) and no manifest cancellation operation. These are minor and workable rather than blocking.
Maintenance
Related MCP Connectors
Furgonetka MCP Server is an extension for LLMs (such as Claude) that integrates AI assistants with Poland's most popular courier brokerage platform. The server enables models to interact directly with services from various couriers (including InPost, DPD, DHL, UPS, and Poczta Polska) through a single, unified interface. With this integration, your AI stops just "writing about logistics" and starts actually managing it.
Multi-carrier shipping for AI agents: compare rates, buy labels, track packages, validate addresses
Connect MCP clients to 2,000+ AI models without managing provider API keys.
Connect any AI agent to 1,000+ apps and 27,000+ actions through one remote MCP server (OAuth).
Related MCP Servers
AlicenseNot gradedqualityDmaintenanceEnables AI agents to manage global shipping operations, including rate comparison, shipment creation, label purchasing, tracking, pickup scheduling, address validation, billing, and analytics, via natural language.25 npmMIT- AlicenseAqualityDmaintenanceEnables AI clients to quote, ship, track, void, and manage shipments via the Deftship multi-carrier shipping API using natural language commands.3212 npmMIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to track packages, rate and create shipments, manage pickups and customs documentation, and perform international shipping logistics checks through natural language.MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants in Cursor and other MCP hosts to connect to a company REST API, handling token-based authentication, read-only lookups, and guarded job/package creation with optional shipping labels.19 npmMIT