ollie
Overview
Ollie is a self-hosted freight Transportation Management System — the operational core of a trucking dispatch desk: loads, trips, drivers, trucks, trailers and facilities, in a single Rust service you run yourself.
The thing that makes it different is that it’s MCP-first. Most software bolts an AI assistant on at the end; Ollie was built so an agent can run the back office through a Model Context Protocol server as a first-class surface, with the same auth and the same data the humans use. Dispatch a load, answer a question over the fleet, ask a question about a scanned document — all of it is callable by a tool-using agent.
How it works
Three API surfaces, one domain. Pick the caller:
- Fleet MCP (
/fleet/mcp) — for AI agents and tool-using assistants. The preferred surface. - Fleet REST (
/fleet/api/v1) — for the Fleet web app and programmatic integrations. - Driver portal (
/driver/api/v1) — for the driver mobile PWA only, with passkey or PIN auth.
The domain. Loads move through a lifecycle (planned → assigned → dispatched → in_transit → delivered → invoiced → settled) with stops, rate line items and
detention tracking. Trips are the driver-facing execution of those loads — stop
arrive/depart, check-calls, relay chaining, and deadhead/loaded mileage via
OpenRouteService HGV routing. Facilities are geocoded and de-duplicated. An
append-only event journal records what happened, and a set of doctors
diagnose-and-repair data integrity when something drifts.
Documents that answer questions. Rate cons, BOLs, PODs and photos are stored content-addressed and deduplicated on disk, then processed in the background by Ollama: text summaries and vector embeddings for semantic search, with images and scanned PDFs routed through a vision model. Vector search runs on LanceDB, so you can ask natural-language questions over a document.
Stack: Rust · Axum · LanceDB · Ollama · rmcp (MCP) · AGPL-3.0.
The running log below is the week-by-week build history.
Ollie — week of 2026-08-10
Bounded retries for failed blobs, a write-scope hole closed in the doctor tools, and driver docs corrected to match the code.
Ollie — week of 2026-08-03
A reliability sweep across startup, sessions, and the pipeline, plus TONU/diversion outcomes and a build-test cycle cut in half.
Ollie — week of 2026-07-27
Fleet lists got real pagination and filter routing, expense review got faster, and a batch of CI and MCP fixes shipped.
Ollie — week of 2026-07-20
Expense tracking lands: driver receipts, partial approval, and expenses linked to maintenance records.
Ollie — week of 2026-07-13
Scanned documents finally get usable summaries via a vision model, plus backfill tooling for everything already in storage.
Ollie — week of 2026-07-06
Dispatch and trip handling got sturdier end-to-end, with a batch of fleet and driver-view fixes shipping across five releases.
Ollie — week of 2026-07-06
Fleet UI polish — the Loads list now shows a real route, and trip stop actions became compact buttons.
Ollie — week of 2026-06-08
Fleet web UI CRUD, an equipment maintenance log, a live events feed — and Ollie goes open source under AGPL.
Ollie — week of 2026-06-01
v2.0: the Dispatch surface becomes Fleet, the old admin API is gone, and access control moves to scope-based roles.
Ollie — week of 2026-05-25
A serious MCP build-out — StreamableHTTP, resources, structured output, elicitation — plus tiered driver pay and settlement.
Ollie — week of 2026-05-18
Dispatcher CRUD across facilities, trucks and trailers; data-integrity 'doctors'; and long-lived API keys for MCP connectors.
Ollie — week of 2026-05-11
Driver PWA gets real: componentized UI — app-bar, bottom nav, trip cards, swipe, and a pay-period week stepper.
Ollie — week of 2026-05-04
The big week: a driver PWA with passkey login, plus all three dispatch surfaces — REST, dashboard SPA, and an MCP server — stood up back to back.
Ollie — week of 2026-04-20
Ollie is born: the first commits, and the content-addressed blob store the whole document pipeline hangs off.