logistics-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ALLOW_WRITES | No | Set to '1' to enable the update_shipment_status tool. | 0 |
| LOGISTICS_API_URL | No | URL of the REST backend. Leave empty to use bundled demo dataset. | |
| LOGISTICS_API_TOKEN | No | Bearer token for the REST backend. Required when LOGISTICS_API_URL is set. | |
| LOGISTICS_TIMEOUT_MS | No | Per-call timeout in milliseconds for the data source. | 10000 |
| LOGISTICS_MAX_RESPONSE_BYTES | No | Maximum response size in bytes; responses above this are trimmed. | 100000 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| search_shipmentsA | Find shipments by status, creation date range, route, or customer. Returns summaries, newest first. Use this to answer 'where are the late deliveries' or 'what did customer X ship last week' before calling get_shipment for details. |
| get_shipmentA | Full detail for one shipment: items, extra charges, total amount, and the complete status history. Use after search_shipments when the summary is not enough. |
| track_shipmentA | Public tracking timeline for a shipment: the subset of events a recipient would see, without internal ops notes. Use this when the question is 'where is my package'. |
| quote_shipping_rateA | Price a shipment for a route, weight, and product. Resolves the layered rate table (base per route and weight bracket, product override, destination special) and returns the winning rule with the math, plus the price of the other products for comparison. |
| list_manifestsA | List outbound manifests (line-haul loads grouped by destination region and date), with shipment counts and total weight. Use for capacity and dispatch questions. |
| get_manifestA | Contents of one manifest: the shipments on it, total weight, and shipment count. Use after list_manifests to see what is on a specific load. |
| delivery_performanceA | Aggregate delivery performance per route for a period: on-time rate, average transit days, and exception counts. Use for questions like 'which route underperformed last month'. Read-only; fetches up to 1000 shipments. |
| list_invoicesA | List customer invoices with amount, due date, and payment status. Use for billing questions like which customers still have unpaid invoices. |
| update_shipment_statusA | Set the status of a shipment. Disabled unless the server runs with ALLOW_WRITES=1; in demo mode the change is kept in memory only. Use only when the user explicitly asks to change a status. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 9 tools
Each tool serves a distinct purpose: shipment search, detail, tracking, manifest contents, rate quoting, manifest listing, delivery performance, invoices, and status updates. No overlap.
All tools follow a consistent verb_noun pattern with snake_case (e.g., search_shipments, list_manifests, update_shipment_status).
9 tools cover the main logistics operations without being excessive. Each tool serves a clear, non-redundant function.
Covers essential queries (search, detail, tracking, manifests, pricing, performance, invoices) and a status update. Lacks shipment creation or deletion, but these are outside the stated read-heavy scope.