Skip to Content
Over MCP

Over MCP

An agent can also work on an organization live. The reference implementation serves the core over an MCP server, with a single tool, fs, that works like a small filesystem. It uses the same paths, types and fields as the bundle, built by the same code that writes the export.

The tree

roles/<team>/<slug>/ROLE.md skills/<slug>/SKILL.md + files/<nn>-<slug>.md policies/<slug>/POLICY.md + rules/<nn>-<slug>.md objectives/<slug>/OBJECTIVE.md + key-results/<nn>-<slug>.md routines/<slug>/ROUTINE.md channels/<slug>/CHANNEL.md connections/<slug>/CONNECTION.md <any piece>/annotations/<n>.md

Every document reads exactly as in the bundle: type, kind, title, name, the attributes as fields, tags, and links as paths. The body is the instructions, goal or description.

fs does not carry the history (COMMITS.md and HISTORY.md), the extensions, or the dates and sizes of subentity files.

Operations

operationDoes
pullReturns every file the connection can see, with its content, plus a checkpoint: a timestamp per path.
listReturns every path, without content.
readReads one file, by path.
writeWrites one file, by path and content.
pushWrites several files at once (files: path to content), with the checkpoint of the last pull.
deleteArchives a piece, or takes a file out of its skill. Nothing is erased: an archived piece can be restored.

The intended pattern is a checkout: pull once, edit the files locally with any tool, then push with the checkpoint. Each file is applied on its own. It comes back applied if nothing changed remotely since the checkpoint, or conflict (with the current remote version) if something did. Without a checkpoint for a path, the push overwrites. A client with no local disk uses read, write and delete on one path at a time.

What it writes

Through fs an agent writes every piece except roles (skills, policies, objectives, routines, channels and connections), and a skill’s files. Roles, a policy’s rules, an objective’s key results and annotations are read-only through fs.

A write replaces the whole piece: an attribute or a link left out of the file is removed. A new file lands at the path it is written to, and its slug comes from its folder.

A connection can be scoped to one role. It then sees that role’s own ROLE.md and the pieces linked to it, and nothing else.