e-Courier MCP by usefulapi
Read delivery orders, quotes, customers, drivers, manifests, invoices and payment records.
¿Debería usar esto?
Calidad y seguridad
Hallazgos (2)
- LOWen ecourier_find_customer_by_phone
- LOWen ecourier_list_customer_ship_tos
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
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": {
"e-courier": {
"url": "https://e-courier.usefulapi.io/mcp"
}
}
}Puntos de conexión remotos
https://e-courier.usefulapi.io/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (17)
🟢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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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"
}Comunidad
Evidencia