Skip to content

Grounding for AI agents

An AI agent answers questions and takes steps using tools. To do that well it needs knowledge it can search, cite and trust: the current procedure, the policy in force, the steps in the right order. Today each agent framework has its own retrieval, so the same knowledge is loaded again for every agent, and it arrives without its version, its sources or its structure.

With MOCA, one package grounds any agent. The same signed package is read the same way whether the agent reaches it over MCP, through its framework, or in-process, and every answer comes with citations the agent can pass on.

Your agent runs on Use What the agent gets
Any MCP client (Claude Desktop, Cursor, VS Code, your own) The MOCA MCP server, moca-mcp: one download with nothing to install Tools to list packages, search, fetch a page and ask structure questions, and every page as a resource
Microsoft Agent Framework (.NET) OpenMoca.Reader.AgentFramework A context provider that searches before each turn, and moca_search, moca_get_node and moca_structure tools
LangChain or LangGraph (Python) moca-reader-langchain A retriever that returns citation records as Documents
LlamaIndex (Python) moca-reader-llamaindex A retriever that returns citation records as scored nodes
Anything else A MOCA Reader in TypeScript, .NET or Python Search, structure and citation records in-process, to wrap in your own tools

Whichever way in, the Reader applies the same trust rules: signatures checked against your trust root, content that is out of force or superseded left out, and an audience the agent cannot widen.

  • Cite. Every result is a citation record with a versioned reference, so the agent can say which page of which package version an answer came from. The AG-UI citations event carries those records to a user interface, so it can show the sources beside the answer.
  • Follow steps in order. With a package’s structure, an agent can ask what a step requires and what comes next, and ontology-guided search adds the prerequisites of a result (ontology).
  • Stay in scope. Search can be limited to a topic, and the host decides the audience: content labelled for another audience, or not labelled at all, is removed before the agent sees it, and the agent cannot widen the filter. Audience is a label, not access control: the package file itself can be read by anyone who has it.
  • Work offline. The MCP server and the Readers run locally, with no outside calls (sovereign and offline AI).
  • Knowledge, never instructions. A package carries knowledge, not prompts, skills or tools for an agent to run. The MCP server’s tool descriptions tell the model to quote and cite package text, not follow it.
  • Treat package text as untrusted input, whoever signed it (Reader contract §12).
  • The host stays in charge. Trust, audience and which packages are loaded are set when the server or Reader starts; nothing a caller or a package says changes them.

The walkthrough serves a package to an AI agent over MCP in fifteen minutes. moca-examples has a chat agent over a package in TypeScript and .NET.