{"$schema":"https://verifymcp.io/schemas/trust-report.json","schemaVersion":1,"license":{"name":"CC BY-NC 4.0","url":"https://creativecommons.org/licenses/by-nc/4.0/"},"generatedAt":"2026-11-06T18:00:40.727Z","url":"https://verifymcp.io/servers/io-usefulapi-e-courier/e-courier","markdownUrl":"https://verifymcp.io/servers/io-usefulapi-e-courier/e-courier.md","server":{"slug":"io-usefulapi-e-courier","name":"e-Courier MCP by usefulapi","registryName":"io.usefulapi/e-courier","description":"Read delivery orders, quotes, customers, drivers, manifests, invoices and payment records.","registryStatus":"active","deletedAt":null,"statusMessage":null,"liveness":"live","publisher":{"class":"unknown","claimed":false}},"component":{"slug":"e-courier","type":"remote","identifier":"https://e-courier.usefulapi.io/mcp","withdrawn":false,"url":"https://verifymcp.io/servers/io-usefulapi-e-courier/e-courier","version":"1.7.4","transport":null,"scoredAt":"2026-11-06T13:02:52.690Z"},"score":{"total":18,"tier":"low","status":"scored","weekDelta":null,"history":[{"date":"2026-11-06","total":18},{"date":"2026-11-05","total":18},{"date":"2026-11-04","total":18},{"date":"2026-11-03","total":18},{"date":"2026-11-02","total":18},{"date":"2026-11-01","total":66},{"date":"2026-10-31","total":66}]},"categories":[{"name":"Endpoint Security","score":46,"verdict":"fail","reasons":["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."],"codes":[{"code":"tls.valid","args":{}},{"code":"auth.unreachable","args":{}},{"code":"https.inconclusive","args":{"reason":"redirect_not_https"}},{"code":"headers.hsts_absent","args":{}},{"code":"dnssec.absent","args":{}}]},{"name":"Transport & Reachability","score":0,"verdict":"fail","reasons":["Transport check failed: declared streamable-http, but the endpoint redirected instead of responding directly."],"codes":[{"code":"transport.redirected","args":{"transport":"streamable-http"}}]},{"name":"Schema Quality & AI Usability","score":0,"verdict":"unverified","reasons":["Schema not yet verified: we couldn't read the endpoint's schema, or could read only part of its tool list."],"codes":[{"code":"schema.unreachable","args":{}}]},{"name":"Stability & Change Management","score":0,"verdict":"unverified","reasons":["Stability not yet verified: not enough scan history yet (needs a 30-day window)."],"codes":[{"code":"stability.insufficient_history","args":{}}]},{"name":"Tool Coverage","score":0,"verdict":"unverified","reasons":["Tool coverage not yet verified: we couldn't read the endpoint's tools, or could read only part of the list."],"codes":[{"code":"toolquality.unreachable","args":{}}]},{"name":"Tool Safety","score":0,"verdict":"unverified","reasons":["Tool safety not yet verified: we couldn't read the endpoint's tools, or could read only part of the list."],"codes":[{"code":"toolsafety.unreachable","args":{}}]},{"name":"Capabilities","score":0,"verdict":"unverified","reasons":["Capabilities not yet verified: we couldn't read the endpoint's capabilities."],"codes":[{"code":"cap.unreachable","args":{}}]}],"inconclusive":["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.","Schema not yet verified: we couldn't read the endpoint's schema, or could read only part of its tool list.","Stability not yet verified: not enough scan history yet (needs a 30-day window).","Tool coverage not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.","Tool safety not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.","Capabilities not yet verified: we couldn't read the endpoint's capabilities."],"malware":[],"components":[{"slug":"e-courier","type":"remote","identifier":"https://e-courier.usefulapi.io/mcp","withdrawn":false,"score":18,"current":true,"url":"https://verifymcp.io/servers/io-usefulapi-e-courier/e-courier","markdownUrl":"https://verifymcp.io/servers/io-usefulapi-e-courier/e-courier.md"}],"facts":[{"label":"Endpoint","value":"https://e-courier.usefulapi.io/mcp"},{"label":"Transports","value":"streamable-http"},{"label":"Auth","value":"none"},{"label":"Version","value":"1.7.4"}],"install":{"available":true,"bundleSha256":null},"tools":[{"name":"ecourier_get_order","title":"Get order","description":"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.","inputs":[{"name":"auth","type":"string","required":false,"description":"The order's Auth (authorization) value."},{"name":"customer_code","type":"string","required":false,"description":"Customer code; useful together with reference."},{"name":"order_id","type":"integer","required":false,"description":"Internal order id."},{"name":"order_number","type":"string","required":false,"description":"The order number shown in e-Courier."},{"name":"reference","type":"string","required":false,"description":"A piece reference / barcode on the order."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":172},{"name":"ecourier_get_order_fees","title":"Get order fees","description":"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.","inputs":[{"name":"order_id","type":"integer","required":true,"description":"Internal order id (the OrderID from ecourier_get_order)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":69},{"name":"ecourier_quote_order","title":"Quote an order","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.","inputs":[{"name":"auth","type":"string","required":false,"description":"Customer authorization / reference code, if the account uses one."},{"name":"caller","type":"string","required":false,"description":"Name of the person who placed the order."},{"name":"caller_phone","type":"string","required":false,"description":"Phone of the person who placed the order."},{"name":"customer_code","type":"string","required":true,"description":"e-Courier customer (billing account) code the order is for, as in e-Courier."},{"name":"description","type":"string","required":false,"description":"Order description."},{"name":"other_reference","type":"string","required":false,"description":"Your own reference for the order (PO number etc.)."},{"name":"pieces","type":"array","required":false,"description":"The items being moved. Each is linked to the pickup stop and the delivery stop."},{"name":"service","type":"string","required":false,"description":"Service name configured in e-Courier, e.g. Route or Scheduled."},{"name":"stops","type":"array","required":true,"description":"At least one pickup (P) and one delivery (D) stop, in route order."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":242},{"name":"ecourier_get_customer_by_code","title":"Get customer by code","description":"A customer (billing account) by its e-Courier customer code: id, name and address. GetCustomerByCode.","inputs":[{"name":"customer_code","type":"string","required":true,"description":"e-Courier customer code."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":53},{"name":"ecourier_get_customer","title":"Get customer by id","description":"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.","inputs":[{"name":"customer_id","type":"integer","required":true,"description":"Internal customer id."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":58},{"name":"ecourier_find_customer_by_phone","title":"Find customer by phone","description":"Look up a customer by phone number (useful when a caller rings in): id, name and address. GetCustomerInfoFromPhoneNumber.","inputs":[{"name":"phone","type":"string","required":true,"description":"Phone number, digits (e.g. 7132223333)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":62},{"name":"ecourier_list_customer_ship_tos","title":"List customer ship-to addresses","description":"The saved ship-to (stop) addresses of a customer, by internal customer id, or one ship-to by its id. Give exactly one. GetCustomerShipTo.","inputs":[{"name":"customer_id","type":"integer","required":false,"description":"Internal customer id: all its saved addresses."},{"name":"ship_to_id","type":"integer","required":false,"description":"One ship-to address id."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":78},{"name":"ecourier_list_drivers","title":"List active drivers","description":"Every active driver: id, code, name and site. Optionally only one site (multi-site accounts). GetDrivers.","inputs":[{"name":"site_id","type":"integer","required":false,"description":"Only drivers of this site id."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":51},{"name":"ecourier_get_driver","title":"Get driver","description":"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.","inputs":[{"name":"driver_code","type":"string","required":false,"description":"Driver code."},{"name":"driver_id","type":"integer","required":false,"description":"Internal driver id."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":69},{"name":"ecourier_get_driver_orders","title":"Get a driver's current orders","description":"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.","inputs":[{"name":"driver_code","type":"string","required":false,"description":"Driver code."},{"name":"driver_phone","type":"string","required":false,"description":"The driver's phone number."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":94},{"name":"ecourier_list_skills","title":"List driver skills","description":"The master list of active driver skills (for example HAZMAT) with ids. GetSkills.","inputs":[],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":32},{"name":"ecourier_get_driver_skills","title":"Get a driver's skills","description":"The skills assigned to one driver, by driver id or driver code (give exactly one). GetDriverSkills.","inputs":[{"name":"driver_code","type":"string","required":false,"description":"Driver code."},{"name":"driver_id","type":"integer","required":false,"description":"Internal driver id."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":56},{"name":"ecourier_get_manifest","title":"Get manifest","description":"One driver manifest (the route a driver runs for a day) with all its job stops: sequence, addresses, status, pieces and weight. GetManifest.","inputs":[{"name":"manifest_driver_id","type":"integer","required":true,"description":"The ManifestDriverID of the manifest."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":59},{"name":"ecourier_list_driver_manifests","title":"List a driver's manifests","description":"The manifests of one driver between two dates, with their job stops. Default status filter is active (A). GetManifestsByDriver.","inputs":[{"name":"driver_id","type":"integer","required":true,"description":"Internal driver id."},{"name":"end_date","type":"string","required":true,"description":"Last day, yyyy-mm-dd."},{"name":"manifest_status","type":"string","required":false,"description":"Manifest status code filter (default A)."},{"name":"site_id","type":"integer","required":false,"description":"Only this site."},{"name":"start_date","type":"string","required":true,"description":"First day, yyyy-mm-dd."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":108},{"name":"ecourier_list_invoices","title":"List invoices","description":"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.","inputs":[{"name":"changed_end_date","type":"string","required":false,"description":"Last changed to, yyyy-mm-dd."},{"name":"changed_start_date","type":"string","required":false,"description":"Last changed from, yyyy-mm-dd."},{"name":"customer_code","type":"string","required":false,"description":"Only this customer."},{"name":"invoice_end_date","type":"string","required":true,"description":"Invoice date to, yyyy-mm-dd. Required, at most 31 days after the start."},{"name":"invoice_start_date","type":"string","required":true,"description":"Invoice date from, yyyy-mm-dd. Required."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":151},{"name":"ecourier_get_invoice_fees","title":"Get invoice fees","description":"The fee lines of one invoice, by invoice id (the id from ecourier_list_invoices). GetInvoiceFees.","inputs":[{"name":"invoice_id","type":"integer","required":true,"description":"Invoice id."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":48},{"name":"ecourier_list_payments","title":"List payments","description":"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.","inputs":[{"name":"check_number","type":"string","required":false,"description":"Check number."},{"name":"customer_code","type":"string","required":false,"description":"Only this customer."},{"name":"payment_end_date","type":"string","required":true,"description":"Payment date to, yyyy-mm-dd. Required, at most 10 days after the start."},{"name":"payment_id","type":"integer","required":false,"description":"One payment id."},{"name":"payment_start_date","type":"string","required":true,"description":"Payment date from, yyyy-mm-dd. Required."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":140}],"toolsTruncatedAtCapture":false,"diagnostics":{"capturedAt":"2026-11-06T13:02:52.000Z","track":"remote","endpoint":"https://e-courier.usefulapi.io/mcp","declaredUrl":null,"truncated":false,"tls":{"outcome":"valid","label":"Valid","version":"TLS 1.3","cipherSuite":"TLS_AES_128_GCM_SHA256","chainError":null,"certificates":[{"subject":"CN=usefulapi.io","issuer":"CN=WE1,O=Google Trust Services,C=US","notBefore":"2026-09-13T08:55:39Z","notAfter":"2026-12-12T09:54:12Z","keyType":"ECDSA","keyBits":256,"isCa":false},{"subject":"CN=WE1,O=Google Trust Services,C=US","issuer":"CN=GTS Root R4,O=Google Trust Services LLC,C=US","notBefore":"2023-12-13T09:00:00Z","notAfter":"2029-02-20T14:00:00Z","keyType":"ECDSA","keyBits":256,"isCa":true},{"subject":"CN=GTS Root R4,O=Google Trust Services LLC,C=US","issuer":"CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE","notBefore":"2023-11-15T03:43:21Z","notAfter":"2028-01-28T00:00:42Z","keyType":"ECDSA","keyBits":384,"isCa":true}]},"dnssec":{"result":"insecure","label":"Not signed","name":"e-courier.usefulapi.io.","steps":[{"zone":".","outcome":"verified","label":"Verified"},{"zone":"io.","outcome":"verified","label":"Verified"},{"zone":"usefulapi.io.","outcome":"insecure_proven","label":"Unsigned (proven)"}]},"auth":{"outcome":"inconclusive","label":"Inconclusive","gate":null,"gateLabel":null,"status":302,"authorizationServers":[]},"httpsRedirect":{"outcome":"inconclusive","label":"Inconclusive","status":302},"transports":[{"transport":"streamable-http","outcome":"redirected","label":"Redirected","status":302,"followed":false}],"provenance":null,"installScripts":[],"installScriptsTotal":null,"vulnerabilities":[],"vulnerabilitiesTotal":null,"dependencies":null},"mismatches":[],"changelog":{"trackingSince":"2026-10-31","recent":[{"id":"chg_01a1af84-017f-7123-bbc6-bca30da309e6","kind":"score.rubric_changed","summary":"We updated how we score, so this day's move reflects our rubric, not a change to the server","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-06","url":"https://verifymcp.io/servers/io-usefulapi-e-courier/e-courier#chg-chg_01a1af84-017f-7123-bbc6-bca30da309e6"},{"id":"chg_01a19af2-c173-739c-8f1a-bd5375fbb8a4","kind":"check.unverifiable","summary":"Tool safety (pass → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/io-usefulapi-e-courier/e-courier#chg-chg_01a19af2-c173-739c-8f1a-bd5375fbb8a4"},{"id":"chg_01a19af2-c174-7483-a063-83ca75b7d546","kind":"check.unverifiable","summary":"Authorization (pass → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/io-usefulapi-e-courier/e-courier#chg-chg_01a19af2-c174-7483-a063-83ca75b7d546"},{"id":"chg_01a19af2-c174-7a3c-b6ab-1d4cdee484d0","kind":"check.unverifiable","summary":"Stability (0.03 → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/io-usefulapi-e-courier/e-courier#chg-chg_01a19af2-c174-7a3c-b6ab-1d4cdee484d0"},{"id":"chg_01a19af2-c174-7ec1-bc8d-146086cddf6b","kind":"check.unverifiable","summary":"Schema quality (100 → unverified)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/io-usefulapi-e-courier/e-courier#chg-chg_01a19af2-c174-7ec1-bc8d-146086cddf6b"},{"id":"chg_01a19af2-c175-7357-9dcb-34d81bb7d722","kind":"check.unverifiable","summary":"Capabilities (pass → unverified)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/io-usefulapi-e-courier/e-courier#chg-chg_01a19af2-c175-7357-9dcb-34d81bb7d722"},{"id":"chg_01a19af2-c175-76f0-b46e-5060a8b49c0b","kind":"check.unverifiable","summary":"Tool coverage (100 → unverified)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/io-usefulapi-e-courier/e-courier#chg-chg_01a19af2-c175-76f0-b46e-5060a8b49c0b"},{"id":"chg_01a19af2-c175-7c19-94e6-f8e793db2358","kind":"capture.status_changed","summary":"Endpoint reachability (reachable → not serving MCP)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/io-usefulapi-e-courier/e-courier#chg-chg_01a19af2-c175-7c19-94e6-f8e793db2358"},{"id":"chg_01a19af2-c176-718c-9e73-20e8a4b5b4ac","kind":"score.total_changed","summary":"Trust score (66 → 18)","materiality":"functional","direction":"regression","scoreDelta":-48,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/io-usefulapi-e-courier/e-courier#chg-chg_01a19af2-c176-718c-9e73-20e8a4b5b4ac"},{"id":"chg_01a195cf-c80b-7c6d-8205-6b6e1737df11","kind":"check.reverified","summary":"Stability (unverified → 0.03)","materiality":"functional","direction":"improvement","scoreDelta":null,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/io-usefulapi-e-courier/e-courier#chg-chg_01a195cf-c80b-7c6d-8205-6b6e1737df11"},{"id":"chg_01a193fd-b344-73ca-81e7-49e8d1721ed8","kind":"score.first_scored","summary":"First indexed and scored","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/io-usefulapi-e-courier/e-courier#chg-chg_01a193fd-b344-73ca-81e7-49e8d1721ed8"},{"id":"chg_01a190a5-5c23-79bd-8c9f-9d0b6de84653","kind":"score.first_scored","summary":"First indexed and scored","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/io-usefulapi-e-courier/e-courier#chg-chg_01a190a5-5c23-79bd-8c9f-9d0b6de84653"}],"truncated":false,"feedUrl":"https://verifymcp.io/servers/io-usefulapi-e-courier/e-courier/changelog.json"},"links":{"html":"https://verifymcp.io/servers/io-usefulapi-e-courier/e-courier","markdown":"https://verifymcp.io/servers/io-usefulapi-e-courier/e-courier.md","changelogJson":"https://verifymcp.io/servers/io-usefulapi-e-courier/e-courier/changelog.json","changelogRss":"https://verifymcp.io/servers/io-usefulapi-e-courier/e-courier.xml","external":[{"label":"Remote endpoint","href":"https://e-courier.usefulapi.io/mcp"},{"label":"Repository","href":"https://github.com/m190/usefulapi-mcp"},{"label":"Website","href":"https://usefulapi.io/e-courier/"}]}}