e-Courier MCP by usefulapi
Read delivery orders, quotes, customers, drivers, manifests, invoices and payment records.
我該用這個嗎
品質與安全性
發現項目(2)
- LOW在 ecourier_find_customer_by_phone 中
- LOW在 ecourier_list_customer_ship_tos 中
根據工具定義與協定合規性的自動化分析。
上下文成本
這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。
安裝
一鍵安裝
將以下內容加入你的 `claude_desktop_config.json` 檔案:
{
"mcpServers": {
"e-courier": {
"url": "https://e-courier.usefulapi.io/mcp"
}
}
}遠端端點
https://e-courier.usefulapi.io/mcpstreamable-http它能做什麼
工具清單
工具(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.
輸入結構描述
{
"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.
輸入結構描述
{
"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.
輸入結構描述
{
"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.
輸入結構描述
{
"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.
輸入結構描述
{
"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.
輸入結構描述
{
"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.
輸入結構描述
{
"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.
輸入結構描述
{
"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.
輸入結構描述
{
"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.
輸入結構描述
{
"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.
輸入結構描述
{
"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.
輸入結構描述
{
"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.
輸入結構描述
{
"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.
輸入結構描述
{
"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.
輸入結構描述
{
"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.
輸入結構描述
{
"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.
輸入結構描述
{
"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"
}社群
證據