# e-Courier MCP by usefulapi (remote · e-courier.usefulapi.io)

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

- Trust score: 18/100 (low)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-06

## Components

- remote · `e-courier.usefulapi.io`: 18/100 (this document), [markdown](https://verifymcp.io/servers/io-usefulapi-e-courier/e-courier.md), [page](https://verifymcp.io/servers/io-usefulapi-e-courier/e-courier)

## Channel facts

- Endpoint: `https://e-courier.usefulapi.io/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.7.4`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-06.

- **Endpoint Security**: 46/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation not yet verified: we couldn't confirm whether this endpoint requires it.
  - HTTPS enforcement could not be verified: the plaintext port redirected somewhere other than https, so enforcement is unproven.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 0/100
  - Transport check failed: declared streamable-http, but the endpoint redirected instead of responding directly.
- **Schema Quality & AI Usability**: 0/100
  - Schema not yet verified: we couldn't read the endpoint's schema, or could read only part of its tool list.
- **Stability & Change Management**: 0/100
  - Stability not yet verified: not enough scan history yet (needs a 30-day window).
- **Tool Coverage**: 0/100
  - Tool coverage not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.
- **Tool Safety**: 0/100
  - Tool safety not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.
- **Capabilities**: 0/100
  - Capabilities not yet verified: we couldn't read the endpoint's capabilities.

**Unverified: 5 categories.** Categories scored 0 because we could not verify them: authentication we do not have, an unreachable endpoint, or not enough scan history. We only credit what we can confirm.

## Install

### How do I install the e-Courier MCP by usefulapi server?

e-Courier MCP by usefulapi is a hosted endpoint at https://e-courier.usefulapi.io/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http io-usefulapi-e-courier 'https://e-courier.usefulapi.io/mcp'
```

### Cursor

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

### VS Code

```json
{
  "servers": {
    "io-usefulapi-e-courier": {
      "type": "http",
      "url": "https://e-courier.usefulapi.io/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.io-usefulapi-e-courier]
url = "https://e-courier.usefulapi.io/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "io-usefulapi-e-courier": {
      "type": "remote",
      "url": "https://e-courier.usefulapi.io/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add io-usefulapi-e-courier --url 'https://e-courier.usefulapi.io/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  io-usefulapi-e-courier:
    url: "https://e-courier.usefulapi.io/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "io-usefulapi-e-courier": {
      "Transport": "http",
      "Url": "https://e-courier.usefulapi.io/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add io-usefulapi-e-courier -t streamable-http -u 'https://e-courier.usefulapi.io/mcp'
```

### Other

```json
{
  "mcpServers": {
    "io-usefulapi-e-courier": {
      "type": "http",
      "url": "https://e-courier.usefulapi.io/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-11-06 (score 18, 0)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-11-02 (score 18, −48)

- [security regression] Endpoint reachability: reachable → not serving MCP
- [security regression] Tool safety: pass → unverified
- [security regression] Authorization: pass → unverified
- [security regression] Stability: 0.03 → unverified
- [functional regression] Schema quality: 100 → unverified
- [functional regression] Capabilities: pass → unverified
- [functional regression] Tool coverage: 100 → unverified

### 2026-11-01 (score 66, 0)

- [functional improvement] Stability: unverified → 0.03

### 2026-10-31 (score 66)

First indexed and scored.

## MCP tools (17)

### `ecourier_get_order` (~172 tokens)

Get order

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.

Input parameters:

- `auth` (string): The order's Auth (authorization) value.
- `customer_code` (string): Customer code; useful together with reference.
- `order_id` (integer): Internal order id.
- `order_number` (string): The order number shown in e-Courier.
- `reference` (string): A piece reference / barcode on the order.

### `ecourier_get_order_fees` (~69 tokens)

Get order fees

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.

Input parameters:

- `order_id` (integer, required): Internal order id (the OrderID from ecourier_get_order).

### `ecourier_quote_order` (~242 tokens)

Quote an order

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.

Input parameters:

- `auth` (string): Customer authorization / reference code, if the account uses one.
- `caller` (string): Name of the person who placed the order.
- `caller_phone` (string): Phone of the person who placed the order.
- `customer_code` (string, required): e-Courier customer (billing account) code the order is for, as in e-Courier.
- `description` (string): Order description.
- `other_reference` (string): Your own reference for the order (PO number etc.).
- `pieces` (array): The items being moved. Each is linked to the pickup stop and the delivery stop.
- `service` (string): Service name configured in e-Courier, e.g. Route or Scheduled.
- `stops` (array, required): At least one pickup (P) and one delivery (D) stop, in route order.

### `ecourier_get_customer_by_code` (~53 tokens)

Get customer by code

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

Input parameters:

- `customer_code` (string, required): e-Courier customer code.

### `ecourier_get_customer` (~58 tokens)

Get customer by 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.

Input parameters:

- `customer_id` (integer, required): Internal customer id.

### `ecourier_find_customer_by_phone` (~62 tokens)

Find customer by phone

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

Input parameters:

- `phone` (string, required): Phone number, digits (e.g. 7132223333).

### `ecourier_list_customer_ship_tos` (~78 tokens)

List customer ship-to addresses

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

Input parameters:

- `customer_id` (integer): Internal customer id: all its saved addresses.
- `ship_to_id` (integer): One ship-to address id.

### `ecourier_list_drivers` (~51 tokens)

List active drivers

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

Input parameters:

- `site_id` (integer): Only drivers of this site id.

### `ecourier_get_driver` (~69 tokens)

Get driver

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.

Input parameters:

- `driver_code` (string): Driver code.
- `driver_id` (integer): Internal driver id.

### `ecourier_get_driver_orders` (~94 tokens)

Get a driver's current orders

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.

Input parameters:

- `driver_code` (string): Driver code.
- `driver_phone` (string): The driver's phone number.

### `ecourier_list_skills` (~32 tokens)

List driver skills

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

### `ecourier_get_driver_skills` (~56 tokens)

Get a driver's skills

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

Input parameters:

- `driver_code` (string): Driver code.
- `driver_id` (integer): Internal driver id.

### `ecourier_get_manifest` (~59 tokens)

Get manifest

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

Input parameters:

- `manifest_driver_id` (integer, required): The ManifestDriverID of the manifest.

### `ecourier_list_driver_manifests` (~108 tokens)

List a driver's manifests

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

Input parameters:

- `driver_id` (integer, required): Internal driver id.
- `end_date` (string, required): Last day, yyyy-mm-dd.
- `manifest_status` (string): Manifest status code filter (default A).
- `site_id` (integer): Only this site.
- `start_date` (string, required): First day, yyyy-mm-dd.

### `ecourier_list_invoices` (~151 tokens)

List invoices

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.

Input parameters:

- `changed_end_date` (string): Last changed to, yyyy-mm-dd.
- `changed_start_date` (string): Last changed from, yyyy-mm-dd.
- `customer_code` (string): Only this customer.
- `invoice_end_date` (string, required): Invoice date to, yyyy-mm-dd. Required, at most 31 days after the start.
- `invoice_start_date` (string, required): Invoice date from, yyyy-mm-dd. Required.

### `ecourier_get_invoice_fees` (~48 tokens)

Get invoice fees

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

Input parameters:

- `invoice_id` (integer, required): Invoice id.

### `ecourier_list_payments` (~140 tokens)

List payments

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.

Input parameters:

- `check_number` (string): Check number.
- `customer_code` (string): Only this customer.
- `payment_end_date` (string, required): Payment date to, yyyy-mm-dd. Required, at most 10 days after the start.
- `payment_id` (integer): One payment id.
- `payment_start_date` (string, required): Payment date from, yyyy-mm-dd. Required.

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/io-usefulapi-e-courier/e-courier#diagnostics

## Score history

- 2026-11-06: 18
- 2026-11-05: 18
- 2026-11-04: 18
- 2026-11-03: 18
- 2026-11-02: 18
- 2026-11-01: 66
- 2026-10-31: 66

## Common questions

### What is the e-Courier MCP by usefulapi server?

e-Courier MCP by usefulapi is listed in the public MCP registry as io.usefulapi/e-courier. Read delivery orders, quotes, customers, drivers, manifests, invoices and payment records. This page covers its hosted endpoint (https://e-courier.usefulapi.io/mcp).

### Is the e-Courier MCP by usefulapi server safe to use?

e-Courier MCP by usefulapi scores 18 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the e-Courier MCP by usefulapi server expose?

e-Courier MCP by usefulapi exposes 17 tools: ecourier_get_order, ecourier_get_order_fees, ecourier_quote_order, ecourier_get_customer_by_code, ecourier_get_customer, and 12 more. Their descriptions and schemas cost roughly 1,542 tokens of context every time the server is loaded.

### Does the e-Courier MCP by usefulapi server require authentication?

Its publisher declares no required credentials for e-Courier MCP by usefulapi. We have not been able to confirm that against the live endpoint, and a server can require authorisation without declaring it here.

### Is the e-Courier MCP by usefulapi server still maintained?

e-Courier MCP by usefulapi is still listed as active in the MCP registry. We last reached this channel on 6 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

### What did VerifyMCP test on the e-Courier MCP by usefulapi server?

VerifyMCP ran 4 checks on e-Courier MCP by usefulapi, covering TLS certificate, HSTS header, DNSSEC and Transport. 7 items could not be completed, a gap on our side rather than a finding about e-Courier MCP by usefulapi: Authorization, HTTPS, Schema quality, Stability and 3 more. 5 categories score 0 for that reason, because we only credit what we can confirm. Supply Chain Security and Provenance & Transparency do not apply to a hosted endpoint, so they were not tested. The score does not measure everything, and the scoring documentation lists what it leaves out.

## Links

- Remote endpoint: https://e-courier.usefulapi.io/mcp
- Repository: https://github.com/m190/usefulapi-mcp
- Website: https://usefulapi.io/e-courier/
- Changelog RSS feed: https://verifymcp.io/servers/io-usefulapi-e-courier/e-courier.xml
- Changelog JSON feed: https://verifymcp.io/servers/io-usefulapi-e-courier/e-courier/changelog.json
- Trust report (JSON): https://verifymcp.io/servers/io-usefulapi-e-courier/e-courier.json
- HTML version of this page: https://verifymcp.io/servers/io-usefulapi-e-courier/e-courier
