Track-POD MCP by usefulapi

Read Track-POD orders, routes, drivers, vehicles and proof of delivery; create orders.

¿Debería usar esto?

Calidad y seguridad

A
Calidad de la descripción
99%
Integridad del esquema
90%
Calidad de los nombres
99%
Riesgo de envenenamiento
100%
Coincidencia de permisos
100%
Cumplimiento del protocolo
100%

Hallazgos (1)

  • LOWTool 'trackpod_list_orders_changed_since' name length outside 3-30 rangeen trackpod_list_orders_changed_since

Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.

Costo de contexto

~4,997Tokens (definiciones de herramientas)
~2.3 KBTamaño de respuesta típico
Impacto significativo en la atención (3.90% del contexto de 128k)

Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.

Instalar

Instalación con un clic

Agrega esto a tu archivo `claude_desktop_config.json`:

{
  "mcpServers": {
    "track-pod": {
      "url": "https://track-pod.usefulapi.io/mcp"
    }
  }
}

Puntos de conexión remotos

https://track-pod.usefulapi.io/mcpstreamable-http

Qué puede hacer

Inventario de herramientas

Herramientas (16)

🟢 Solo lectura🟡 Escritura🔴 Eliminación⚪ Desconocido
🟢trackpod_list_orders(date, date_type, status, driver, route_number, ...)

