Surfaces
fOS runs the same tool layer across three surfaces — web chat, voice calls, and external assistants over MCP. Tools return data plus render hints; each surface owns how it presents them. The web app has the fullest tool set; voice has a tight negotiation set.
fOS is one tool layer, many surfaces. The same tools — with the same logic and the same grounding — run unchanged across every channel. What differs is presentation: a tool returns structured data plus render hints, and each surface decides how to show it. That is why the same chain-economics lookup becomes an interactive card on the web, spoken numbers on a call, or a JSON result for an external assistant.
The seam: data plus render hints
Every tool returns a structured result — success with typed data, or a failure with a machine-readable code — never raw formatted text. Success payloads carry small render hints: a short spoken summary, a table type, whether the action needs confirmation, whether it needs an integration first. The tool never emits markup. This clean seam is what lets one implementation serve very different surfaces without change, and it is why confirmation and grounding behave identically everywhere.
Web chat
The primary surface. fOS is available as an "ask anything" panel across the TOVR dashboard. Tool results render as interactive cards — a chain's P&L, a list of matching loads, a confirm-win prompt, an email draft, a map of vehicles — that a dispatcher can act on directly, not just read. The web surface exposes the fullest tool set: fleet, search, offers, market data, economics, outreach, and workspace actions (email, calendar, drive), plus web-only plumbing like inline integration connection.
Voice
fOS handles live phone calls — for example an outbound rate negotiation with a shipper's contact. The voice pipeline is: the caller's audio comes in, is transcribed to text, fed to fOS, and fOS's reply is synthesized back to speech in real time. On a call, fOS runs a tight, negotiation-focused tool set — read the shipper's profile, check a rate against the margin floor, report the call's outcome, and escalate to a human when needed — because a live call needs speed and focus, not the full arsenal. The never-reveal-the-floor rule is especially important here.
External assistants (MCP)
fOS exposes its tools to external AI assistants (such as Claude and ChatGPT) over the Model Context Protocol (MCP), plus a REST bridge for non-MCP clients. A developer connects an assistant to the fOS Agent API and the assistant can then call fOS tools directly. On this surface, exposure is deliberately scoped: read tools are available broadly, write tools are permission-gated, and some sensitive actions are not exposed at all (see Guardrails). Connecting an assistant, authentication, and the tool catalog are covered in fOS › Reference.
Which surface does what
| Surface | Tool set | Presentation |
|---|---|---|
| Web chat | Fullest — fleet, search, offers, market, economics, outreach, workspace | Interactive cards |
| Voice | Tight — shipper profile, rate-vs-margin, call status, escalate | Real-time speech |
| MCP / external assistants | Scoped — reads broadly, writes gated | Structured (JSON) results |
The tools themselves — grouped into categories — are catalogued in Tool arsenal.
Guardrails
How fOS is safe to act. Money-moving actions are idempotent and require explicit confirmation; under-specified requests are clarified rather than guessed; access is org-scoped; and the walk-away price floor is never revealed to a counterparty.
Guides
End-to-end fOS workflows — the recipes that compose tools into a complete mission-loop run (win a backhaul, match a vehicle to an offer, negotiate within the floor) — and how to connect fOS to an external assistant over MCP.