Skip to main content
Glama
Anandb71

CargoMind MCP Server

by Anandb71

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
HOSTNoDashboard bind address.0.0.0.0
PORTNoDashboard port (Cloud Run sets it automatically).8080
LOG_LEVELNoUvicorn log level for the dashboard.info
PYTHONUTF8NoUTF-8 I/O for LiteLLM and child processes on Windows. Set to `1` in the example MCP client configuration for the cargomind-logistics server.1
CARGOMIND_DBNoSQLite database file.<data dir>/cargomind.db
GEMINI_API_KEYNoAlias for GOOGLE_API_KEY.
GOOGLE_API_KEYNoGemini API key. Enables all Gemini tiers and Gemini vision. Alias: GEMINI_API_KEY.
OPENAI_API_KEYNoGPT as the second vendor if no Anthropic key is set.
CARGOMIND_CHAOSNoChaos Monkey fault-injection rate, `0`…`1` (also adjustable live in the dashboard).0
ANTHROPIC_API_KEYNoClaude as the second vendor (critic + failover).
CARGOMIND_OFFLINENo`1`/`true` forces the offline rule-engine and network-free tool fallbacks.false
CARGOMIND_DATA_DIRNoWhere the SQLite DB and uploaded photos live../data
CARGOMIND_MCP_LOCALNo`1`/`true` serves the MCP tool set in-process instead of spawning the stdio server.false
GOOGLE_MAPS_API_KEYNoGoogle Routes API v2 + Geocoding API key.
CARGOMIND_GEMINI_PRONoDeep-reasoning model for the planner (and critic fallback).gemini-4-argon
CARGOMIND_WATCHTOWERNo`0`/`false`/`no`/`off` stops the dashboard from starting the Watchtower background scan.1
CARGOMIND_GEMINI_FASTNoFast conversational / routing model.gemini-3.8-flash
CARGOMIND_CLAUDE_MODELNoLiteLLM model id for Claude.anthropic/claude-sonnet-5-5
CARGOMIND_HTTP_TIMEOUTNoSeconds per external HTTP call before falling back.8
CARGOMIND_OPENAI_MODELNoLiteLLM model id for OpenAI.openai/gpt-5-mini
CARGOMIND_TOOL_RETRIESNoRetries per failed tool call (exponential backoff 0.3 s, 0.6 s, …).2
CARGOMIND_GEMINI_BACKUPNoSame-vendor backup, tried before switching vendors.gemini-2.5-flash
CARGOMIND_GEMINI_VISIONNoMultimodal model for proof-of-delivery photos.value of CARGOMIND_GEMINI_FAST
GOOGLE_GENAI_USE_VERTEXAINo`true` uses Vertex AI (with GOOGLE_CLOUD_PROJECT / GOOGLE_CLOUD_LOCATION and ADC) instead of an API key.false
CARGOMIND_BREAKER_COOLDOWNNoSeconds a breaker stays open before a half-open trial.60
CARGOMIND_BREAKER_THRESHOLDNoConsecutive failures that open a circuit breaker.3

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

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}

Tools

Functions exposed to the LLM to take actions

NameDescription
track_shipmentA

Track a shipment: current status, location, ETA vs promised delivery, carrier, vehicle and recent events.

Use this first whenever the user mentions a specific shipment or order.

Args:
    shipment_id: Shipment ID such as "SHP-1001" (also accepts "shp1001" or "1001").

Returns:
    The shipment (status, priority, origin_city, destination_city, last_city, eta, promised_by,
    is_late, delay_hours, hours_to_promise, carrier_name, vehicle, customer, weight_kg, notes)
    plus ``recent_events`` (latest 5, newest last). On a miss: status="error" with suggestions.
list_shipmentsA

List shipments, filtered and sorted (active first, critical first, then earliest promised delivery).

Args:
    status: One of created, picked_up, in_transit, delayed, out_for_delivery, delivered, exception,
        or "active" (anything not yet delivered/exception). Empty = all.
    city: City name or alias (e.g. "Bangalore", "Bombay"); matches origin, destination or current city.
    priority: standard, express or critical. Empty = all.
    limit: Maximum rows to return (default 25).

Returns:
    {"status": "ok", "count": n, "shipments": [...]} each with is_late / delay_hours.
shipment_historyA

Full chronological event trail (scans, checkpoints, delays, assignments) for one shipment.

Args:
    shipment_id: Shipment ID such as "SHP-1003".

Returns:
    {"status": "ok", "shipment_id": ..., "events": [{ts, status, city, note, source}, ...]}.
update_shipment_statusA

