- Read — retrieve data. Always available.
- Write — create or update data. Disabled during beta.
{resource}:{action} convention and match the Public API scope catalog. Assign them to your application in Admin → API Access.
Conventions
The MCP tool surface mirrors the Public API request/response shapes so calls port 1:1 between the two. Paging. All search tools acceptpage (0-based, default 0) and pageSize (default 25, max 100). Responses echo the request page back so agents can drive their own pager. page=-1 (or any negative value) is rejected with [invalid_params].
Array filters. Filters that map to /search array fields on the Public API (statuses, status, loadNumbers, orderNumbers, mcNumbers, dotNumbers, tripNumbers, driverIds, and so on) are declared as arrays on the tool. Pass one or many values in a single call.
Date ranges. Date-range filters are objects: { start, end } in ISO-8601 (e.g. { "start": "2026-06-01T00:00:00Z", "end": "2026-06-30T23:59:59Z" }). The parameter names match the Public API — createdDateRange, pickupDateRange, deliveryDateRange, invoicedDateRange, paidDateRange, transactionRange. Legacy split-string parameters (createdFrom / createdTo, pickupFrom / pickupTo, etc.) are no longer accepted.
Strict arguments. Unknown keys — misspellings, unsupported filters, or parameters that no longer exist — are rejected with [invalid_params]. The error message names the rejected keys and the valid parameter list so an agent can self-correct in one round trip. Nested keys inside a date range or array element are validated too. Missing required arguments and wrong-type values (for example page: "not-an-int") also return structured [invalid_params] errors naming the parameter — for both tools and prompts.
Why: previously, the MCP SDK bound arguments by name and silently discarded unknown ones.
customers_search name="Colortech" returned the full unfiltered customer list because name isn’t a valid filter on that tool. That silent-drop behavior is gone — you now get an actionable error instead of a confidently-wrong result.annotations safety hints that mirror the Read / Write / Destructive tiers on this page: readOnlyHint, destructiveHint, idempotentHint, and openWorldHint. Your MCP client can use these hints to decide whether to ask a human before running a tool. During beta, every exposed tool is read-only and sets readOnlyHint: true (and destructiveHint: false).
Example rejection:
Loads
Trips
Drivers
Carriers
Customers
Trucks & Trailers
Invoices, Fuel & Payments
Visibility & Tracking
Deductions
Tenders
Error handling
Tool calls return a structured error when they cannot complete. Common cases:Related
Model Context Protocol
Overview and connection setup for the Alvys MCP server.
Authentication
Create credentials and issue access tokens with the right scopes.