e-Courier MCP by usefulapi

Read delivery orders, quotes, customers, drivers, manifests, invoices and payment records.

Sollte ich dies verwenden

Qualität und Sicherheit

A
Qualität der Beschreibung
96%
Vollständigkeit des Schemas
92%
Qualität der Benennung
78%
Risiko der Vergiftung
100%
Übereinstimmung der Berechtigungen
100%
Einhaltung des Protokolls
100%

Befunde (2)

  • LOWTool 'ecourier_find_customer_by_phone' name length outside 3-30 rangein ecourier_find_customer_by_phone
  • LOWTool 'ecourier_list_customer_ship_tos' name length outside 3-30 rangein ecourier_list_customer_ship_tos

Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.

Kontextkosten

~3,625Tokens (Tool-Definitionen)
~1.5 KBTypische Antwortgröße
Erhebliche Auswirkung auf die Aufmerksamkeit (2.83% von 128k Kontext)

Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.

Installieren

Installation mit einem Klick

Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:

{
  "mcpServers": {
    "e-courier": {
      "url": "https://e-courier.usefulapi.io/mcp"
    }
  }
}

Remote-Endpunkte

https://e-courier.usefulapi.io/mcpstreamable-http

Was es kann

Tool-Inventar

Tools (17)

🟢 Nur lesen🟡 Schreiben🔴 Löschen⚪ Unbekannt
🟢ecourier_get_order(order_number, order_id, auth, reference, customer_code)