Change a shipment's status and log a history event (e.g. mark delayed, delivered, exception).

Args:
    shipment_id: Shipment ID such as "SHP-1002".
    status: New status: created, picked_up, in_transit, delayed, out_for_delivery, delivered or exception.
    city: Optional city where the update happened (defaults to the current/destination city).
    note: Short human-readable reason, e.g. "Rain on NH-48, 6h delay". Stored as the shipment note.

Returns:
    {"status": "ok", "previous_status": ..., "shipment": {...}, "event": {...}} or an error with valid values.
check_inventoryA

Check stock levels per SKU and warehouse, including low-stock flags and any open purchase order.

Args:
    sku: SKU ID ("SKU-107") or product name fragment ("insulin", "gloves"). Empty = all SKUs.
    warehouse_id: Warehouse ID ("WH-BLR"), code ("BLR") or city ("Bangalore"). Empty = all warehouses.
    low_stock_only: If true, only lines at or below their reorder point.

Returns:
    {"status": "ok", "count", "low_stock_count", "items": [{sku, name, warehouse_id, qty_on_hand,
    reorder_point, shortfall, low_stock, open_po, ...}]}.
create_reorderA

Raise a purchase order to replenish a SKU at a warehouse. Safe to retry: if an open PO already exists for the line it is returned with duplicate=true instead of creating another.

Args:
    sku: SKU ID such as "SKU-107".
    warehouse_id: Warehouse ID ("WH-BLR"), code or city.
    qty: Units to order; 0 = automatic (tops stock up to 2x reorder point, min standard reorder qty).

Returns:
    {"status": "ok", "duplicate": bool, "purchase_order": {id, qty, supplier, expected_by, ...}, "message"}.
list_vehiclesA

List own-fleet vehicles with capacity, current load, driver hours remaining and fuel.

Args:
    status: available, on_route or maintenance. Empty = all.
    city: Current city of the vehicle (name or alias). Empty = all.

Returns:
    {"status": "ok", "count", "vehicles": [{id, type, capacity_kg, remaining_capacity_kg, status,
    current_city, driver_name, driver_hours_today, driver_hours_remaining, fuel_pct, refrigerated}]}.
assign_vehicleA

Assign an own-fleet vehicle to a shipment. Checks capacity and maintenance status; idempotent.

Args:
    shipment_id: Shipment ID such as "SHP-1007".
    vehicle_id: Vehicle ID such as "TRK-105".

Returns:
    {"status": "ok", "warnings": [...], "vehicle": {...}} - warnings flag soft issues (vehicle in another
    city, driver near the 10h limit, low fuel, cold-chain mismatch). Errors suggest alternative vehicles.
list_carriersA

List carrier partners with modes, INR rate card (base_rate_per_km, per_kg_rate), reliability (0-1) and average speed - use for quoting and choosing a carrier.

Returns:
    {"status": "ok", "count", "carriers": [...]}.
list_warehousesA

List warehouses with city, coordinates, utilisation %, cold-chain capability and low-stock line count.

Returns:
    {"status": "ok", "count", "warehouses": [...]}.
get_kpisB

Network health snapshot: on_time_rate (%), in_transit, delayed, exceptions, delivered_today, low_stock_skus, fleet_utilization (%), open_pos, critical_active and counts by status.

Returns:
    KPI dict with status="ok".

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription
kpisLive network KPIs (JSON).
warehousesWarehouse directory (JSON).

TDQS

A3.9/5.0

Scored across 11 tools

Disambiguation5/5

Tools are cleanly separated by resource and action: shipment tracking/list/history/status update, inventory/warehouses/reorders, fleet assignment, carriers, and KPIs. Overlaps are minimal; track_shipment and shipment_history differ in scope (current status plus recent events vs full event trail).

Naming Consistency4/5

Names are consistently snake_case and mostly follow a verb_noun pattern such as track_shipment, list_shipments, update_shipment_status, check_inventory, create_reorder, assign_vehicle, and get_kpis. The main deviation is shipment_history, which is noun_noun rather than action-first, but it remains readable and predictable.

Tool Count5/5

11 tools is well-scoped for a logistics control tower, covering shipments, inventory, warehouses, fleet, carriers, and KPIs without obvious filler. Each tool maps to a clear operational task.

Completeness4/5

Core operational workflows are covered: track/update shipments, inspect inventory, raise reorders, assign vehicles, and monitor KPIs. Gaps remain around shipment creation/cancellation and purchase-order or vehicle lifecycle management, but these are minor for a monitoring and dispatch-oriented server.

Maintenance

ActivityMaintained
ResponsivenessNo issues