e-Courier MCP by usefulapi

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

我该使用它吗

质量与安全性

A
描述质量
96%
模式完整度
92%
命名质量
78%
投毒风险
100%
权限匹配度
100%
协议合规性
100%

发现(2)

  • LOWTool 'ecourier_find_customer_by_phone' name length outside 3-30 range在 ecourier_find_customer_by_phone 中
  • LOWTool 'ecourier_list_customer_ship_tos' name length outside 3-30 range在 ecourier_list_customer_ship_tos 中

基于对工具定义和协议合规性的自动分析。

上下文开销

~3,625token 数(工具定义)
~1.5 KB典型响应大小
对注意力有显著影响(占 128k 上下文窗口的 2.83%)

这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 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"
}

社区

评价此服务器

证据

最近观测

已验证未记录版本17 个工具