One delivery order with everything e-Courier holds: status (N new, A assigned, X deleted), customer, stops and their pickup/delivery times and POD names, pieces, jobs and drivers, fees, events and notifications. Give exactly one of order_number, order_id, auth (the customer's authorization code) or reference (a piece reference; add customer_code to narrow it). Signature images are not returned. GetJsonOrder.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "order_number": {
      "description": "The order number shown in e-Courier.",
      "type": "string",
      "minLength": 1,
      "maxLength": 50
    },
    "order_id": {
      "description": "Internal order id.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "auth": {
      "description": "The order's Auth (authorization) value.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "reference": {
      "description": "A piece reference / barcode on the order.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "customer_code": {
      "description": "Customer code; useful together with reference.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢ecourier_get_order_fees(order_id)

The fee lines (what was charged for the delivery: base rate, fuel, waiting time and so on) of one order, by internal order id. GetOrderFees.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "order_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Internal order id (the OrderID from ecourier_get_order)."
    }
  },
  "required": [
    "order_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢ecourier_quote_order(customer_code, service, caller, caller_phone, description, ...)

Price and availability for a delivery WITHOUT creating it: e-Courier applies the customer's rates to the stops and pieces and returns the order with the quoted amount. Supply a customer code, pickup/delivery stops and optional pieces. Nothing is saved and nobody is notified. QuoteOrder.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "customer_code": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "e-Courier customer (billing account) code the order is for, as in e-Courier."
    },
    "service": {
      "description": "Service name configured in e-Courier, e.g. Route or Scheduled.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "caller": {
      "description": "Name of the person who placed the order.",
      "type": "string",
      "maxLength": 100
    },
    "caller_phone": {
      "description": "Phone of the person who placed the order.",
      "type": "string",
      "maxLength": 40
    },
    "description": {
      "description": "Order description.",
      "type": "string",
      "maxLength": 500
    },
    "other_reference": {
      "description": "Your own reference for the order (PO number etc.).",
      "type": "string",
      "maxLength": 100
    },
    "auth": {
      "description": "Customer authorization / reference code, if the account uses one.",
      "type": "string",
      "maxLength": 100
    },
    "pieces": {
      "description": "The items being moved. Each is linked to the pickup stop and the delivery stop.",
      "maxItems": 100,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "reference": {
            "description": "Piece reference / barcode.",
            "type": "string",
            "maxLength": 100
          },
          "description": {
            "description": "What the piece is.",
            "type": "string",
            "maxLength": 200
          },
          "count": {
            "description": "Number of items in this piece line (default 1).",
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 100000
          },
          "weight": {
            "description": "Weight of the piece line, in the account's weight unit.",
            "type": "number",
            "exclusiveMinimum": 0,
            "maximum": 1000000
          }
        }
      }
    },
    "stops": {
      "minItems": 2,
      "maxItems": 20,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "P",
              "D"
            ],
            "description": "P = pickup, D = delivery (destination)."
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200,
            "description": "Company or person at the stop."
          },
          "address": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200,
            "description": "Street address."
          },
          "city": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200,
            "description": "City."
          },
          "state": {
            "type": "string",
            "minLength": 1,
            "maxLength": 50,
            "description": "State or province code, e.g. FL."
          },
          "zip": {
            "type": "string",
            "minLength": 1,
            "maxLength": 20,
            "description": "Postal code."
          },
          "country": {
            "description": "Country, e.g. USA.",
            "type": "string",
            "maxLength": 50
          },
          "phone": {
            "description": "Contact phone number.",
            "type": "string",
            "maxLength": 40
          },
          "scheduled": {
            "description": "Local date and time the stop is scheduled (pickup ready time or delivery due time), e.g. 2026-11-13T17:00.",
            "type": "string"
          },
          "timezone": {
            "description": "Timezone code of the scheduled time, e.g. EST.",
            "type": "string",
            "maxLength": 10
          },
          "note": {
            "description": "Instructions for the driver at this stop.",
            "type": "string",
            "maxLength": 500
          }
        },
        "required": [
          "type",
          "name",
          "address",
          "city",
          "state",
          "zip"
        ]
      },
      "description": "At least one pickup (P) and one delivery (D) stop, in route order."
    }
  },
  "required": [
    "customer_code",
    "stops"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢ecourier_get_customer_by_code(customer_code)

A customer (billing account) by its e-Courier customer code: id, name and address. GetCustomerByCode.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "customer_code": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "e-Courier customer code."
    }
  },
  "required": [
    "customer_code"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢ecourier_get_customer(customer_id)

The full customer record by internal customer id: contact, address, credit status and limit, balance, billing settings. Card numbers and passwords are never returned. GetCustomerById.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "customer_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Internal customer id."
    }
  },
  "required": [
    "customer_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢ecourier_find_customer_by_phone(phone)

Look up a customer by phone number (useful when a caller rings in): id, name and address. GetCustomerInfoFromPhoneNumber.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "phone": {
      "type": "string",
      "minLength": 3,
      "maxLength": 40,
      "description": "Phone number, digits (e.g. 7132223333)."
    }
  },
  "required": [
    "phone"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢ecourier_list_customer_ship_tos(customer_id, ship_to_id)

The saved ship-to (stop) addresses of a customer, by internal customer id, or one ship-to by its id. Give exactly one. GetCustomerShipTo.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "customer_id": {
      "description": "Internal customer id: all its saved addresses.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "ship_to_id": {
      "description": "One ship-to address id.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢ecourier_list_drivers(site_id)

Every active driver: id, code, name and site. Optionally only one site (multi-site accounts). GetDrivers.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "site_id": {
      "description": "Only drivers of this site id.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢ecourier_get_driver(driver_id, driver_code)

Driver records with their vehicles and file names (never SSN or tax ids). With driver_id or driver_code one driver; with neither, every active and inactive driver. GetDriver.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "driver_id": {
      "description": "Internal driver id.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "driver_code": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "Driver code."
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢ecourier_get_driver_orders(driver_code, driver_phone)

What a driver is carrying right now: the open orders on the driver's manifest (customer, pickup and delivery names, delivery zip, ready and due times), found by driver code or by the driver's phone number. Give exactly one. GetDriverInfoFromDriverCode / GetDriverInfoFromDriverPhone.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "driver_code": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "Driver code."
    },
    "driver_phone": {
      "description": "The driver's phone number.",
      "type": "string",
      "minLength": 3,
      "maxLength": 40
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢ecourier_list_skills

The master list of active driver skills (for example HAZMAT) with ids. GetSkills.

Eingabe-Schema

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢ecourier_get_driver_skills(driver_id, driver_code)

The skills assigned to one driver, by driver id or driver code (give exactly one). GetDriverSkills.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "driver_id": {
      "description": "Internal driver id.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "driver_code": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "Driver code."
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢ecourier_get_manifest(manifest_driver_id)

One driver manifest (the route a driver runs for a day) with all its job stops: sequence, addresses, status, pieces and weight. GetManifest.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "manifest_driver_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "The ManifestDriverID of the manifest."
    }
  },
  "required": [
    "manifest_driver_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢ecourier_list_driver_manifests(driver_id, start_date, end_date, site_id, manifest_status)

The manifests of one driver between two dates, with their job stops. Default status filter is active (A). GetManifestsByDriver.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "driver_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Internal driver id."
    },
    "start_date": {
      "type": "string",
      "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
      "description": "First day, yyyy-mm-dd."
    },
    "end_date": {
      "type": "string",
      "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
      "description": "Last day, yyyy-mm-dd."
    },
    "site_id": {
      "description": "Only this site.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "manifest_status": {
      "description": "Manifest status code filter (default A).",
      "type": "string",
      "minLength": 1,
      "maxLength": 5
    }
  },
  "required": [
    "driver_id",
    "start_date",
    "end_date"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢ecourier_list_invoices(invoice_start_date, invoice_end_date, changed_start_date, changed_end_date, customer_code)

Invoices in an invoice date range (invoice_start_date and invoice_end_date are both required, at most 31 days apart: e-Courier rejects anything else). Optionally narrow by customer code and by a last-changed range. GetInvoice.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "invoice_start_date": {
      "type": "string",
      "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
      "description": "Invoice date from, yyyy-mm-dd. Required."
    },
    "invoice_end_date": {
      "type": "string",
      "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
      "description": "Invoice date to, yyyy-mm-dd. Required, at most 31 days after the start."
    },
    "changed_start_date": {
      "description": "Last changed from, yyyy-mm-dd.",
      "type": "string",
      "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
    },
    "changed_end_date": {
      "description": "Last changed to, yyyy-mm-dd.",
      "type": "string",
      "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
    },
    "customer_code": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "Only this customer."
    }
  },
  "required": [
    "invoice_start_date",
    "invoice_end_date"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢ecourier_get_invoice_fees(invoice_id)

The fee lines of one invoice, by invoice id (the id from ecourier_list_invoices). GetInvoiceFees.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "invoice_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Invoice id."
    }
  },
  "required": [
    "invoice_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢ecourier_list_payments(payment_start_date, payment_end_date, customer_code, check_number, payment_id)

Customer payments received in a payment date range (payment_start_date and payment_end_date are both required, at most 10 days apart: e-Courier rejects anything else). Optionally narrow by customer code, check number or payment id. GetPayment.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "payment_start_date": {
      "type": "string",
      "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
      "description": "Payment date from, yyyy-mm-dd. Required."
    },
    "payment_end_date": {
      "type": "string",
      "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
      "description": "Payment date to, yyyy-mm-dd. Required, at most 10 days after the start."
    },
    "customer_code": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "Only this customer."
    },
    "check_number": {
      "description": "Check number.",
      "type": "string",
      "minLength": 1,
      "maxLength": 50
    },
    "payment_id": {
      "description": "One payment id.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    }
  },
  "required": [
    "payment_start_date",
    "payment_end_date"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Community

Diesen Server bewerten

Nachweis

Aktuelle Beobachtungen

verifiziertVersion nicht aufgezeichnet17 Tools