MCP names the problem. Here's how Kav solves it without a tool server to ship.
MCP names a real problem: how a model calls real systems. Here's the mechanism Kav actually runs to solve it — compiled fresh, never a tool server you deploy.
A language model on its own can only produce text. It doesn't know a resident's balance, and it can't book an appointment — to do either, it needs a structured way to call a real system. Model Context Protocol (MCP) is the open standard that names this problem clearly: a list of tools, each with a name, a description and a typed input shape, that a model can choose from.
What a conventional MCP tool server doesn't solve
A conventional MCP tool server is still code. Its tool list is fixed at build time, written in a file, built and shipped — the same tools for every user, with no real notion of "which organization is asking." Add a tool, and that's a new release. The model also gets back whatever the underlying system returns, raw.
What Kav ships instead
Kav's capability layer answers the identical problem a different way: a tool's description, and the whole set the model is allowed to see this turn, is compiled fresh from database rows — never a file checked into a repository. Publish a new capability row and it's live immediately, scoped to exactly the organizations that installed it, because the database itself enforces the scope. Every call is checked against the assurance level and the entitlement the capability declares before it runs, and the response is mapped onto a typed structure, rendered through a template, and gated for disclosure before the model ever writes a sentence around it.
The toolbox is built. The model only chooses.
That's the whole division of labour: Kav decides what a given resident, on a given turn, is allowed to reach — a routing directive can even pin or withhold specific tools for a phrase it recognizes. The model never assembles its own toolbox and never sees raw output from a system it queried.
On the roadmap, not shipped today: exposing a tenant's own capability table as an MCP-compatible interface for their own downstream systems is one direction under consideration. It is not a feature you can turn on yet.
Why the harder version is the more honest one to ship
A fixed tool server is easier to write once. A tool set that's organization-scoped, checked per call, and rebuilt every turn from rows your own team edits directly is the version that holds up across a hundred municipalities, each wiring in a different case-management system — and it's the version Kav actually runs.