project · active

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.

2026-08-16

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.

2026-08-09

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.

2026-08-02

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.

2026-07-27

Ollie — week of 2026-07-20

Expense tracking lands: driver receipts, partial approval, and expenses linked to maintenance records.

2026-07-20

Ollie — week of 2026-07-13

Scanned documents finally get usable summaries via a vision model, plus backfill tooling for everything already in storage.

2026-07-13

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.

2026-07-06

Ollie — week of 2026-07-06

Fleet UI polish — the Loads list now shows a real route, and trip stop actions became compact buttons.

2026-06-13

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.

2026-06-05

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.

2026-05-31

Ollie — week of 2026-05-25

A serious MCP build-out — StreamableHTTP, resources, structured output, elicitation — plus tiered driver pay and settlement.

2026-05-23

Ollie — week of 2026-05-18

Dispatcher CRUD across facilities, trucks and trailers; data-integrity 'doctors'; and long-lived API keys for MCP connectors.

2026-05-17

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.

2026-05-10

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.

2026-04-26

Ollie — week of 2026-04-20

Ollie is born: the first commits, and the content-addressed blob store the whole document pipeline hangs off.