List the orders of one day — by order date (GET /Order/Date/{date}) or by planned route date (GET /Order/Route/Date/{date}) — with optional filters on delivery status, driver and route number. Track-POD returns the whole day at once; this tool pages it (offset/limit) and reports the total. Times are the account's local times.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "date": {
      "type": "string",
      "description": "The day, YYYY-MM-DD."
    },
    "date_type": {
      "description": "order_date (default): orders whose order date is this day, scheduled or not. route_date: orders planned into routes of this day.",
      "type": "string",
      "enum": [
        "order_date",
        "route_date"
      ]
    },
    "status": {
      "description": "Keep only orders with these delivery statuses: no_status (not yet attempted / unassigned), in_progress (1), not_delivered_site_issue (2), delivered (3, also 'collected'), partially (4), not_delivered_order_issue (5).",
      "minItems": 1,
      "maxItems": 6,
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "no_status",
          "in_progress",
          "not_delivered_site_issue",
          "delivered",
          "partially",
          "not_delivered_order_issue"
        ]
      }
    },
    "driver": {
      "description": "Keep only orders whose driver login or name contains this text.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "route_number": {
      "description": "Keep only orders on this route number/code.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "detail": {
      "description": "summary (default): key fields per order. full: every field Track-POD returns (goods lines, custom fields, photo links).",
      "type": "string",
      "enum": [
        "summary",
        "full"
      ]
    },
    "offset": {
      "description": "Items to skip (default 0). Use next_offset from the previous page.",
      "type": "integer",
      "minimum": 0,
      "maximum": 100000
    },
    "limit": {
      "description": "Items per page (default 25, max 100).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    }
  },
  "required": [
    "date"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢trackpod_list_orders_changed_since(since, status, detail, offset, limit)

List orders whose delivery status changed after a moment in the last 24 hours (GET /Order/Status/Date/{date-time}; Track-POD accepts no earlier time than UTC now − 1 day). Good for 'what was delivered / failed since this morning'. Paged here (offset/limit).

Esquema de entrada

{
  "type": "object",
  "properties": {
    "since": {
      "description": "ISO 8601 date-time with a timezone, within the last 24 hours, e.g. 2026-10-08T06:00:00Z. Default: 23 h 59 min ago.",
      "type": "string"
    },
    "status": {
      "description": "Keep only orders with these delivery statuses: no_status (not yet attempted / unassigned), in_progress (1), not_delivered_site_issue (2), delivered (3, also 'collected'), partially (4), not_delivered_order_issue (5).",
      "minItems": 1,
      "maxItems": 6,
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "no_status",
          "in_progress",
          "not_delivered_site_issue",
          "delivered",
          "partially",
          "not_delivered_order_issue"
        ]
      }
    },
    "detail": {
      "description": "summary (default): key fields per order. full: every field Track-POD returns (goods lines, custom fields, photo links).",
      "type": "string",
      "enum": [
        "summary",
        "full"
      ]
    },
    "offset": {
      "description": "Items to skip (default 0). Use next_offset from the previous page.",
      "type": "integer",
      "minimum": 0,
      "maximum": 100000
    },
    "limit": {
      "description": "Items per page (default 25, max 100).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢trackpod_list_route_orders(route_code, status, detail, offset, limit)

List the orders on one route, in route order, by route code (GET /Order/Route/Code/{code}). Paged here (offset/limit).

Esquema de entrada

{
  "type": "object",
  "properties": {
    "route_code": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "The route code/number, e.g. R-1023."
    },
    "status": {
      "description": "Keep only orders with these delivery statuses: no_status (not yet attempted / unassigned), in_progress (1), not_delivered_site_issue (2), delivered (3, also 'collected'), partially (4), not_delivered_order_issue (5).",
      "minItems": 1,
      "maxItems": 6,
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "no_status",
          "in_progress",
          "not_delivered_site_issue",
          "delivered",
          "partially",
          "not_delivered_order_issue"
        ]
      }
    },
    "detail": {
      "description": "summary (default): key fields per order. full: every field Track-POD returns (goods lines, custom fields, photo links).",
      "type": "string",
      "enum": [
        "summary",
        "full"
      ]
    },
    "offset": {
      "description": "Items to skip (default 0). Use next_offset from the previous page.",
      "type": "integer",
      "minimum": 0,
      "maximum": 100000
    },
    "limit": {
      "description": "Items per page (default 25, max 100).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    }
  },
  "required": [
    "route_code"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢trackpod_get_order(number, order_id, track_id)

Get one order with every field: client, address, time slot, goods lines, route, driver, delivery status, ETA, signature/photo links and tracking link. Pass exactly one of number, order_id or track_id (GET /Order/Number|Id|TrackId/{…}). A removed order answers with who removed it (HTTP 410).

Esquema de entrada

{
  "type": "object",
  "properties": {
    "number": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "The order number (Order/Invoice/Job/Waybill number), e.g. cv30001-2."
    },
    "order_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "The order Id — the unique identifier from your accounting system that the order was created with."
    },
    "track_id": {
      "description": "The order TrackId (UUID) from a tracking link or a webhook.",
      "type": "string",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢trackpod_find_orders_by_number(number, detail)

List the last 25 orders that share one order number (re-deliveries, repeated jobs) — GET /Order/Number/{number}/List. Use it when an order number was reused and trackpod_get_order returns only one of them.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "number": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "The order number."
    },
    "detail": {
      "description": "summary (default): key fields per order. full: every field Track-POD returns (goods lines, custom fields, photo links).",
      "type": "string",
      "enum": [
        "summary",
        "full"
      ]
    }
  },
  "required": [
    "number"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢trackpod_get_proof_of_delivery(number, order_id, track_id)

Get the electronic proof of delivery (ePOD) of one order: status and status time/GPS, who signed, signature and photo links (valid 24 h), driver comment, reject reasons, delivered vs ordered goods quantities, cash collected, customer feedback and the PDF delivery-note link (ReportUrl, valid 1 h). Pass exactly one of number, order_id or track_id.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "number": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "The order number (Order/Invoice/Job/Waybill number), e.g. cv30001-2."
    },
    "order_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "The order Id — the unique identifier from your accounting system that the order was created with."
    },
    "track_id": {
      "description": "The order TrackId (UUID) from a tracking link or a webhook.",
      "type": "string",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢trackpod_list_reject_reasons

List the account's reasons for not delivering / not collecting: site, order, goods and scanning issues (GET /RejectReason).

Esquema de entrada

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢trackpod_list_routes(date, status, include_orders, offset, limit)

List the routes of one day (GET /Route/Date/{date}): code, status (Draft, Ready, Loaded, InProgress, Closed), driver, vehicle, planned vs actual start/finish, distance, cost, current GPS position, and per-route order counts by status. Paged here (offset/limit).

Esquema de entrada

{
  "type": "object",
  "properties": {
    "date": {
      "type": "string",
      "description": "The route date, YYYY-MM-DD."
    },
    "status": {
      "description": "Keep only routes with these statuses.",
      "minItems": 1,
      "maxItems": 5,
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "Draft",
          "Ready",
          "Loaded",
          "InProgress",
          "Closed"
        ]
      }
    },
    "include_orders": {
      "description": "none (default): order counts only. summary: key fields of each order. full: every order field (large).",
      "type": "string",
      "enum": [
        "none",
        "summary",
        "full"
      ]
    },
    "offset": {
      "description": "Items to skip (default 0). Use next_offset from the previous page.",
      "type": "integer",
      "minimum": 0,
      "maximum": 100000
    },
    "limit": {
      "description": "Items per page (default 25, max 100).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    }
  },
  "required": [
    "date"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢trackpod_get_route(route_code, route_id, include_orders)

Get one route with its status, driver, vehicle, timings, distance, cost, current GPS position and its orders. Pass exactly one of route_code or route_id (GET /Route/Code|Id/{…}).

Esquema de entrada

{
  "type": "object",
  "properties": {
    "route_code": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "The route code/number."
    },
    "route_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "The route Id from your accounting system."
    },
    "include_orders": {
      "description": "summary (default): key fields of each order. none: counts only. full: every order field.",
      "type": "string",
      "enum": [
        "none",
        "summary",
        "full"
      ]
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢trackpod_get_route_track(route_code, route_id, offset, limit)

Get the driver's recorded GPS track of a route (latitude, longitude, speed in m/s, time) — GET /Route/Track/Code|Id/{…}. Pass exactly one of route_code or route_id. Points are paged here (offset/limit, max 1000 per call).

Esquema de entrada

{
  "type": "object",
  "properties": {
    "route_code": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "The route code/number."
    },
    "route_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "The route Id from your accounting system."
    },
    "offset": {
      "description": "Items to skip (default 0). Use next_offset from the previous page.",
      "type": "integer",
      "minimum": 0,
      "maximum": 100000
    },
    "limit": {
      "description": "Points per page (default 200, max 1000).",
      "type": "integer",
      "minimum": 1,
      "maximum": 1000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢trackpod_list_drivers(active_only, search, offset, limit)

List the account's drivers: name, username, phone, vehicle, depot, zone, teams and active flag (GET /Driver). Paged here.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "active_only": {
      "description": "Only active drivers (default false = all).",
      "type": "boolean"
    },
    "search": {
      "description": "Keep only drivers whose name, username, phone or vehicle contains this text.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "offset": {
      "description": "Items to skip (default 0). Use next_offset from the previous page.",
      "type": "integer",
      "minimum": 0,
      "maximum": 100000
    },
    "limit": {
      "description": "Items per page (default 25, max 100).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢trackpod_get_driver(driver_id, username)

Get one driver by Track-POD id (UUID) or by username (GET /Driver/Id/{id} or /Driver/Username/{username}). Pass exactly one.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "driver_id": {
      "description": "The driver's Track-POD id (UUID, from trackpod_list_drivers).",
      "type": "string",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
    },
    "username": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "The driver's username (login)."
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢trackpod_list_vehicles(number, offset, limit)

List the account's vehicles: plate number, assigned driver, depot, capacity (weight/volume/pallets/size), limits, costs, type and carrier (GET /Vehicle, optional plate-number filter). Paged here.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "number": {
      "description": "Filter by vehicle (plate) number.",
      "type": "string",
      "minLength": 1,
      "maxLength": 30
    },
    "offset": {
      "description": "Items to skip (default 0). Use next_offset from the previous page.",
      "type": "integer",
      "minimum": 0,
      "maximum": 100000
    },
    "limit": {
      "description": "Items per page (default 25, max 100).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢trackpod_get_vehicle(vehicle_id)

Get one vehicle by its Track-POD id (an integer, from trackpod_list_vehicles) — GET /Vehicle/{id}.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "vehicle_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "The vehicle's Track-POD id."
    }
  },
  "required": [
    "vehicle_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢trackpod_list_vehicle_checks(date, vehicle_number, offset, limit)

Driver vehicle inspections (before/after route): checklist items with pass/fail, notes, photo links (valid 24 h), odometer and signature. date only: every check of that day (GET /VehicleCheck/Date/{date}); date + vehicle_number: that vehicle's checks of the day; vehicle_number only: that vehicle's last check (GET /VehicleCheck/{number}).

Esquema de entrada

{
  "type": "object",
  "properties": {
    "date": {
      "description": "The day, YYYY-MM-DD.",
      "type": "string"
    },
    "vehicle_number": {
      "description": "The vehicle (plate) number.",
      "type": "string",
      "minLength": 1,
      "maxLength": 30
    },
    "offset": {
      "description": "Items to skip (default 0). Use next_offset from the previous page.",
      "type": "integer",
      "minimum": 0,
      "maximum": 100000
    },
    "limit": {
      "description": "Items per page (default 25, max 100).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴trackpod_create_order(number, client, address, type, date, ...)

Create ONE REAL unscheduled order in Track-POD (POST /Order): a delivery or a collection for a client at an address, ready to be planned into a route by a dispatcher. It does not create or optimise routes. Depending on the account's notification settings the customer may later receive SMS/e-mail updates about it. Confirm the details with the user first. Address and client are required; Track-POD geocodes the address unless you pass address_lat/address_lon.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "number": {
      "type": "string",
      "minLength": 1,
      "maxLength": 50,
      "description": "The order number (your Order/Invoice/Job/Waybill number) — used later to look the order up, so no slash or backslash."
    },
    "client": {
      "type": "string",
      "minLength": 1,
      "maxLength": 255,
      "description": "Client/customer name."
    },
    "address": {
      "type": "string",
      "minLength": 1,
      "maxLength": 255,
      "description": "Delivery (or pickup) address, e.g. '2 St Josephs Crescent, Liverpool L3 3JF'."
    },
    "type": {
      "description": "delivery (default) or collection.",
      "type": "string",
      "enum": [
        "delivery",
        "collection"
      ]
    },
    "date": {
      "description": "Order date, YYYY-MM-DD.",
      "type": "string"
    },
    "order_id": {
      "description": "Your accounting-system id for the order.",
      "type": "string",
      "minLength": 1,
      "maxLength": 50
    },
    "depot": {
      "description": "Depot address (else the account's default depot).",
      "type": "string",
      "minLength": 1,
      "maxLength": 255
    },
    "shipper": {
      "description": "Shipper/supplier name.",
      "type": "string",
      "minLength": 1,
      "maxLength": 255
    },
    "address_lat": {
      "description": "Address latitude (pass with address_lon to skip geocoding).",
      "type": "number",
      "minimum": -90,
      "maximum": 90
    },
    "address_lon": {
      "description": "Address longitude.",
      "type": "number",
      "minimum": -180,
      "maximum": 180
    },
    "address_zone": {
      "description": "Address zone.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "time_slot_from": {
      "description": "Desired delivery/pickup window start, local 24-hour time HH:mm.",
      "type": "string"
    },
    "time_slot_to": {
      "description": "Desired delivery/pickup window end, local 24-hour time HH:mm.",
      "type": "string"
    },
    "service_time_minutes": {
      "description": "Service time at the stop, minutes.",
      "type": "number",
      "minimum": 0,
      "maximum": 1440
    },
    "note": {
      "description": "Note for the driver.",
      "type": "string",
      "minLength": 1,
      "maxLength": 500
    },
    "contact_name": {
      "description": "Customer contact name.",
      "type": "string",
      "minLength": 1,
      "maxLength": 255
    },
    "phone": {
      "description": "Customer contact phone.",
      "type": "string",
      "minLength": 1,
      "maxLength": 50
    },
    "email": {
      "description": "Customer e-mail.",
      "type": "string",
      "maxLength": 255,
      "format": "email",
      "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
    },
    "weight": {
      "description": "Total weight.",
      "type": "number",
      "minimum": 0
    },
    "volume": {
      "description": "Total volume.",
      "type": "number",
      "minimum": 0
    },
    "pallets": {
      "description": "Pallet count.",
      "type": "number",
      "minimum": 0
    },
    "cod": {
      "description": "Cash-on-delivery amount to collect.",
      "type": "number",
      "minimum": 0
    },
    "barcode": {
      "description": "Barcode the driver scans.",
      "type": "string",
      "minLength": 1,
      "maxLength": 128
    },
    "priority": {
      "description": "Order priority.",
      "type": "string",
      "enum": [
        "low",
        "normal",
        "high"
      ]
    },
    "goods": {
      "description": "Goods lines (max 100).",
      "maxItems": 100,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "description": "Item description."
          },
          "quantity": {
            "description": "Quantity or weight.",
            "type": "number",
            "minimum": 0
          },
          "unit": {
            "description": "Unit: pcs, pkg, kg, lbs …",
            "type": "string",
            "minLength": 1,
            "maxLength": 50
          },
          "cost": {
            "description": "Unit price.",
            "type": "number",
            "minimum": 0
          },
          "goods_id": {
            "description": "Goods id in your accounting system.",
            "type": "string",
            "minLength": 1,
            "maxLength": 50
          },
          "note": {
            "description": "Line note.",
            "type": "string",
            "minLength": 1,
            "maxLength": 255
          }
        },
        "required": [
          "name"
        ]
      }
    }
  },
  "required": [
    "number",
    "client",
    "address"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Comunidad

Califica este servidor

Evidencia

Observaciones recientes

verificadoversión no registrada16 herramientas